總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
OpenStack CI/CD原理與實踐
 叢書名稱: 中興通訊技術叢書
 作  者: 董文娟/尚小冬/張軍
 出版單位: 機械工業
 出版日期: 2019.01
 進貨日期: 2018/12/17
 ISBN: 9787111611912
 開  本: 16 開    
 定  價: 518
 售  價: 414
  會 員 價 : 380
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

(1)中興通訊官方出品
(2)作者來自中興通訊OPNFV團隊,團隊對OPNFV社區的貢獻全球排名前3,技術實力雄厚,經驗豐富
(3)從系統管理員視角講解了OpenStack CI/CD的系統組成、原理和架構,大量內容國內現有書籍和資料涉及


內容簡介:

中興通訊OPNFV開源團隊不僅技術實力雄厚,而且一直致力於為OPNFV團隊做貢獻,團隊的貢獻值在社區堭あW全球前3。本書由中興OPNFV開源團隊撰寫,從系統管理員角度闡述了OpenStack CI/CD系統的組成、架構和原理,涉及從代碼提交到測試、部署的各個環節,本書提到的 Gerrit 伺服器管理、JJB、Zuul、Nodepool等內容國內都鮮有介紹,本書能讓您快速瞭解這套系統。
全書共11章,在邏輯上分為4個部分:
第一部分(第1~2章) 基礎篇
首先從宏觀上對DevOps的發展、文化、工具和轉型做了介紹,然後重點介紹了OpenStack CI/CD的概念、功能、工作流程和架構等,這是閱讀本書的基礎;
第二部分(第3~9章)技術篇
從系統管理員的視角,對OpenStack CI/CD中的每一項關鍵技術都進行了講解,包括版本控制系統(Git)、代碼評審系統(Gerrit)、持續集成系統(Jenkins)、門控系統(Zuul)、資源管理系統(NodePool)、日誌伺服器、日誌分析系統、公共組件等。
第三部分(第10章) 經驗篇
主要總結了團隊在OpenStack CI/CD上積累的經驗、方法和案例,以及如何進行裁剪、擴展和定制化修改。
第四部分(第11章) 優化篇
總結了當前解決方案中存在的不足和可行的優化方案,以及社區當前經歷的變化和未來的演進路線。


作者簡介:

董文娟
中興通訊高級軟體工程師,2015年參與開源社區,從事故障管理和根因分析等相關的工作,是OpenStack社區Vitrage專案和OPNFV社區Doctor專案的核心貢獻者。一直從事企業內部CI/CD方面的研究,對CI/CD的基礎設施搭建有豐富的實踐經驗,致力於研究構建企業級高性能、高可靠的DevOps平臺的解決方案。
尚小冬
中興通訊系統工程師,近10年通信系統產品平臺研發經驗,發表多篇專利。2015參與OpenStack、OPNFV和ONAP等開源社區,目前為OPNFV社區Parser專案PTL。對OpenStack各個核心組件和OpenStack CI/CD均有較深入的理解和深度實踐,目前聚焦於Cloud Native相關產品的設計和實現。
張軍
中興通訊首席架構師,超過15年的通訊系統的設計和研發經驗,發表專利約15篇。2014年起,帶領團隊進行NFV轉型,負責從基於OpenStack的IaaS平臺到基於Kubernetes的PaaS平臺的架構設計。帶領團隊積極參與外部OpenStack、OPNFV和CNCF等外部社區貢獻,在公司內承擔開源佈道的工作,推動公司研發轉型。目前是中興通訊在OPNFV的TSC代表和Pharos專案PTL。


圖書目錄:

