一千萬個為什麽

搜索

如何根據需要將敏捷部署與Agile Sprint Process相關聯



我不清楚Sprint是如何按預定長度(1/2/3周)計時的,符合DevOps按需或按需部署的原則。

是否將部署到生產部分的定義完成,而不是整個sprint的後期活動?

sprint過程如何捕獲代碼在沖刺中被部署到生產環境中,而不是在目標是“潛在可交付產品”的末端?

轉載註明原文: 如何根據需要將敏捷部署與Agile Sprint Process相關聯

一共有 5 個回答:

在devops哲學中沒有“一天一次的部署”規則。它更多的是:盡可能快地部署並盡可能頻繁地部署。此外,它還要求解耦架構,因此它的不同部分可能會單獨發布,也可能用於解耦部署與發布。

Gene Kim等人發明的Deveops手冊呼籲修改完成的定義以包括在類似生產環境中運行。這是在沖刺期間始終遵循devops原則。

你想要避免的是,所有開發人員交出經過測試的代碼,正在工作但未集成,並以某種方式交給其他團隊進行部署。

我認為完成的定義是:它只有在準備好在生產環境中運行之後才能完成。一旦準備就緒,您可能會或可能不會釋放它,具體取決於您的具體業務需求和沖刺目標,但如果尚未準備好立即發布,則不會完成。

從某種意義上說,您的問題恰恰突顯了團隊試圖變得敏捷但沒有獲得良好DevOps文化的好處所面臨的問題:幾乎不能保證在每次Sprint結束時他們都能夠提供給他們的顧客。

在某些情況下,團隊可能最終會使用更為寬松的完成定義(例如我的工作區/分支中傳遞的QA),或者可能會考慮將代碼作為任務進行傳送的附加步驟。

但是DevOps可以根據需要能夠部署,或者根據需要在sprint結束時發布應該是正常的。敏捷和DevOps真的很好地結合在一起。

附註:個人而言,我發現能夠根據需要或根據需要部署 - 只有在CI/CD處理通過所有必要的QA檢查時才會發生。很少有CI/CD工具能夠真正保證它。

敏捷軟件開發方法

描述了一套軟件開發的價值和原則,根據這些價值和原則,需求和解決方案通過自組織跨職能團隊的協作努力而發展。它倡導適應性規劃,演化發展,早期交付和持續改進,並鼓勵對變化做出快速靈活的反應。

     敏捷(有時寫成敏捷)這個術語是由敏捷宣言推廣的,敏捷宣言定義了這些價值和原則。 敏捷軟件開發框架不斷發展,其中兩個最廣泛使用的是Scrum和看板。

盡管沒有禁止在 Scrum Sprint 結束時使用DevOps的規則。部署Sprint的結果(事實上,這是鼓勵的 - 你不太可能出現錯誤,並且更有可能將部署的生產與開發和測試相同)DevOps更適合於 Kanban 比Scrum。

這是因為以快速測試和發布為目標的DevOps理念旨在 10+部署一天更適合於在每次完成工作項目時發布,這與

但是,即使在Sprint期間,DevOps可能會有助於將代碼部署到測試,QA和分段,並且具有通過測試單元運行的預先自動化測試並報告結果或設置新的沙箱環境。這可以讓開發人員仍然可以獲得DevOps可以提供的快速,放大的反饋,並增加編碼所花費的時間,而不是浪費時間準備開發環境 - 即使您沒有部署到生產環境。

這裏有一些很好的答案,但我認為我會舉一個例子說明我們如何提供功能。 “運送”到生產並不是目標,目標是實現價值。將代碼發送到生產是達到目的的一種手段,我們通常會多次部署以啟用某項功能。這裏有一個人為的簡單例子,使用1周的沖刺。

在周一的規劃過程中,團隊討論他們想要實現的新功能,並決定在實現之前需要完成一些重構工作。不進行重構會導致額外的技術債務和潛在的性能問題。他們在星期一的其余時間和周二的大部分時間進行重構,並在周二下午發布這個改變。用戶無法看到此更改。

周三和周四,他們花費在周四午餐時間實施該功能並將其部署到生產環境,但僅限於部分用戶(使用功能標誌或a/b測試)。周五早上,他們發現代碼中存在錯誤,或者可能是測試結果不理想,並在午餐時間發布更新。之後他們為每個人啟用該功能。

這個人為的例子涉及三個部署之前,功能被視為“完成”。最重要的是它利用快速反饋來推動功能交付。采用編寫特征的方法並將它們部署為“最終遊戲”會引入更長的反饋周期,並使您的團隊反應緩慢,即敏捷性更低。

我不清楚Sprint是如何按預定長度(1/2/3周)計時的,符合DevOps按需或按需部署的原則。

像往常一樣,DevOps沒有普遍認可的定義,也沒有描述它的含義,所以我們只是在這裏發表意見。但在我看來,DevOps鼓勵運營工程師盡其所能地擺脫開發人員的困擾,其中包括除非實際需要(配置,架構審查等),否則不會成為部署的攔截器。

這與開發周期無關 - 不管周期如何,你的工作就是不要成為其中的障礙。

sprint過程是如何捕捉代碼在沖刺過程中被部署到生產環境中的,而不是目標是否具有“潛在的可交付產品”的末端?

這當然取決於你的公司,但在我看來,一個功能只有在用戶擁有它之後才能完成。