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