推薦序一
推薦序二
前言
第1章 DevOps 1
1.1 DevOps簡介 1
1.1.1 軟體開發模型 2
1.1.2 DevOps發展歷史 2
1.1.3 DevOps迴圈 3
1.1.4 DevOps價值 4
1.2 DevOps與團隊文化 4
1.3 DevOps工具鏈 6
1.4 DevOps轉型 7
1.5 本章小結 8
第2章 CI/CD 9
2.1 CI/CD介紹 9
2.1.1 持續集成 9
2.1.2 持續交付 11
2.1.3 持續部署 12
2.1.4 CI/CD工作流 12
2.2 OpenStack CI/CD 14
2.2.1 當前CI/CD系統的形態 14
2.2.2 OpenStack CI/CD架構 15
2.2.3 CI/CD系統工作流程 18
2.3 本章小結 19
第3章 版本控制(Git)與代碼評審 (Gerrit) 20
3.1 版本控制系統(Git) 20
3.1.1 Git倉庫(repository) 21
3.1.2 Git分支(branch) 21
3.1.3 Git提交(commit) 21
3.1.4 Git標籤(tag) 22
3.1.5 Git引用(refs) 22
3.2 代碼評審工具(Gerrit) 23
3.2.1 架構 24
3.2.2 安裝 25
3.2.3 專案配置 27
3.2.4 CI/CD系統對接 32
3.3 本章小結 33
第4章 持續集成系統(Jenkins) 34
4.1 Jenkins介紹 34
4.1.1 Jenkins是什麼 34
4.1.2 Jenkins工作原理 35
4.1.3 部署Jenkins 37
4.1.4 插件管理 39
4.1.5 安全管理 44
4.1.6 創建Slave 46
4.1.7 創建Job 49
4.2 Jenkins Job Builder 57
4.2.1 安裝JJB 57
4.2.2 配置JJB 57
4.2.3 使用JJB 58
4.2.4 JJB語法詳解 58
4.3 Python Jenkins 70
4.3.1 安裝python-jenkins 70
4.3.2 使用python-jenkins 70
4.4 本章小結 71
第5章 門控系統(Zuul) 72
5.1 Zuul組件介紹 73
5.1.1 Zuul工作原理 75
5.1.2 Zuul Server 76
5.1.3 Zuul Merger 79
5.1.4 Zuul Cloner 80
5.1.5 Zuul客戶端 83
5.2 pipeline 83
5.2.1 並行測試 83
5.2.2 跨專案測試 85
5.2.3 跨專案依賴 87
5.3 連接器 88
5.3.1 Gerrit 89
5.3.2 SMTP 89
5.4 觸發器 90
5.4.1 Gerrit 90
5.4.2 Timer 91
5.4.3 Zuul內部事件 92
5.5 報告器 92
5.5.1 Gerrit 92
5.5.2 SMTP 92
5.6 配置指導 93
5.6.1 pipeline 95
5.6.2 Jobs 101
5.6.3 Projects 103
5.6.4 Project Templates 104
5.7 本章小結 106
第6章 資源管理系統(Nodepool) 107
6.1 Nodepool簡介 107
6.1.1 Nodepool引入的背景 107
6.1.2 Nodepool的功能 108
6.2 安裝Nodepool 110
6.2.1 準備外部依賴服務 110
6.2.2 安裝Nodepool 113
6.3 Nodepool的設計原理 113
6.3.1 資源管理(Nodepoold) 115
6.3.2 鏡像管理(Nodepool-builder) 117
6.3.3 客戶端(Nodepool Client) 119
6.4 配置Nodepool 129
6.4.1 雲相關配置 129
6.4.2 Jenkins相關配置 137
6.4.3 鏡像配置(diskimages) 140
6.4.4 其他配置 142
6.5 鏡像管理系統 144
6.5.1 DIB介紹 145
6.5.2 DIB原理 146
6.5.3 定制鏡像 155
6.6 本章小結 156
第7章 日誌伺服器 157
7.1 日誌伺服器的作用 157
7.2 安裝和驗證 158
7.3 使用方法 159
7.3.1 在Jenkins中使用日誌伺服器 159
7.3.2 如何獲取日誌檔 160
7.3.3 日誌檔定期歸檔和清理 161
7.4 本章小結 161
第8章 日誌分析系統 162
8.1 ELK Stack概況 162
8.2 日誌分析系統架構 163
8.3 Log Pusher 165
8.3.1 處理流程 165
8.3.2 配置 165
8.4 Logstash Indexer 166
8.4.1 hello world 166
8.4.2 Logstash管道 167
8.4.3 管道配置 167
8.4.4 管道配置實例 169
8.5 Elasticsearch 171
8.5.1 面向文檔的資料庫 171
8.5.2 索引、檢索和搜索 172
8.5.3 節點和集群 178
8.5.4 索引分片和索引副本 180
8.5.5 分佈式特性 180
8.5.6 配置Elasticsearch 181
8.6 Kibana 183
8.6.1 讓Kibana連接到
 Elasticsearch 183
