DevOps 實踐指南 DevOps实践指南

[美]吉恩·金,耶斯·亨布爾,帕特裡克·德布瓦,約翰·威爾斯 刘征,王磊,马博文,曾朝京

買這商品的人也買了...

商品描述

本書共分為6個部分:

第一部分概述DevOps的歷史和三個基本原則,即“三步工作法”;

第二部分介紹開啟DevOps轉型的過程;

第三到五部分深入探討“三步工作法”的各個要素;

第六部分關註如何將安全性和合規性正確集成到日常工作中。

全書涵蓋40餘個DevOps案例,以谷歌、亞馬遜、Facebook等全球知名企業和組織的實際調查結果為依據,展示如何通過現代化的運維管理提升管理效率,進而為企業贏得更大市場、創造更多利潤。

作者簡介

作者:[美]吉恩·金(Gene Kim),耶斯·亨布爾(Jez Humble),帕特里克·德布瓦(Patrick Debois),約翰·威爾斯(John Willis)譯者:劉徵,王磊,馬博文,曾朝京
Gene Kim 
Tripwire創始人、前CTO,IT Revolution創始人,DevOps企業峰會主辦人,暢銷書《鳳凰項目》合著者。

Jez Humble 
DevOps Research and Assessment公司CTO,加州大學伯克利分校信息學院講師;曾任ThoughtWorks顧問。《精益企業》和Jolt大獎圖書《持續交付》的合著者。

Patrick Debois 
DevOps之父,致力於通過在開發、項目管理和系統管理之中應用敏捷技術來填補項目和運維之間的鴻溝。

John Willis 
Chain Bridge System創始人,曾任Docker公司佈道師,現任職於SJ Technologies公司。

【譯者簡介】

劉徵
Nutanix路坦力架構師,EXIN國內DevOps Master和DevOps Professional認證講師,持有紅帽RHCA認證和AWS架構師認證,諳熟企業數據中心的IT服務管理。目前致力於推廣DevOps相關的理念和實踐,在DevOps社區中積極地參與培訓和研討會等活動,是DevOpsDays大會社區在中國的核心組織者和志願工作者。

王磊
前ThoughtWorks諮詢師,EXIN國內DevOps Master認證講師。擁有10多年軟件行業經驗,以及服務化架構、持續交付和DevOps轉型等方面的豐富實踐經驗。國內較早倡導和實踐微服務的先行者,著有國內微服務架構相關圖書《微服務架構與實踐》,是西安DevOps Meetup活動的聯合發起人。

馬博文
前ThoughtWorks諮詢師,AWS認證助理架構師。擁有多年Web開發和DevOps經驗,熟悉持續交付、微服務。曾參與翻譯《Scala編程實戰》《DevOps實踐》等書,是西安DevOps Meetup活動的發起人。

曾朝京
Micro Focus解決方案顧問,曾參加EXIN國內Devops Master講師認證培訓。長期從事IT運維管理領域諮詢工作,曾為能源、金融、航空運輸、政府行業中的多個大型企業提供IT運維管理規劃。目前致力於探索DevOps理念在企業IT部門的實踐。

目錄大綱

第一部分DevOps介紹

第1章敏捷、持續交付和三步法4 
1.1製造業價值流4 
1.2技術價值流4 
1.2.1聚焦於部署前置時間5 
1.2.2關注返工指標——%C/A 7 
1.3三步工作法:DevOps的基礎原則7 
1.4小結8 
第2章第一步:流動原則9 
2.1使工作可見9 
2.2限制在製品數10 
2.3減小批量大小11 
2.4減少交接次數13 
2.5持續識別和改善約束點14 
2.6消除價值流中的困境和浪費15 
2.7小結16 
第3章第二步:反饋原則17 
3.1在復雜系統中安全地工作17 
3.2及時發現問題18 
3.3群策群力,戰勝問題獲取新知19 
3.4在源頭保障質量21 
3.5為下游工作中心而優化22 
3.6小結22 
第4章第三步:持續學習與實驗原則23 
4.1建立學習型組織和安全文化23 
4.2將日常工作的改進制度化25 
4.3把局部發現轉化為全局優化26 
4.4在日常工作中註入彈性模式27
4.5領導層強化學習文化27 
4.6小結29 
4.7第一部分總結29 

