《DevOps:軟件架構師行動指南》從軟件架構師視角講解了引入DevOps實踐所需要擁有的技術能力,涵蓋運維、部署流水線、監控、安全與審計以及質量關注。通過三個經典案例研究,講解在不同場景下應用DevOps實踐的方法,對于想應用DevOps實踐的組織提供切實的指導。
全書共五部分。第一部分(第1~3章)討論DevOps的背景,包括DevOps的目標和期望使用DevOps解決的問題、云、運維等。第二部分(第4~6章)介紹部署流水線,從功能性視角介紹部署實踐的內容,涵蓋微服務架構風格、構建和測試過程、工具鏈,以及具體的部署問題。第三部分(第7~10章)介紹橫切關注點,討論了計算監控、實時測試、安全與安全審計,以及部署流水線的性能、可靠性、可修改性等。還介紹了業務關注點,包括為引進DevOps所需要準備的業務計劃的組成元素,以及如何進行論證、推出和測量業務計劃。第四部分(第11~13章)描述3個案例研究:為了實現業務連續性如何維護兩個數據中心,管理一個持續部署流水線,一個組織如何遷移到微服務架構上。第五部分(第14~15章)設想evOps的未來,介紹了目前的研究以及如何基于把運維視作一系列過程來進行,并給出了3~5年內DevOps將如何發展的預測。
DevOps為加速新軟件功能的發布和改善對生產環境系統的監控帶來了希望,但是對軟件架構師和軟件架構來說,DevOps的關鍵意義卻常常被忽視。本書全面解決了這些問題,不僅剖析了軟件架構師為實現DevOps目標必須要做出的決策,并且說明了DevOps的其他參與者有可能以哪種方式來影響架構師的工作,還詳細介紹了高效部署DevOps所需要的組織、技術和運營環境,以及DevOps對每個開發階段的影響。作者解決了把多個功能關聯起來的橫切關注點問題,提供了對合規性、性能、可靠性、可重復性和安全方面的切合實際的洞察。
譯 者 序
為什么要翻譯這本書
2016年7月中旬,機械工業出版社華章公司王春華老師問我有沒有興趣翻譯一本DevOps實踐的書,在看過這本書的英文版之后,我欣然答應了。
因為,我知道這是一本有重要價值的書,我愿意花時間把它翻譯出來,我想讓它被更多人研讀學習。
自從在Agile 2008大會上討論DevOps一詞以來,DevOps理念得到了IT從業者的認可和追捧。數年之后,再次客觀地審視DevOps運動時,我們發現從整個信息技術領域來看,DevOps還沒有成為開發和運維的事實標準。
原因何在?
我想,其中最重要的一個原因是,很多組織缺少在業務中引入DevOps實踐的專家知識,也沒有很多可以借鑒的成功案例。而這本書正好可以解決這個問題。
本書從軟件架構師的視角講解了引入DevOps實踐所需要掌握的技術能力,涵蓋了運維、部署流水線、監控、安全與審計以及質量關注。第四部分通過3個經典案例研究,講解了在不同場景下應用DevOps實踐的方法。這對于想應用DevOps實踐的組織具有切實的指導意義。
初識本書,我有一種相見恨晚的感覺。研讀之后,這種感覺尤甚。相信讀者也一定會有這樣的感覺。
衷心希望本書中文版能給讀者帶來有價值的信息,為推動DevOps進一步發展和應用做出貢獻。
讀者對象
本書適合以下幾類讀者閱讀:
軟件架構師
中高級運維工程師
計算機相關專業的學生
希望提高IT生產力的人員
勘誤支持
雖然譯者試圖努力保證本書翻譯中不出現錯誤,但鑒于譯者的知識和視角,書中難免出現用詞錯誤、技術適用性的問題。在此,譯者懇請讀者不吝指教,指出錯誤。請讀者發送郵件到xufengnju@163.com或者加入QQ群434242482,幫助譯者修正錯誤。本書的勘誤將在網站http://xufeng.info/刊載。
譯者說明
本書由來自盛大游戲、唯品會等互聯網企業的資深DevOps專家聯合翻譯完成。
除胥峰、任發科外,參與翻譯的人員還有米全喜、吳昊、黃靈等。全書由胥峰完成統稿和技術審校。
致謝
感謝華章公司引進了本書的中譯本版權,這是本中譯本得以面市的最核心要素。
感謝華章公司盛思源、關敏和王春華老師,你們專業的編輯能力為本書提供了重要的質量保證。
感謝盛大游戲各位領導對我翻譯本書的關心和支持。
感謝我的妻子呂寧和可愛的女兒胥欣,謝謝你們的支持和理解。
前言
多年以來,我們一直在探索研究運維中的問題。自然而然地,我們也一直在追蹤DevOps運動。它正在沿著Gartner成熟度曲線向上發展。這種現象有著堅實的業務原因。我們能夠找到從信息技術經理視角對DevOps的探討(例如小說《鳳凰項目:一個IT運維的傳奇故事》),也能找到從項目經理視角對DevOps的探討(例如《持續交付:發布可靠軟件的系統方法》)。而且,關于文化變革和文化變革對于打破組織單元之間障礙的意義,也有大量的資料。
然而,令我們感到失望的是,鮮有從軟件架構師角度對DevOps探討的資料。把運維人員視為首要干系人并且聆聽他們的需求當然是非常重要的。使用工具來支持運維和項目管理也是非常重要的。然而,我們強烈感覺到,DevOps并不僅僅是關于干系人管理和工具使用的。
事實上,正是因為目前缺少這方面的資料,所以我們才決定撰寫本書,把這些缺失的內容填充起來。DevOps與設計、過程、工具化和組織結構之間的相互作用令人著迷。我們試圖回答兩個主要問題:作為軟件架構師,我需要做出什么樣的技術決策才能夠實現DevOps目標?DevOps領域的其他參與者會對我產生什么樣的影響?
以上這些問題的答案是,實現DevOps目標可能包含著對你的系統架構和角色以及責任做出重大變更,在把系統部署到生產環境以及在生產環境中支持這些系統時,需要以上角色及責任。
正如軟件架構師必須理解他們所設計與構建的系統的業務情境和目標一樣,理解DevOps也要理解組織和業務情境,同時也要理解技術和運維情境。我們探索了所有這些內容。
本書的主要讀者是那些曾經被問過或者將被問到“這個項目或者組織是否應該采用DevOps實踐”這個問題的執業軟件架構師。甚至他們不是被追問這個問題,而是他們有可能被告知是否應該采用DevOps實踐。與所有書一樣,我們期望還有其他類型的讀者。那些有興趣學習更多關于軟件架構實踐的學生應該可以在本書中找到一些感興趣的資料。那些想探索研究DevOps課題的研究人員可以在本書中找到重要的背景資料。然而,我們的主要讀者還是那些執業軟件架構師。
概述
在本書的開始,我們討論了DevOps的背景。在第一部分中,我們研究了DevOps的目標以及期望使用DevOps來解決的問題。我們會涉及組織和文化問題,也會涉及DevOps實踐和敏捷方法學的關系。
在第2章中,我們研究了云。隨著云即平臺(Cloud as a Platform)的增長,DevOps實踐也得到了發展。理論上,DevOps和云即平臺是可分開的,但是事實上,虛擬化和云是推動DevOps實踐的重要力量。
在介紹背景知識的最后一章(第3章)中,我們按照信息技術基礎設施庫(Information Technology Infrastructure Library,ITIL)的理論研究了運維。ITIL是對運維組的最重要功能進行組織的體系。不是所有的運維工作都包含在DevOps實踐中,但是理解運維組的職責卻會提供重要的上下文信息,特別是當需要理解角色和職責時。
第二部分描述了部署流水線(Deployment Pipeline)。在這一部分中,我們首先探索了微服務架構風格,這出現在第4章中。為了應用DevOps實踐而以微服務風格進行系統架構并不是必需的,但是,卻能用微服務架構風格來解決DevOps所需要解決的一些問題。
在第5章中,我們簡略介紹了構建和測試過程以及工具鏈。理解這些內容很重要,但它們不是我們的焦點。我們介紹了把系統部署到生產環境所關聯的各種不同環境以及在這些環境上執行的不同類型的測試。因為在DevOps中用到的很多工具也在構建和測試過程中被用到了,所以我們提供了理解這些工具和如何控制它們的上下文信息。
我們以討論部署結束第二部分。DevOps的目標之一是加速部署。實現這個目標的一種技術是,使得每個開發團隊可以在完成準備后獨立地部署他們的代碼。獨立部署帶來了很多一致性的問題。我們將討論不同的部署模型;管理同時運行在生產環境中不同版本的系統;在發生錯誤時回滾;以及與實際把系統部署到生產環境中有關的其他主題。
第二部分提供了從功能視角觀察部署實踐的內容。然而,與其他任何系統一樣,質量視角常常是控制系統設計和系統接受度的主要因素。在第三部分中,我們聚焦在橫切關注點上。我們首先在第7章中討論了監控和現場測試(live testing)。現代軟件測試實踐在將系統部署到生產環境中以后并沒有結束。首先,系統被廣泛地監控以檢測問題;其次,在將系統部署到生產環境以后,測試正以各種形式繼續進行。
另一個橫切關注點是安全。我們在第8章中討論了該內容。我們展示了環境中各種不同類型的安全控制,包括組織范圍和特定系統范圍的安全控制。我們討論了與實現安全相關聯的不同角色以及在安全審計案例中如何評估這些角色。
安全不是質量關注的全部。在第9章中,我們討論了與DevOps實踐有關的其他方面的質量。我們討論的主題包括部署流水線的性能、可靠性和可修改性。
第三部分的最后,我們在第10章中討論了業務關注。像DevOps這種涉及面廣泛的實踐,如果得不到來自管理層的支持,是無法被采用的。業務計劃是尋求這種支持的一種典型方法。因此,我們描述了為引進DevOps所需要準備的業務計劃的組成元素,然后討論了如何進行論證、推出和測量業務計劃。
在第四部分中,我們描述了3個案例研究。這些實施了DevOps實踐的組織給我們講解了他們所采用的一些技巧。第11章討論了為了實現業務連續性如何維護兩個數據中心;第12章展示了一個持續部署流水線的細節;第13章描述了一個組織是如何遷移到微服務架構上的。
作為本書的結尾,我們在第五部分展望了DevOps的未來。第14章描述了我們的研究以及它是如何基于把運維視作一系列過程來進行的。第15章預測了未來3~5年DevOps將如何發展。
致謝
本書離不開眾多人的幫助。在此,感謝Chris Williams、John Painter、Daniel Hand和Sidney Shek,他們為案例研究做出了貢獻。同時,感謝Adnene Guabtni、Kanchana Wickremasinghe、Min Fu和Xiwei Xu在有些章節中提供的幫助。
感謝Manuel Pais幫助我們編排了案例研究。感謝Philippe Kruchten、Eoin Woods、Gregory Hartman、Sidney Shek、Michael Lorant、Wouter Geurts和Eltjo Poort對本書做出了評論或者為本書的某些方面做出了貢獻。
下列人士對第13章做出了評論,在此表示感謝:Jean-Michel、Lemieux、Greg Warden、Robin Fernandes、Jerome Touffe-Blin、Felipe Cuozzo、Pramod Korathota、Nick Wright、Vitaly Osipov、Brad Baker和Jim Watts。
在出版階段,Addison-Wesley出版社的編輯用他們一貫的專業和高效的工作為本書順利出版做出了貢獻。他們的專業知識和工作經驗提升了本書的質量。
最后,感謝NICTA和NICTA的管理層。NICTA是由澳大利亞政府通過通信部(Department of Communications)和由澳大利亞研究委員會(Australian Research Council)通過ICT卓越中心(Centre of Excellence)項目組建的。如果沒有他們的慷慨支持,本書將難以完成。
圖例說明
對于圖,我們使用了4種不同的圖例。我們使用架構標注法來識別我們使用的關鍵架構概念;使用業務流程建模標注(Business Process Model and Notation,BPMN)來描述一些過程;使用波特價值鏈標注(Porter’s Value Notation)來描述一些其他的過程;使用UML時序圖來組織活動的順序。這里沒有給出UML時序圖標注。我們給出了通過其他方法進行的標注。
查看全部↓
作者簡介:
倫恩·拜斯(Len Bass) 澳大利亞NICTA的高級首席研究員。他曾在卡內基梅隆大學軟件工程研究所工作25年,有超過50年的軟件開發和研究經驗。他是兩本軟件架構方面獲獎圖書的合作者(《Software Architecture in Practice, Third Edition》和《Documenting Software Architectures:Views and Beyond,Second Edition》),他還與人合作出版或發表了數篇計算機科學與軟件工程領域的其他書籍和論文。
英戈·韋伯(Ingo Weber) 澳大利亞NICTA軟件系統研究組的高級研究員,也是新南威爾士大學計算機科學與工程系的兼職高級講師。他的研究領域包括云計算、DevOps、業務過程管理以及人工智能。
朱黎明(Liming Zhu) 澳大利亞NICTA一個研究小組的負責人和首席研究員。他擁有新南威爾士大學和悉尼大學的聯合職位。曾就職于數個在軟件領域具有領先地位的技術公司。
譯者簡介:
胥峰 資深運維專家,有10年運維經驗,在業界頗具威望和影響力。2011年加入盛大游戲,工作至今,曾參與盛大游戲多款大型端游和手游的運維,主導 運維自動化平臺的功能設計和實施。通過公眾號“運維技術實踐”發布 “網絡分析技術實踐”系列主題技術文章,引發萬人閱讀轉發。擁有工信部認證高級信息系統項目管理師資格。
任發科目前擔任融數數據研發總監,曾任職唯品會、會唐網、亞*遜、ThoughtWorks,有十余年軟件開發、架構和管理經驗。曾參與多個電商相關系統的研發工作,近年主要從事DevOps工具鏈的設計與實現,大數據平臺的組建,以及高效研發團隊的組建與管理。
譯者序
前言
第一部分 背 景
第1章 DevOps是什么 …… 2
1.1 概述 …… 2
1.1.1 定義DevOps …… 2
1.1.2 DevOps實踐 …… 3
1.1.3 持續部署的例子:IMVU …… 5
1.2 為什么是DevOps …… 5
1.2.1 發布過程 …… 5
1.2.2 配合不佳的原因 …… 7
1.2.3 運維人員能力有限 …… 7
1.3 DevOps視角 …… 8
1.3.1 自動化 …… 8
1.3.2 開發團隊的職責 …… 9
1.4 DevOps與敏捷 …… 9
1.5 團隊結構 …… 10
1.5.1 團隊規模 …… 10
1.5.2 團隊角色 …… 10
1.6 協作 …… 13
1.6.1 協作的形式 …… 13
1.6.2 團隊協作 …… 14
1.6.3 跨團隊協作 …… 14
1.7 障礙 …… 15
1.7.1 文化及組織類型 …… 15
1.7.2 部門類型 …… 16
1.7.3 筒倉思維方式(Silo Mentality) …… 17
1.7.4 工具支持 …… 17
1.7.5 人員問題 …… 17
1.8 小結 …… 18
1.9 更多閱讀材料 …… 18
第2章 云即平臺 …… 20
2.1 概述 …… 20
2.2 云的特性 …… 21
2.2.1 虛擬化 …… 22
2.2.2 IP和域名系統管理 …… 23
2.2.3 平臺即服務 …… 25
2.2.4 分布式環境 …… 25
2.3 獨特的云特性對DevOps的影響 …… 30
2.3.1 環境 …… 30
2.3.2 輕松創建虛擬機 …… 31
2.3.3 數據考量 …… 31
2.4 小結 …… 32
2.5 更多閱讀材料 …… 33
第3章 運維 …… 34
3.1 概述 …… 34
3.2 運維服務 …… 34
3.2.1 供給硬件 …… 34
3.2.2 供給軟件 …… 35
3.2.3 IT功能 …… 36
3.2.4 服務級別協議 …… 36
3.2.5 容量規劃 …… 36
3.2.6 業務連續性和安全 …… 37
3.2.7 服務策略 …… 38
3.2.8 服務設計 …… 39
3.2.9 服務移交 …… 39
3.2.10 服務運維 …… 40
3.2.11 服務運維概念 …… 40
3.3 服務運維功能 …… 41
3.4 持續服務改進 …… 42
3.5 運維和DevOps …… 43
3.6 小結 …… 44
3.7 更多閱讀材料 …… 44
第二部分 部署流水線
第4章 整體架構 …… 48
4.1 DevOps實踐是否需要架構調整 …… 48
4.2 架構結構總覽 …… 49
4.2.1 協作模式 …… 50
4.2.2 資源管理 …… 51
4.2.3 架構元素之間的映射 …… 52
4.3 微服務架構的質量 …… 52
4.3.1 可靠性 …… 53
4.3.2 可修改性 …… 54
4.4 團隊的亞馬遜規則 …… 55
4.5 現有系統的微服務方案 …… 56
4.6 小結 …… 56
4.7 更多閱讀材料 …… 57
第5章 構建與測試 …… 58
5.1 概述 …… 58
5.2 在部署流水線中移動系統 …… 59
5.2.1 可追溯性 …… 59
5.2.2 環境 …… 60
5.3 橫切關注點 …… 61
5.4 開發及提交前測試 …… 63
5.4.1 版本控制與分支 …… 63
5.4.2 功能開關 …… 65
5.4.3 配置參數 …… 66
5.4.4 在開發和提交前測試中的測試 …… 67
5.5 構建與集成測試 …… 67
5.5.1 構建腳本 …… 67
5.5.2 打包 …… 68
5.5.3 持續集成與構建狀態 …… 69
5.5.4 集成測試 …… 70
5.6 用戶驗收測試/預發布/性能測試 …… 70
5.7 生產環境 …… 71
5.7.1 早期發布測試 …… 71
5.7.2 錯誤檢測 …… 72
5.7.3 現場測試 …… 72
5.8 事件 …… 73
5.9 小結 …… 73
5.10 更多閱讀材料 …… 74
第6章 部署 …… 75
6.1 概述 …… 75
6.2 部署管理的策略 …… 76
6.2.1 藍/綠部署 …… 76
6.2.2 滾動升級 …… 77
6.3 邏輯一致性 …… 78
6.3.1 相同服務的多個版本同時存在 …… 78
6.3.2 兼容數據庫中保存的數據 …… 81
6.4 打包 …… 82
6.5 多環境部署 …… 84
6.6 部分部署 …… 86
6.6.1 金絲雀測試 …… 86
6.6.2 A/B測試 …… 87
6.7 回滾 …… 87
6.8 工具 …… 89
6.9 小結 …… 90
6.10 更多閱讀材料 …… 90
第三部分 橫切關注點
第7章 監控 …… 94
7.1 概述 …… 94
7.2 監控什么 …… 95
7.2.1 故障檢測 …… 96
7.2.2 性能下降檢測 …… 96
7.2.3 容量規劃 …… 97
7.2.4 用戶交互 …… 98
7.2.5 入侵檢測 …… 99
7.3 如何監控 …… 99
7.3.1 基于代理的監控和無代理的監控 …… 101
7.3.2 監控運維活動 …… 102
7.3.3 收集和存儲 …… 102
7.4 什么時候變更監控配置 …… 103
7.5 解釋監控數據 …… 103
7.5.1 日志 …… 104
7.5.2 繪圖和展示 …… 105
7.5.3 警報和警告 …… 105
7.5.4 診斷和反應 …… 106
7.5.5 監控DevOps過程 …… 106
7.6 挑戰 …… 107
7.6.1 挑戰1:持續變更下的監控 …… 107
7.6.2 挑戰2:自下向上與自上向下和在云中的監控 …… 108
7.6.3 挑戰3:監控微服務架構 …… 109
7.6.4 挑戰4:處理大容量的分布式(日志)數據 …… 109
7.7 工具 …… 109
7.8 從監控數據中診斷出異常——Platformer.com的案例 …… 110
7.8.1 背景 …… 111
7.8.2 數據收集 …… 112
7.8.3 檢測異常 …… 112
7.8.4 思考 …… 113
7.9 小結 …… 113
7.10 更多閱讀材料 …… 114
第8章 安全與安全審計 …… 115
8.1 安全是什么 …… 115
8.2 威脅 …… 117
8.3 需要保護的資源 …… 118
8.4 安全角色和活動 …… 120
8.5 身份管理 …… 122
8.5.1 認證 …… 123
8.5.2 授權 …… 125
8.6 訪問控制 …… 126
8.6.1 阻止訪問 …… 127
8.6.2 誰負責預防控制 …… 129
8.7 檢測、審計和拒絕服務 …… 129
8.8 開發 …… 130
8.9 審計者 …… 130
8.10 應用設計考慮 …… 131
8.11 部署流水線設計考慮 …… 132
8.12 小結 …… 133
8.13 更多閱讀材料 …… 134
第9章 其他非功能需求 …… 135
9.1 概述 …… 135
9.2 可重復性 …… 136
9.2.1 在恰當的層級上定義和執行過程 …… 136
9.2.2 版本控制所有事物 …… 138
9.3 性能 …… 139
9.3.1 測量重要的事物 …… 139
9.3.2 提高資源使用率 …… 140
9.4 可靠性 …… 141
9.4.1 理解不同服務的可靠性特性 …… 141
9.4.2 早期檢測和修復錯誤 …… 142
9.5 可恢復性 …… 142
9.6 互操作性 …… 143
9.6.1 注意接口的互操作性 …… 143
9.6.2 理解現有的數據模型 …… 143
9.7 可測試性 …… 144
9.8 可修改性 …… 145
9.8.1 一個工具內的修改 …… 145
9.8.2 工具之間交互行為的修改 …… 146
9.9 小結 …… 146
9.10 更多閱讀材料 …… 147
第10章 業務關注點 …… 148
10.1 概述 …… 148
10.2 業務案例 …… 148
10.2.1 問題和解決問題所帶來的好處 …… 149
10.2.2 成本 …… 149
10.2.3 干系人影響 …… 150
10.2.4 風險及其減緩 …… 151
10.2.5 推出計劃 …… 153
10.2.6 成功標準 …… 154
10.3 度量和對DevOps實踐的合規性 …… 155
10.3.1 測量DevOps實踐的成功度 …… 155
10.3.2 測量對DevOps實踐的合規性 …… 156
10.3.3 測量干系人的滿意度 …… 157
10.4 Dev和Ops之間的交互點 …… 157
10.4.1 許可 …… 157
10.4.2 事故處理 …… 158
10.5 小結 …… 159
10.6 更多閱讀材料 …… 159
第四部分 案 例 研 究
第11章 支持多數據中心 …… 162
11.1 概述 …… 162
11.2 當前的情況 …… 163
11.3 業務邏輯和Web層 …… 163
11.3.1 應用邏輯 …… 163
11.3.2 基礎設施 …… 164
11.3.3 增加一個應用 …… 164
11.3.4 發現基礎設施 …… 165
11.4 數據庫層 …… 167
11.4.1 事務數據 …… 167
11.4.2 基礎設施支持 …… 168
11.4.3 會話數據 …… 168
11.5 其他基礎設施工具 …… 168
11.5.1 gem存儲庫服務器 …… 169
11.5.2 Elasticsearch …… 169
11.5.3 域名系統 …… 169
11.6 數據中心切換 …… 170
11.6.1 受控切換步驟 …… 170
11.6.2 非受控切換 …… 174
11.6.3 定義和自動化切換步驟 …… 175
11.7 測試 …… 177
11.7.1 數據中心切換應用程序 …… 177
11.7.2 基礎設施測試 …… 177
11.7.3 持續交付流水線 …… 177
11.8 小結 …… 178
11.9 更多閱讀材料 …… 179
第12章 實施企業的持續部署流水線 …… 180
12.1 概述 …… 180
12.2 組織背景 …… 180
12.3 持續部署流水線 …… 182
12.3.1 持續部署流水線工具 …… 183
12.3.2 使用AWS CloudFormation的環境定義 …… 184
12.3.3 標準化的應用程序生命周期概覽及其使用 …… 186
12.3.4 標準化的應用程序生命周期階段 …… 188
12.3.5 管理復雜的應用程序和流水線狀態 …… 194
12.3.6 管理持久化 …… 196
12.4 讓安全成為持續部署流水線的基礎 …… 196
12.4.1 使用Amazon CloudFormation分離職責 …… 196
12.4.2 身份和訪問管理 …… 197
12.5 高級概念 …… 198
12.5.1 最小化生產環境和非生產環境之間的偏移 …… 198
12.5.2 解決供應商的限制 …… 198
12.5.3 廠商鎖定 …… 199
12.5.4 新的AWS內置服務的展望 …… 199
12.6 小結 …… 199
12.7 更多閱讀材料 …… 200
第13章 遷移到微服務 …… 202
13.1 Atlassian概述 …… 202
13.2 構建部署微服務的平臺 …… 203
13.3 BlobStore:一個微服務例子 …… 206
13.3.1 架構 …… 206
13.3.2 通過純函數式架構和編程實現安全性和性能 …… 207
13.3.3 解決“非功能需求” …… 210
13.4 開發過程 …… 210
13.4.1 開發人員和支持 …… 211
13.4.2 構建和部署流水線 …… 212
13.4.3 客戶應用的生產環境的零停機時間路徑 …… 214
13.5 BlobStore演進 …… 215
13.6 小結 …… 219
13.7 更多閱讀材料 …… 219
第五部分 走 向 未 來
第14章 作為過程的運維 …… 222
14.1 概述 …… 222
14.2 動機和概覽 …… 223
14.3 離線活動 …… 224
14.4 在線活動 …… 227
14.4.1 錯誤檢測 …… 227
14.4.2 錯誤恢復 …… 229
14.5 錯誤診斷 …… 229
14.6 監控 …… 231
14.7 小結 …… 231
14.8 更多閱讀材料 …… 231
第15章 DevOps的未來 …… 232
15.1 概述 …… 232
15.2 組織問題 …… 233
15.2.1 DevOps活動中可能涉及的其他組 …… 233
15.2.2 所有關系和重組 …… 234
15.2.3 授權與控制 …… 234
15.3 過程問題 …… 235
15.3.1 廠商鎖定和標準 …… 235
15.3.2 計費模型 …… 235
15.3.3 變更的速度 …… 236
15.4 技術問題 …… 237
15.4.1 持續部署流水線概念 …… 237
15.4.2 在持續部署流水線中獲得質量 …… 239
15.4.3 實現 …… 239
15.5 錯誤報告和修復 …… 240
15.6 結束語 …… 240
15.7 更多閱讀材料 …… 240
參考文獻 …… 241
查看全部↓
前言/序言