8.6.2 Index Pattern 184
8.7 部署 186
8.8 本章小結 186
第9章 公共組件詳解 187
9.1 任務分發系統(Gearman) 187
9.1.1 Gearman介紹 187
9.1.2 Gearman架構和工作原理 188
9.1.3 安裝 189
9.1.4 利用Gearman實現Jenkins
 的HA 192
9.2 消息佇列(ZeroMQ) 194
9.2.1 ZeroMQ介紹 194
9.2.2 ZeroMQ的特點 194
9.2.3 ZeroMQ的工作模式 195
9.2.4 安裝 196
9.2.5 應用示例 196
9.2.6 ZeroMQ在OpenStack CI/CD
 系統中的作用 199
9.3 分佈式協調服務(ZooKeeper) 199
9.3.1 ZooKeeper介紹 199
9.3.2 ZooKeeper架構和工作原理 200
9.3.3 ZooKeeper的安裝和配置 203
9.3.4 ZooKeeper典型應用 205
9.3.5 Nodepool中使用ZooKeeper示例 208
9.4 本章小結 209
第10章 社區CI/CD實踐 210
10.1 Puppet簡介 210
10.1.1 概述 210
10.1.2 基礎架構 214
10.2 單機部署 216
10.2.1 前期準備 216
10.2.2 安裝部署 217
10.3 多節點部署 231
10.3.1 IaC 23
顯示部分資訊


章節試讀:

本書由來
過去十年,中國電信業快速發展,語音和數據業務需求極大提升,尤其當以安卓、iPhone為代表的智能手機推出後,數據業務的增長速度遠超預期。近三年,移動數據業務每年以大約90%的複合增長率增長,這對設備商交付新版本的速度提出了更高的要求。中興通訊在2013年就啟動了無線接入網專案移植虛擬化技術預研,希望實現軟硬體解耦以縮短版本交付週期,滿足運營商業務飛速發展的需求。目前,這些虛擬化研究成果已經成為5G的基礎技術標準。
虛擬化預研專案不僅涉及電信網元本身的適配,還涉及開發雲操作系統和制定操作管理規範、介面標準。而雲操作系統是虛擬化的關鍵技術之一,綜合考慮雲操作系統開源社區影響力、專案熱度、擴展性、可維護性、業界認可度等因素,專案團隊選擇OpenStack作為雲操作系統的開源解決方案。但電信領域常見的需求,如網口綁定、高速轉發、巨頁(Huge Page)、CPU綁核等功能在OpenStack社區尚不支持,如何把虛擬化的電信網元(Virtual Network Function)運行在OpenStack上,並提供高性能服務,是專案面臨的巨大挑戰。在此背景下,筆者所在的團隊開始深入參與到OpenStack開源社區的開發工作中,推動社區一起解決這些關鍵技術問題。
計算、存儲和網路是OpenStack虛擬層三大基礎設施服務,其中存儲(Cinder)專案涉及廠商的硬體集成。Cinder專案制定了一套API介面規範,廠商的存儲設備若需要集成,需向社區提交遵守該介面規範的驅動程式,並搭建一套CI系統來驗證,該CI系統需要遵守社區第三方CI規範。
圖0-1是一個簡化的第三方CI系統架構圖,廠商需要準備的有:
第三方CI系統,即本書所要講述的OpenStack CI系統;該系統連接廠商的存儲硬體,並與社區的Gerrit系統連接,監控stream-events事件流;當社區Gerrit有新的變更和補丁提交時,將變更代碼與廠商提供的硬體環境進行集成測試並向社區Gerrit回饋測試結果;
本地OpenStack資源池,為第三方CI系統運行提供虛擬機資源;
存儲設備,用於對變更代碼進行驗證。