第二部分從何處開始

第5章選擇合適的價值流作為切入點32 
5.1綠地項目與棕地項目34 
5.2兼顧記錄型系統和交互型系統35 
5.3從最樂於創新的團隊開始36 
5.4擴大DevOps的範圍37 
5.5小結38 
第6章理解、可視化和運用價值流39 
6.1確定創造客戶價值所需的團隊40 
6.2針對團隊工作繪製價值流圖40 
6.3組建專門的轉型團隊42 
6.3.1擁有共同的目標43 
6.3.2保持小跨度的改進計劃44 
6.3.3為非功能性需求預留20%的開發時間,減少技術債務44 
6.3.4提高工作的可視化程度47 
6.4用工具強化預期行為47 
6.5小結48 
第7章參考康威定律設計組織結構49 
7.1組織原型51 
7.2過度職能導向的危害(“成本優化”) 51 
7.3組建以市場為導向的團隊(“速度優化”) 52 
7.4使職能導向有效53 
7.5將測試、運維和信息安全融入日常工作54 
7.6使團隊成員 成為通才54 
7.7投資於服務和產品,而非項目56
7.8根據康威定律設定團隊邊界56 
7.9創建松耦合架構,提高生產力和安全性57 
7.10小結60 
第8章將運維融入日常開發工作61 
8.1創建共享服務,提高開發生產力62 
8.2將運維工程師融入服務團隊63 
8.3為每個服務團隊分派運維聯絡人64 
8.4邀請運維工程師參加開發團隊的會議65 
8.4.1邀請運維工程師參加每日站會65 
8.4.2邀請運維工程師參加回顧會議66 
8.4.3使用看板圖展示運維工作66 
8.5小結67 
8.6第二部分總結67 

第三部分第一步:流動的技術實踐

第9章為部署流水線奠定基礎70 
9.1按需搭建開發環境、測試環境和生產環境71 
9.2應用統一的代碼倉庫72 
9.3使基礎設施的重建更容易74 
9.4運行在類生產環境裡才算“完成” 75 
9.5小結76 
第10章實現快速可靠的自動化測試77 
10.1對代碼和環境做持續構建、測試和集成79 
10.2構建快速可靠的自動化測試套件81 
10.2.1在自動化測試中盡 早發現錯誤83 
10.2.2盡可能並行地快速執行測試84 
10.2.3先編寫自動化測試84
10.2.4盡量將手動測試自動化85 
10.2.5在測試套件中集成性能測試86 
10.2.6在測試套件中集成非功能性需求測試86 
10.3在部署流水線失敗時拉下安燈繩87 
10.4小結89 
第11章應用和實踐持續集成90 
11.1小批量開發與大批量合併92 
11.2應用基於主幹的開發實踐93 
11.3小結95 
第12章自動化和低風險發布96 
12.1自動化部署流程97 
12.1.1應用自動化的自助式部署100 
12.1.2在部署流水線中集成代碼部署101 
12.2將部署與發布解耦104 
12.2.1基於環境的發布模式105 
12.2.2基於應用的發布模式更安全109 
12.3持續交付和持續部署實踐的調查112 
12.4小結113 
第13章降低發布風險的架構114 
13.1能提高生產力、可測試性和安全性的架構115 
13.2架構原型:單體架構與微服務116 
13.3安全地演進企業架構118 
13.4小結121 
13.5第三部分總結121 

第四部分第二步:反饋的技術實踐

