今天終於要進入主旨!提到什麼是DevOps,不過其實前面的探討我也覺得很重要!大家還是可以去看看的喔~
在開始提DevOps之前,我們先來說明五個詞
任何一個團隊、公司都會自然而然地有其文化產生,各個職務亦然,但是在傳統常見的分配上開發和維運會是獨立分開的兩個團隊,這很顯然會遇到一些問題:開發只管開發方便,沒考慮到維運的重點;維運只會責(嫌)罵(棄)開發的人員問題很多....這樣如此明確的「各司其職」,反而造成了整體的問題,若能打破每個階段中間的隔閡,讓開發的人也去設想維運的層面、維運人員也多考慮開發層面,緊密整合團隊才能有更高的效率與成果,這是一種全體意識的方針,不是一種職位或是技能,而是要每位同仁都能去學習與了解的文化
前篇有提到敏捷開發, 要縮小範圍、快速開發、除錯、測試、部署,這樣的不斷循環中前進,若每次都是人工介入測試、部署....儘管有SOP,還是不免造成問題與麻煩,例如常見的上版失敗,發現原因是SQL沒執行或Library沒包到,但是開發工程師會說文件有、手順有,這樣的情況屢見不鮮,要盡量減少這樣的情況,就是要搭配自動化作業,包含持續整合(CI)、持續部署(CD),這後面我們會再來多探討,以達到快速開發、自動測試、自動部署、可重複性、可靠、減少錯誤等等的目標
精實軟體開發,這個名詞簡單來說就是一種開發方式(廢話~)就是我們前篇文章有提到的,這邊就不多說,回顧七大原則:消除浪費、增強學習、延遲決策、加速發布、尊重授權、嵌入完整性、全局思考
在維運的時候很重要的部分是「數據」,系統穩不穩定、錯誤率、負載率、效能......等等,在這三個方向**「Monitor 監控」、「Metrics 指標」、「Analytics 分析」**的相互作用下,能有數據支持,回饋給開發者,作為下次開發期的調整目標,方能促使敏捷開發有更好更效率的迭代
每一次的經驗都會有遇到的問題或是可以提出來討論的地方,時常與同儕夥伴交流討論,就能透過分享互助的方式避免他人踩到一樣的地雷,這是在學習和成長時,很重要的一個部分
以上五個特色就合稱為「CALMS」,也就是DevOps的核心精髓
參考資料、延伸閱讀:
下集預告:What is DevOps?(二)