圖0-1 第三方CI架構圖
通過這種機制,Cinder專案可以及時發現變更代碼的相容性問題,廠商也能及時發現變更代碼對設備驅動的影響。所有第三方CI系統的執行結果都會顯示在社區Gerrit系統每個代碼變更的評審記錄中。
OpenStack CI系統提供了一套動態調度測試任務的方法,極大提升了開發效率,具體優點如下:
提高CI系統的併發性,開發人員的多個變更測試任務不需要在環境排隊等待執行,只要本地OpenStack資源池資源足夠多,就可以並行執行所有測試任務,這可以顯著減少開發人員的等待時間;
提高測試任務的可管理性,使用YAML檔描述測試任務,易閱讀、評審,可進行版本管理,容易在不同團隊之間複製和重用;
可定制虛擬機基礎鏡像,如支持不同的操作系統、不同的軟體棧配置,增加了在專案實際使用中的適用性和靈活性;
提高測試任務的準確性,每次測試任務都在相同的環境和配置下執行,不存在靜態環境中測試任務執行後對軟體、配置檔等清理不完整而導致測試任務執行不一致的問題;
可複用雲環境,統一運維資源,減少維護開銷並提高資源利用率。
這套CI系統不僅適用於OpenStack社區組件研發,也適用於電信網元的開發。基於此,筆者所在的團隊潛心研究OpenStack CI這套系統,結合自身需求,增強了CD的方案和實踐,最終形成一套完整的CI/CD解決方案。這套解決方案在團隊得到廣泛應用,無論是內部的維護工作,還是對外的技術合作,都由該CI/CD系統提供技術支撐。公司數位化轉型戰略和敏捷實踐觸發了內部專案對CI/CD技術的重視,越來越多的團隊渴望獲得和提升這方面的技能。所以,筆者所在的團隊作為開源技術的先鋒,在給內部進行培訓和技術轉移的過程中,誕生了把對該系統的經驗、實踐匯總整理並出版成書的想法。
瞭解OpenStack的人很多,但對OpenStack CI系統有實際應用經驗的人很少,主要是因為OpenStack CI系統目前只用於OpenStack社區基礎設施的管理。國內DevOps思想和技術在最近兩年才得到大規模接受和實踐,大家對了解CI/CD相關技術的需求非常高。筆者很榮幸把這套適用性廣、定制性強和併發性高的CI系統介紹給大家,同時回饋社區,推廣和普及這些基礎設施技術。目前,國內外幾乎沒有該套系統的完整描述,因其組件眾多,且搭建該系統需要投入大量的人力物力(筆者團隊搭建該系統花費了近兩個月的時間,這還是在使用社區已有安裝腳本進行最簡安裝的情況下)。從目前已經接入的第三方CI環境來看,國內搭建OpenStack CI系統的公司鳳毛麟角,說明在OpenStack技術如此普及的情況下,國內公司對這套OpenStack CI系統仍然知之甚少。希望本書能讓讀者少走彎路,事半功倍。
本書結構
本書從邏輯上可分為四部分:
第一部分(第1章和第2章)對DevOps的發展、文化和轉型進行了簡單說明,並引入本書的重點內容OpenStack CI/CD說明其對DevOps轉型的重要性。
第二部分(第3∼9章)以系統管理員視角對OpenStack CI/CD中的每一項關鍵技術進行詳細的分析和闡述,這些關鍵技術包括:
版本控制(Git)與代碼評審(Gerrit)系統,開源社區最常用的代碼管理和代碼
顯示部分資訊

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。