第14章建立能發現並解決問題的遙 測系統125
14.1建設集中式監控架構127 
14.2建立生產環境的應用程序日誌遙測129 
14.3使用遙測指導問題的解決131 
14.4將建立生產遙測融入日常工作132 
14.5建立自助訪問的遙測和信息輻射器133 
14.6發現和填補遙測的盲區135 
14.6.1應用程序和業務度量指標136 
14.6.2基礎架構度量指標137 
14.6.3顯示疊加的指標組合138 
14.7小結139 
第15章分析遙測數據以更好地預測故障和實現目標140 
15.1用均值和標準差識別潛在問題141 
15.2異常狀態的處理和告警142 
15.3非高斯分佈遙測數據的問題143 
15.4應用異常檢測技術146 
15.5小結149 
第16章應用反饋實現安全部署150 
16.1通過遙測使部署更安全151 
16.2開發和運維共同承擔值班工作153 
16.3讓開發人員跟踪工作對下游的影響153 
16.4讓開發人員自行管理生產服務155 
16.5小結159 
第17章將假設驅動的開發和A/B測試融入日常工作160 
17.1 A/B測試簡史161 
17.2在功 測試中集成A/B測試162
17.3在發布中集成A/B測試162 
17.4在功能規劃中集成A/B測試163 
17.5小結165 
第18章建立評審和協作流程以提升當前工作的質量166 
18.1變更審批流程的危險168 
18.2 “過度控制變更”的潛在危險168 
18.3變更的協調和排程170 
18.4變更的同行評審170 
18.5人工測試和變更凍結的潛在危害173 
18.6利用結對編程改進代碼變更173 
18.7消除官僚流程176 
18.8小結177 
18.9第四部分總結178 

第五部分第三步:持續學習與實驗的技術實踐

第19章將學習融入日常工作180 
19.1建立公正和學習的文化181 
19.2舉行不指責的事後分析會議182 
19.3盡可能廣泛地公開事後分析會議結果184 
19.4降低事故容忍度,尋找更弱的故障信號185 
19.5重新定義失敗,鼓勵評估風險186 
19.6在生產環境注入故障來恢復和學習186 
19.7創建故障演練日187 
19.8小結189 
第20章將局部經驗轉化為全局改進190 
20.1使用聊天室和聊天機 人自動積累組織知識190 
20.2軟件中便於重用的自動化、標準化流程192
20.3創建全組織共享的單一源代碼庫192 
20.4運用自動化測試記錄和交流實踐來傳播知識194 
20.5通過確定非功能性需求來設計運維194 
20.6把可重用的運維用戶故事納入開發195 
20.7確保技術選型有助於實現組織目標195 
20.8小結197 
第21章預留組織學習和改進的時間198 
21.1償還技術債務的製度化慣例199 
21.2讓所有人教學相長200 
21.3在DevOps會議中分享經驗201 
21.4傳播實踐的內部顧問和教練203 
21.5小結204 
21.6第五部分總結204 

第六部分集成信息安全、變更管理和合規性的技術實踐

第22章將信息安全融入每個人的日常工作207 
22.1將安全集成到開發迭代的演示中207 
22.2將安全集成到缺陷跟踪和事後分析會議中208 
22.3將預防性安全控制集成到共享源代碼庫及共享服務中208 
22.4將安全集成到部署流水線中209 
22.5保證應用程序的安全性210 
22.6確保軟件供應鏈的安全214 
22.7確保 境的安全215 
22.8將信息安全集成到生產環境遙測中216 
22.9在應用程序中建立安全遙測系統217
22.10在環境中建立安全遙測系統217 
22.11保護部署流水線219 
22.12小結219 
第23章保護部署流水線220 
23.1將安全和合規性集成到變更批准流程中220 
23.2將大量低風險變更重新歸類為標準變更221 
23.3如何處理常規變更222 
23.4減少對職責分離的依賴224 
23.5確保為審計人員和合規人員留存文檔和證據226 
23.6小結228 
23.7第六部分總結228 
行動起來——本書總結229 

附加材料
附錄232 
附錄1 DevOps的大融合232 
附錄2約束理論和核心的長期衝突234 
附錄3惡性循環列表235 
附錄4交接和隊列的危害235 
附錄5工業安全神話236 
附錄6豐田安燈繩237 
附錄7軟件包產品238 
附錄8事後分析會議238 
附錄9猿猴軍團239 
附錄10上線時間透明化240 
參考資源241 
致謝243 
EXIN DevOps Professional認證備考指南&模擬題245