讀書分享:The DevOps Handbook (2)
DevOps讀書會
2022-04-06 游上德
�
B L U E P L A N E T
大綱
讀書分享:The DevOps Handbook
2
2
B L U E P L A N E T
回顧
3
B L U E P L A N E T
「精實原則」與「前置時間」
4
B L U E P L A N E T
最小批次規模
5
B L U E P L A N E T
三步工作法
6
B L U E P L A N E T
償還技術債
7
B L U E P L A N E T
參考康威法則設計組織架構
康威法則:軟體的架構和軟體團隊的結構是一致的,如果讓四個團隊開發同一個編譯器,那麼編譯器最後會有四個執行階段。
組織型態:
8
B L U E P L A N E T
III. 第一步工作法:暢流的技術實踐
9
B L U E P L A N E T
奠定部署管線的基礎
10
B L U E P L A N E T
持續整合(Continuous Integration)
11
B L U E P L A N E T
自動化測試
12
B L U E P L A N E T
當部署管線失敗時拉下安燈索
13
B L U E P L A N E T
分支策略
作者說這是一個很有爭議的話題,但仍強調應該將「合併融入日常工作」,因為開發人員在自己的分支上獨自工作的時間越長,就越難將變更併入主幹,會進而導致惡性循環。
14
B L U E P L A N E T
Google的主幹開發
15
B L U E P L A N E T
雙峰IT
本書觀點是拒絕採用雙峰IT,因為每一位客戶都應同時享受速度和品質。
16
B L U E P L A N E T
Facebook發佈速度
五年內 PHP程式碼的部署從「每週一次」提高到「每天三次」;行動裝置app應用從「每六週一次」提高到「每兩週一次」。
17
B L U E P L A N E T
自動化佈署
18
B L U E P L A N E T
藍綠部署模式
19
B L U E P L A N E T
金絲雀發佈模式
20
實現「暗度發佈」:
可以讓1%的線上使用者對預計發佈的新功能做「隱形呼叫」(invisible call),觀察新功能在此工作負載下的表現,再逐漸增加使用者呼叫頻率及數量。
B L U E P L A N E T
架構與發佈風險
2002年 Amazon在試圖脫離單一程式碼資料庫的轉型過程中,利用了「兩個披薩原則」來維持小型的團隊規模 – 團隊所有成員的人數能用兩個批薩飽(通常為五至十人)
21
B L U E P L A N E T
架構原型
22
B L U E P L A N E T
使用「扼制模式」(Strangler Application)架構遷移
23
B L U E P L A N E T
IIII. 第二步工作法:回饋的技術實踐
24
B L U E P L A N E T
遙測(Telemetry)
「一個自動化的通信過程,先在遠端採集點上收集衡量資料,後傳輸給相應的接收端,作為監測之用」
25
B L U E P L A N E T
集中式監測架構
26
B L U E P L A N E T
資訊輻射體 (information radiator)
27
B L U E P L A N E T
Netflix�的自動擴展能力
28
B L U E P L A N E T
利用遙測讓部署作業更安全
29
B L U E P L A N E T
共同承擔營運責任
讓開發人員要意識到,就算每一項產品功能都標記為「完成」,也不代表業務目標已經實現:
30
B L U E P L A N E T
Google的 SRE工作交接
31
B L U E P L A N E T
Google的「服務回傳機制」(Service handback mechanism)
32
B L U E P L A N E T
將「假設驅動開發」和「A/B測試」整合到日常工作
讓軟體部署與發佈變得快速和安全,所有生產環境變更,都變成了低風險活動。
33
B L U E P L A N E T
Code review取代變更審核
34
B L U E P L A N E T
將 code review融入日常生活中
請工程師來審查十行程式碼,他會找到十個問題,請他審查五百行程式碼,他會說看起來不錯。
35
B L U E P L A N E T
V. 第三步工作法:持續學習與實驗的具體實踐
36
B L U E P L A N E T
韌性型組織 (Resilient Organization)
37
B L U E P L A N E T
Netflix 穩定的系統
38
B L U E P L A N E T
「不指責的事後分析」會議
39
B L U E P L A N E T
將「局部」發現的經驗,�轉化成「全局」改善的知識
不指責的事後分析會議之後,應將所有的會議紀錄和相關文件,集中在一個方便整個組織所有人存取的公開位置。
40
B L U E P L A N E T
重新定義失敗,鼓勵評估風險
41
B L U E P L A N E T
將「償還技術債」制度化
42
B L U E P L A N E T
Summary - 我個人的劃重點
43
B L U E P L A N E T
Thank you for listening
44
B L U E P L A N E T