敏捷軟體開發已經打破了需求分析、測試、開發之間的壁壘。在軟體開發流程中,開發與運維之間面臨著相同的隔離問題。devops運動的目標就是打破開發與運維之間的壁壘,鼓勵開發與運維之間的協作。
敏捷軟體開發已經打破了需求分析、測試、開發之間的壁壘。在軟體開發流程中,開發與運維之間面臨著相同的隔離問題。devops運動的目標就是打破開發與運維之間的壁壘,鼓勵開發與運維之間的協作。
新運維工具的出現以及敏捷工程實踐的建立使得devops變成了可能[1],但對於devops好處的認識還遠遠不夠,即便擁有最好的工具,如果我們沒有正確的文化,devops僅僅是乙個時髦的詞彙而已。
devops文化的基本特徵是開發和運維角色之間的不斷增強的協作。在團隊級和組織級都需要文化的轉變一支援這種協作。
責任共擔
責任共擔是devops的團隊文化之一,責任共擔鼓勵團隊進一步的協作。如果系統執行與維護的工作交給了其他團隊負責,開發團隊一般都不會關心具體的運維工作。
當開發團隊共同分擔系統生命週期中的運維工作與責任時,開發團隊就能理解運維團隊的痛苦,就能主動簡化開發和運維中繁瑣的工作(例如:自動化部署和完善日誌)。
他們也可以通過生產環境系統監控獲取額外的需求。當運維團隊主動承擔系統的業務目標時,運維團隊可以和開發團隊更緊密的合作,以理解運維需求並提供支援。
將開發與運維團隊放在一起
責任共擔文化也需要組織上的一些變化。開發團隊和運維團隊之間不應該有壁壘。在一開始,就不能依靠移交文件來代替一起工作。應該在組織資源結構上支援運維團隊盡早地介入到產品交付過程中與其他團隊一起工作。
將開發與運維團隊放在一起,可以有效地促進他們一起工作。「移交和簽收」無益於團隊共同承擔責任,並且會導致形成責備的文化。反之,開發和運維團隊應該共同對產品的成功與失敗負責。
devops文化模糊了開發與運維之間的界限,最終也將消除這種界限。在向組織中引入devops時,一種常見的反模式就是製作出乙個devops角色或者devops團隊。這樣做只會造成更多的壁壘,並且阻礙devops文化和實踐在更廣泛的團隊中傳播和使用。
支援自組織團隊
另乙個有價值的組織變化是支援自組織團隊,為了更高效的協作,開發與運維團隊應該自主決策,在採納變更時也不需要冗長的變更管理流程。這涉及到對團隊的信任、對風險管理方式的變化,也需要建立不怕失敗的環境氛圍。
例如,乙個團隊需要列出變更清單並且獲得一堆簽字批准才能發布到測試環境,這些變更經常被推遲。我們應該依靠可審計的版本控制來替代大量的人工檢查。在版本控制中的變更可以鏈結到團隊的任務管理工具中,無需人工的簽字批准,團隊可以自動化部署變更,並縮短測試週期。
向devops文化改變的乙個影響就是將**部署到生產環境將變得很容易。這需要更進一步的文化改變。為了保證生產環境變更是可靠的,團隊需要重視在開發過程中內建質量。這包括跨職能關注點,如效能和安全。持續交付技術(包括**自測試)形成乙個允許日常的、低風險的部署。
對團隊而言,重視反饋也很重要,為了持續的推進開發與運維像乙個團隊一樣工作,生產環境監控是乙個很有用的反饋迴圈,它可以幫助診斷問題和發現潛在改進點。
自動化是devops運維的基石,它可以加快協作。自動化測試、配置、部署使得團隊有更多的時間專注在其他有價值的活動中,並減少因為人為造成的錯誤。自動化指令碼和測試的另乙個好處是總是保證系統的文件是最新的。比如,自動化伺服器配置意味著開發和運維團隊都能了解並修改伺服器的配置。
注:[1]:運維工具包括虛擬化、雲計算和自動化配置管理,在持續整合、增量設計、**淨化等工程實踐中都支援這些工具。
DevOps與開發者轉型
devops並不是什麼新的概念,落地國內開發社群已經有幾年時間了,但是關於devops如何真正幫助開發者實現轉型 為企業真正創造價值的話題,一直都在持續討論。最近,ibm rational產品開發和使用者支援全球副總裁salvatore vella在ibm 2014技術峰會上針對這個話題進行了深入的...
DevOps 自動化工具
devops實踐中,自動化工具的使用是非常重要的,通常涉及到下面幾個方面 讓我們看看這些方面中的一些工具,看它們是如何解決痛點的。雲服務 如aliyun,aws等 使用雲服務,不需要買硬體伺服器 租用機櫃。雲服務很容易按需擴充套件,沒有預先的硬體成本,可以根據流量自動適配。git 儲存 管理 的版本...
團隊轉型,Scrum與DevOps要如何取捨?
本文摘自敏捷開發。團隊在踐行敏捷的過程中,會有多種選擇 scrum xp kanban crystal 精益生產 規模化敏捷等,其中最流行的敏捷開發方法當屬scrum。正因如此,大部分人對其產生了刻板印象 認為敏捷就是scrum,實施敏捷就是套用scrum方法。而產生在敏捷之後的devops集文化理...