《雲原生落地:企業級DevOps實踐》是2022年機械工業出版社出版的圖書。
基本介紹
- 中文名:雲原生落地:企業級DevOps實踐
- 出版時間:2022年8月
- 出版社:機械工業出版社
- ISBN:9787111710455
內容簡介,圖書目錄,
內容簡介
這是一本指導企業如何向雲原生架構轉型的實戰性著作。
經過2年多的改造,自如的技術架構成功實現向雲原生架構轉型,大幅度提高了服務穩定性和開發效率,同時降低了運維成本,因此自如的雲原生實踐也成為行業公認的標桿。
自如的核心技術團隊在本書中對他們的雲原生實踐的完整過程進行了深度復盤,詳細闡述了雲原生架構下Kubernetes的組件選型、企業級PaaS平台開發、CI/CD的Z佳實踐、服務格線的平滑落地,並結合實際的案例把雲原生實踐過程中的思考、得失融入其中,助力企業更優雅地實現雲原生架構的落地。
通過閱讀本書,你將獲得以下知識:
透徹理解雲原生的發展歷程與意義;
了解雲原生實踐應重點關注哪些方向;
Kubernetes管理後台、關鍵組件選型以及定製化開發;
如何研發自定義的企業級Paas平台;
如何設計持續集成的環境與分支選型;
如何打造一個一流的CI/CD平台;
如何選擇流水線工具;
如何設計企業級的持續部署平台;
如何為工程師打造NPS高的配套工具;
如何去通過服務格線解決通用的熔斷、限流問題;
如何運營和推廣雲原生平台,讓它100%落地。
圖書目錄
讚譽
序
前言
部分 雲原生基礎
第1章 雲原生概述 3
1.1 雲原生的概念 3
1.1.1 初識雲原生 3
1.1.2 官方的定義 6
1.2 雲原生的特性 8
1.3 微服務 14
1.3.1 微服務與單體架構的區別 14
1.3.2 什麼是微服務 14
1.3.3 微服務架構的優點 15
1.4 容器化 16
1.4.1 虛擬化與容器化的區別 16
1.4.2 容器化的核心原理 18
1.4.3 Docker的優點 20
1.5 編排 21
1.5.1 為什麼要有編排 21
1.5.2 什麼是編排 22
1.5.3 編排的優點 22
1.6 CI/CD 23
1.6.1 CI/CD誕生的背景 23
1.6.2 什麼是CI/CD 23
1.6.3 CI/CD的優點 25
1.7 服務格線 26
1.7.1 服務格線誕生的背景 26
1.7.2 什麼是服務格線 27
1.7.3 服務格線的優點 28
1.8 不可變基礎設施和聲明式API 28
1.8.1 什麼是不可變基礎設施 28
1.8.2可變與不可變基礎設施之間的差異 30
1.8.3 不可變基礎設施的優點 30
1.9 本章小結 31
第2章 自如架構演進 32
2.1 技術架構的演進 32
2.1.1 架構的定義與分類 33
2.1.2 單體架構 34
2.1.3 分散式架構 35
2.1.4 微服務架構 36
2.1.5 中台架構 37
2.2 自如的技術發展史 39
2.2.1 業務背景介紹 39
2.2.2 自如的技術演進過程 40
2.2.3 當前技術架構 40
2.3 自如技術架構遇到的問題 41
2.3.1 穩定性問題 42
2.3.2 研發效率問題 43
2.3.3 流程體系問題 43
2.4 本章小結 45
第3章 開啟雲原生之路 46
3.1 制定雲原生戰略 46
3.1.1 行業趨勢分析 46
3.1.2 戰略方向分析 47
3.2 建設DevOps體系 50
3.2.1 DevOps體系的發展方向 50
3.2.2 開發能力差距分析 51
3.2.3建設DevOps體系的路線圖 54
3.3 從KVM遷移到Docker 55
3.3.1 現狀分析 55
3.3.2 按環境遷移 57
3.3.3 按業務線遷移 58
3.4 本章小結 58
第4章Docker的基礎知識與核心原理 59
4.1 容器與Docker 59
4.1.1 虛擬化技術 60
4.1.2 容器技術 60
4.1.3 Docker架構 61
4.1.4 Docker安裝與命令 62
4.1.5 Docker常用命令 63
4.2 鏡像管理 64
4.2.1 什麼是鏡像 64
4.2.2 鏡像倉庫服務 64
4.2.3 鏡像的創建與操作 65
4.2.4 Dockerf?ile 65
4.3 Docker網路管理 67
4.4 容器核心原理 68
4.4.1 Namespace資源隔離 68
4.4.2 Cgroups資源限制 69
4.4.3 聯合檔案系統 69
4.4.4 runC 70
4.5 本章小結 72
第二部分 雲原生落地
第5章 Kubernetes基礎知識 75
5.1 初識Kubernetes 75
5.1.1 Kubernetes架構 76
5.1.2 Kubernetes核心概念 76
5.1.3 Kubernetes設計理念 78
5.2 Kubernetes資源對象 79
5.2.1 Pod 79
5.2.2 集群資源管理 80
5.2.3 控制器 80
5.2.4 Service 81
5.3 Kubernetes網路體系 82
5.3.1 Kubernetes網路模型 83
5.3.2Kubernetes網路的主要實現方案 83
5.3.3 Kubernetes網路中Pod的通信 84
5.4 存儲體系 84
5.4.1 ETCD 84
5.4.2 Conf?igMap 86
5.4.3 Volume 86
5.4.4 Persistent Volume 86
5.4.5 Storage Class 87
5.5 命令工具 87
5.5.1 集群管理 88
5.5.2 集群維護 88
5.6生產級高可用Kubernetes集群方案 89
5.6.1 Kubernetes部署方案 89
5.6.2 Kubernetes部署架構 90
5.6.3 Kubernetes多集群部署架構 92
5.7 本章小結 93
第6章 運維管理後台方案選型 94
6.1 Wayne 95
6.2 Rancher 96
6.3 常用公有雲 97
6.3.1 阿里雲 97
6.3.2 騰訊雲 98
6.3.3 華為雲 98
6.4 運維管理方案對比 99
6.5 本章小結 100
第7章 雲原生基礎組件選型 101
7.1 持久化存儲方案 102
7.1.1 存儲的選型 102
7.1.2Ceph在Kubernetes中的使用 104
7.2 鏡像管理 107
7.2.1 高可用鏡像方案 108
7.2.2 鏡像清理策略 111
7.3 Ingress實戰 112
7.3.1 什麼是Ingress-nginx 113
7.3.2多集群多機房高可用負載均衡架構設計 115
7.4 日誌採集和展示 117
7.4.1雲原生下日誌採集的3種方式 117
7.4.2 日誌採集設計思路 118
7.4.3 日誌效果展示 120
7.4.4 注意事項和思考 122
7.5 監控告警 123
7.5.1 Prometheus Operator 123
7.5.2 告警系統的存儲選型 125
7.6 網路方案 126
7.6.1 Flannel網路 127
7.6.2 Calico網路 129
7.6.3 直接路由 129
7.6.4 網路方案對比 130
7.6.5 直接路由方案落地實踐 131
7.7 本章小結 133
第8章 Kubernetes開發實戰 134
8.1 初識client-go 134
8.1.1 client-go客戶端對象 135
8.1.2 KubeConf?ig集群配置 136
8.2 client-go核心組件Informer 137
8.2.1 Informer介紹 138
8.2.2 Informer的架構設計 138
8.2.3 面向用戶的Informer資源 140
8.2.4 Ref?lector 142
8.2.5 DeltaFIFO 148
8.2.6 Indexer 152
8.2.7 WorkQueue 154
8.2.8 EventBroadcaster 156
8.2.9 大管家Controller 157
8.3 client-go實戰開發