每週一書|第六週

推薦書:DevOps Handbook|打造世界級技術組織的實踐指南 (中文版) 

前言

DevOps Handbook|打造世界級技術組織的實踐指南 (中文版)》提到的「三步工作法」, 除了這個方法論是一個落實 DevOps 的基礎原則之外,也可以應用在生活上。但是因為這是心得介紹,書中專注在 IT 方面,因此一樣會以 IT 的角度下去分享。

 

暢通流程

理想情況下,我們的軟體開發應該長這樣:完成功能實作後,到類生產環境驗證可行性,並且快速安全地將以確認的可靠程式碼部署到實際環境,我們希望每次的部署都是變成例行且可預期的常規作業,不再是讓開發團隊在特定的假期部署,或是系統上線時待命擔任救火隊。
因此 DevOps 的使命便出現了:以 DevOps 打破惡性循環,暢通流程,達到商業目標。

 

三步工作法簡介

三步工作法最核心的部分是為了讓整個 DevOps 實施可以分解為三步「暢流」、「回饋」、「持續學習和實驗」
第一步是從 Dev 到 Ops 快速流動。
第二步是從 Ops 到 Dev 可以快速反饋。
第三步是在整個過程中持續學習。

 

暢流的實踐

我們常常說「萬丈高樓平地起」,在三步工作法的世界中,奠定基礎永遠都是完成一件事情的基礎。雖然我們的目標並不一定是發大財,但至少我們其中的一個目標一定會有能夠持續交付出工作成績。
在 IT世界中,我們為了達成持續交付的目標,我們透過妥善地設置自動化部署管線,並且確保自動化測試能夠持續驗證程式碼並且隨時保持在可部署狀態,以此確保每個程式碼提交都是有利於降低發布風險。

 

回饋的實踐

如何知道錯誤?我們要透過什麼樣的方式取得錯誤訊息並加以調整改善,這是我們完成基礎工作後要想的事情,如何持續獲得又快又好的回饋,在第二步工作法。
我們透過建立工作系統,將營運團隊習得的知識,在經過整合後,回饋給上游的管理以及開發團隊,這樣無論生產、部署環境問題,問題的早期消滅等都,都可以快速地改進並從中學習。
在 IT世界中,我們透過建立遙測系統、定義錯誤層級、關注是否異常,來知道什麼時候發生問題,這個問題是不是要優先解決,透過 A/B 測試來驗證,在發布前請人一起審閱,確保軟體品質是高品質的,交付的功能是能被維護的,最後在這些經驗學習的累積之下,我們來到了第三步。

我們在前面所遇到的問題以及解決方案,都是一個非常好的經驗學習。犯錯是不可避免的,因為我們正在持續地學習,透過學習,遇到錯誤,修正他的循環,讓事情越來越好、更有韌性,以達到期望的成果。
在 IT 的世界中,我們會希望所學的內容可以應用在日常中,還有就是把做A事件的經驗嘗試複製到B經驗中,甚至標準化這個流程,以及預留集體學習時間,透過教學相長的方式來一同成長。

 

資安與變更達到合規性的實踐

完成暢通流程之後,我們要確保同時實現「資訊安全」、「資料保密」、「提高服務品質等」。軟體開發過程中,隨著程式碼的增長,一定會碰到安全方面的疑慮,所以我們要將資安的工作整合到日常的工作中,並且使每個人有責任地意識並執行它。我們也一定會遇到變更,像是 PMBOK 中就有提到整合變更管制是一個非常嚴謹的過程組,不隨意變更內容導致風險的發生。在這裡,我們要確保每個變更都是合規,即便他很緊急,也應像打電話報案一樣,記錄下議題,辨識他該如何處理,看看有無應對計劃或是要採取權變措施,再來進行變更並執行。

 

結論

我們面臨一個不斷快速變動的世代,且快速變動中也要有好的品質。我們在這個又要關注安全議題、交付期程縮短、以及技術大規模轉型的時代中,我們要很靈活地應對這些挑戰,於是 DevOps 應運而生。這本書中提到的「三步工作法」目的是使工作有效率,並且達到全局優化,如果你/妳各位對於提升自己的工作能力或是提升團隊全體能力有企圖心的話,這本書非常值得你/妳買來閱讀並實踐!

 

每週一書連結

第一週:持續交付|使用 Java (Continuous Delivery in Java)

第二週:DevOps 和自動化運維實踐

第三週:DevOps 三十六計

第四週:持續交付2.0 業務引領的 DevOps 精要

第五週:Effective DevOps 中文版

第七週:Jenkins2.x 實踐指南

第八週:Jenkins 2 權威指南

第九週:為你自己學 Git

第十週:精通Git 第2版

活動書籍