基礎設施即代碼:模型驅動的DevOps [美]史蒂文·卡特
定 價:59 元
- 作者:[美]史蒂文·卡特[美]杰森·金[美]喬什·路錫安[美]邁克·尤恩克斯
- 出版時間:2024/3/1
- ISBN:9787111750512
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.52
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書詳細闡述了基礎設施即代碼的概念、原理、設計方法以及實踐,幫助讀者深入理解基礎設施即代碼的本質和價值。書中通過大量的案例和實踐經(jīng)驗,展示了如何運用基礎設施即代碼來提高企業(yè)生產(chǎn)力,改變數(shù)據(jù)走向,優(yōu)化流量模式。
無論您是網(wǎng)絡工程師或者網(wǎng)絡安全工程師、架構師還是領導者,本書都將幫助您以更高的效率、安全性、響應能力和彈性來滿足所有網(wǎng)絡運營的需求
Preface前 言
互聯(lián)網(wǎng)建立在網(wǎng)絡基礎設施之上。許多技術、經(jīng)濟和社會活動都依賴于互聯(lián)網(wǎng)。然而,令人遺憾的是,在過去的30年里,組織部署和維護這些關鍵網(wǎng)絡的方式幾乎沒有發(fā)生有意義的變化。網(wǎng)絡基礎設施的運營通常是一項人力密集且需要手動操作的過程,容易出錯且響應緩慢。DevOps模型通過可靠的自動化工具和流程,可以提高基礎設施運營的靈活性、規(guī)模、安全性和合規(guī)性。盡管DevOps在云基礎設施的應用程序開發(fā)和管理方面發(fā)揮著重要作用,但在將DevOps應用于網(wǎng)絡基礎設施方面,目前尚缺乏一種全面且結構化的方法。
與應用于程序的DevOps不同,應用于網(wǎng)絡基礎設施的DevOps面臨著需要管理元素的數(shù)量和每個元素的數(shù)據(jù)量的巨大挑戰(zhàn)。從本質上講,這使得網(wǎng)絡基礎設施的DevOps成為一個數(shù)據(jù)管理問題。網(wǎng)絡供應商使用數(shù)據(jù)模型來組織每個獨立網(wǎng)元中的數(shù)據(jù)并規(guī)范其API,但不同供應商的數(shù)據(jù)模型甚至同一供應商的不同設備的數(shù)據(jù)模型都存在差異。模型驅動的DevOps試圖對組織整個基礎設施中數(shù)據(jù)模型和代碼加以規(guī)范化。從某種意義上說,模型驅動的DevOps旨在提供一種將DevOps應用于網(wǎng)絡基礎設施的具有復用性和確定性的方式,同時具備與應用于云基礎設施的DevOpes相同的優(yōu)勢。
愿景
這本書包含了我們多年來在IT領域的經(jīng)驗和在咨詢、管理領域的所學,以及我們將其應用于解決當今客戶需求時所面臨的挑戰(zhàn)。利用這樣的經(jīng)驗,我們尋求提供一種將DevOps應用于基礎設施運營的全面方法。這本書奠定了廣泛的基礎,幫助開發(fā)人員和運營商應用為基礎設施DevOps制定的詳細、規(guī)范的方法。此外,它還解決了導致許多組織失敗的人為因素和組織因素。
本書的內容簡明易懂且實用。我們認為,成為網(wǎng)絡運營人員或網(wǎng)絡工程師所需的技能已經(jīng)發(fā)生了根本性的變化。API(應用程序接口)已經(jīng)取代了CLI(命令行接口)。本書旨在幫助網(wǎng)絡運營商和工程師重新調整他們的技能,按照操作云基礎設施的方式來操作他們的基礎設施。為了加強這種方法,我們添加了一個虛構的故事情節(jié),以說明組織在實施這種變革時所面臨的挑戰(zhàn)。
我們將重點放在結果上,并提供大量的代碼來幫助實現(xiàn)這些結果。我們專注于行業(yè)中標準的工具和方法。在可能的情況下,我們使用開源或免費工具。當必須選擇供應商解決方案時,我們會選擇適合實現(xiàn)的方式。也就是說,不同的組件或者不同的供應商,并不會對我們提出的原則、框架甚至代碼產(chǎn)生顯著的影響。
讀者對象
我們深入研究了模型驅動的DevOps,并通過開源配套代碼庫中的用例和具體示例對其進行了定義。本書面向IT基礎設施團隊,還適用于希望在各個階段將安全性納入其基礎設施的網(wǎng)絡安全團隊。另外,本書也適合希望了解現(xiàn)代基礎設施的最佳實踐的個人以及業(yè)務和技術領導者,因為這些實踐與通過團隊實現(xiàn)高質量成果息息相關。
組織方式
本書各章內容的組織邏輯如下:首先,我們研究為什么網(wǎng)絡基礎設施的運營需要改變,然后探索需要改變的內容,最后展示如何改變它。模型驅動的DevOps的參考實現(xiàn)(reference implementation)為讀者全面應用所學的技術和概念提供了指導。有了這一堅實的技術基礎,我們將在最后一章討論在進行大規(guī)模的操作更改時需要考慮的重要人為因素。
本書還提供一些練習,這些練習可讓讀者獲得實踐經(jīng)驗,以更好地理解技術細節(jié),并檢測所學到的知識。
為了提供一些背景信息并幫助說明本書中的諸多概念,每章都從一位名叫鮑勃的網(wǎng)絡工程師的虛構故事開始。鮑勃在ACME公司工作,這是一家具有典型組織結構的常規(guī)公司。最重要的是,它以大量人力手動操作鍵盤的方式來運營網(wǎng)絡基礎設施。在CIO(首席信息官)的指導
下,鮑勃開始了DevOps之旅。正是通過了解他的挑戰(zhàn)、失敗和成功,我們看到了網(wǎng)絡基礎設施在傳統(tǒng)運營模式下的問題,以及如何通過自動化實現(xiàn)DevOps,進而實現(xiàn)真正的業(yè)務轉型。
章節(jié)結構
本書的每一章都構建在前一章的基礎之上。模型驅動的DevOps的實現(xiàn)過程是一個旅程,這樣的章節(jié)安排旨在引導讀者逐步完成整個旅程。
第1章說明了為什么網(wǎng)絡基礎設施的傳統(tǒng)運營模式需要改變,簡要概述了DevOps如何解決傳統(tǒng)模式的諸多問題,并探討了DevOps未被廣泛用于本地IT基礎設施的原因。
第2章定義了業(yè)務轉型的目標,討論了模型驅動的DevOps的高級框架,并介紹了可信數(shù)據(jù)源和數(shù)據(jù)模型等概念。
網(wǎng)絡基礎設施要成為業(yè)務轉型的推動者,就需要擺脫開箱即用的CLI管理模式。第3章說明了API是新的CLI,并探討了可以利用并擴展API的方法。
盡管能夠利用API以編程方式使用網(wǎng)絡基礎設施,但讀者不必成為一個程序員。第4章探討了如何使用數(shù)據(jù)模型、可信數(shù)據(jù)源、配置管理工具和模板工具等將網(wǎng)絡基礎設施“變成”代碼。這些工具讓“基礎設施即代碼”成為可能,從而像在“云服務”中一樣操作網(wǎng)絡基礎設施。
基礎設施即代碼非常強大,但與許多強大的東西一樣,如果不加區(qū)分地應用,會帶來很大的風險。第5章探討了版本控制系統(tǒng)、數(shù)據(jù)驗證工具、仿真平臺和CI/CD的概念。這些工具共同實現(xiàn)了基礎設施即代碼的大規(guī)模安全使用以及自動化的合法
Steven Carter史蒂文·卡特在大學、政府研發(fā)實驗室和私營企業(yè)擁有超過25年的行業(yè)經(jīng)驗。他曾在多個行業(yè)會議上發(fā)表演講,并在技術期刊上撰寫博客和文章。他曾擔任系統(tǒng)管理員,運行世界上一些最大他方面擁有廣泛的經(jīng)驗,包括運營、嵌入式軟件開發(fā)和銷售。在過去的5年中,他一直為紅帽Ansible和思科系統(tǒng)咨詢公司工作,并為世界上許多最大的組織進行編碼,這些組織通過合并DevOps來實現(xiàn)其運營的現(xiàn)代化和安全。他目前擔任Cisco Systems的首席DevOps工程師,創(chuàng)建CI/CD管道,用于在安全和保密環(huán)境中部署云應用程序和網(wǎng)絡基礎設施。他擁有計算機工程學士學位、計算機科學碩士學位、工商管理碩士學位和路由與交換CCIE學位。
Jason King杰森·金是Cisco的解決方案架構師,支持公共部門社區(qū)。在思科的11年中,他專注于云、自動化、可編程性和高性能計算。在加入思科之前,他在勞倫斯·利弗莫爾國家實驗室花了10年時間構建和調試了一些世界上最大的HPC集群。他擁有計算機科學碩士學位和路由和交換CCIE學位。
Contents目 錄
譯者序
前言
致謝
第1章 頓開茅塞 1
1.1 企業(yè)IT成為業(yè)務風險源 1
1.2 災難現(xiàn)場的觀察結果 3
1.2.1 缺少良好的架構 4
1.2.2 人為錯誤 4
1.2.3 人比機器慢 4
1.2.4 自動化測試缺失 4
1.2.5 惡性循環(huán) 4
1.2.6 缺乏敏捷性 5
1.3 DevOps 5
1.3.1 什么是DevOps 5
1.3.2 應用程序與基礎設施 6
1.3.3 利用大規(guī)模自動化 7
1.4 為什么企業(yè)IT部門不采用
DevOps 7
1.4.1 人為因素 7
1.4.2 業(yè)務因素 8
第2章 良方妙法 9
2.1 目標:業(yè)務轉型 12
2.1.1 IT設施的瓶頸 12
2.1.2 業(yè)務轉型 13
2.1.3 DevOps行動手冊 13
2.2 為什么選擇模型驅動的
DevOps 14
2.2.1 網(wǎng)絡基礎設施的不同之處 14
2.2.2 什么是模型驅動的DevOps 15
2.2.3 什么是數(shù)據(jù)模型 15
2.2.4 可信數(shù)據(jù)源 18
2.2.5 作為框架的DevOps 18
2.3 DevSecOps的內置安全性 19
第3章 可調用的基礎設施 21
3.1 API 23
3.2 平臺化 27
3.2.1 物理硬件配置 27
3.2.2 統(tǒng)一控制點 28
3.2.3 北向API與南向API 28
3.2.4 API 和功能規(guī)范化 28
3.2.5 編織化服務 29
3.2.6 可伸縮性 29
第4章 基礎設施即代碼 31
4.1 為什么采用基礎設施即代碼 33
4.2 可信數(shù)據(jù)源 34
4.3 數(shù)據(jù)模型 34
4.3.1 數(shù)據(jù)模型編碼格式 36
4.3.2 數(shù)據(jù)模型描述語言 38
4.3.3 通用IaC工具 39
4.3.4 組織結構 40
4.3.5 可信數(shù)據(jù)源的類型 43
4.4 源代碼 51
第5章 持續(xù)集成/持續(xù)部署 58
5.1 CI/CD概述 61
5.1.1 應用程序與基礎設施的
區(qū)別 62
5.1.2 CI/CD實踐 63
5.2 源代碼管理 64
5.2.1 核心功能 64
5.2.2 協(xié)作功能 65
5.2.3 SCM總結 67
5.3 持續(xù)集成工具 67
5.3.1 CI引擎 68
5.3.2 持續(xù)集成工具的工作方式 69
5.3.3 工作流程示例 69
5.4 基礎設施仿真工具 71
5.5 測試和驗證 77
5.5.1 語法檢查 78
5.5.2 元數(shù)據(jù)格式/模型驗證 79
5.5.3 功能測試 81
5.5.4 測試和驗證總結 86
5.6 持續(xù)部署 86
5.7 持續(xù)監(jiān)控 87
第6章 落地實施 89
6.1 模型驅動的DevOps框架的參考
實現(xiàn) 91
6.2 目標 92
6.3 DevOps路線圖 92
6.3.1 架構 93
6.3.2 仿真 95
6.3.3 自動化 96
6.3.4 測試 109
6.3.5 部署 118
第7章 事在人為 121
7.1 文化和變革的需求 122
7.2 從“為什么”開始 123
7.3 組織 123
7.3.1 領導力 123
7.3.2 楷模 123
7.3.3 組建一個團隊 124
7.3.4 打破藩籬 124
7.3.5 社區(qū) 125
7.3.6 新的工具 125
7.3.7 組織級變革的小結 128
7.4 個人 128
7.4.1 編程與自動化的對比 129
7.4.2 版本控制工具 130
7.4.3 數(shù)據(jù)格式 130
7.4.4 API 130
7.4.5 模板化 131
7.4.6 Linux/UNIX 132
7.4.7 擁抱變革 133