雖說要介紹100種DevOps的工具,但實際上並沒有那麼多工具存在...
在開始介紹DevOps的工具前,先來了解什麼是DevOps吧
DevOps 是 Development 和 Operations 的組合詞,就是開發與維運的組合。主要包含了軟體開發人員和維運技術人員之間溝通合作的文化。
也有蠻多文章會用下面這張圖來解釋DevOps,沒錯,開發、測試、維運的交集就是devOps。
來源:https://www.smartsheet.com/devops
不管是瀑布式開發或敏捷式開發,開發與維運人員之間還是存在鴻溝,運作方面處處衝突,為了解決此一問題,Andrew Clay Shafer 跟 Patrick Debois 認為必須思考出一種方式,搭起開發與維運之間的橋樑。
2009年加州 O'Reilly Velocity 大會上,Flickr 的資深技術維護員 John Allspaw 及領導工程師 Paul Hammond ,報告了一個主題:「10+ Deploys per Day:Dev and Ops Cooperation at Flickr」,他們證明了開發與維運團隊彼此是可以順利合作的,認為開發新軟體的方法是要讓開發團隊和維運團隊都變得更透明,並將兩者整合在一起。
受到 Flickr 的激勵,Patrick Debois 於是在比利時舉辦了一場活動,他把Dev及Ops結合成DevOps。活動結束後DevOps並沒有因此結束,反而在twitter上熱烈討論,並逐漸在各地蓬勃發展起來。
先前提到 DevOps 是一種文化,那他究竟是怎樣的一種文化呢?有些文章提到DevOps的核心概念是CALMS,CALMS代表5個字的縮寫
DevOps 是一種文化。傳統開發模式每個階段的人員可能只專注自己的部分,但在整個開發過程中並不是只有自己的部分做好就好,而是每個階段都必須要適當溝通好好合作,因此 devOps 就是為此而設計的,他的真正核心正是文化,建立強調人員間的合作、責任、分享的文化。
自動化是開發團隊最重視的問題,開發過程中的測試及部屬容易造成 delay,若是都能自動化,不但可以減少開發人員與維運人員之間溝通落差造成的問題,更可以讓開發及整合上更為快速。
因為DevOps算是基於敏捷式開發(Agile)發展而來的,因此也需套用上精實開發七大原則。
精實開發七大原則
測量通常是指維運時的數據,但整個開發過程其實都有可以記錄的地方。透過測量並蒐集有用的回饋,有助於改善開發過程,創造更好的開發結果。
DevOps 是一種文化,文化正是透過人與人的互動產生。那有什麼可以分享?分享的內容有很多,如經驗、工具、數據、文章等都可以分享。例如上面提到的測量就能分享給整個團隊,讓開發人員與測試人員,甚至是業務人員都能根據數據做出最好的決策。分享不僅是文化的根,也是增加團隊透明度的好方法。