注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)家庭與辦公軟件持續(xù)演進(jìn)的Cloud Native:云原生架構(gòu)下微服務(wù)最佳實(shí)踐

持續(xù)演進(jìn)的Cloud Native:云原生架構(gòu)下微服務(wù)最佳實(shí)踐

持續(xù)演進(jìn)的Cloud Native:云原生架構(gòu)下微服務(wù)最佳實(shí)踐

定 價(jià):¥79.00

作 者: 王啟軍 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121351204 出版時(shí)間: 2018-11-01 包裝: 平裝
開(kāi)本: 16 頁(yè)數(shù): 316 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《持續(xù)演進(jìn)的Cloud Native》從架構(gòu)、研發(fā)流程、團(tuán)隊(duì)文化三個(gè)角度詳細(xì)介紹了如何構(gòu)建Cloud Native。作者長(zhǎng)期活躍在研發(fā)一線,具有豐富的架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),也曾親身經(jīng)歷過(guò)很多失敗的架構(gòu)設(shè)計(jì),如很多團(tuán)隊(duì)在實(shí)施微服務(wù)架構(gòu)的時(shí)候,只強(qiáng)調(diào)拆分服務(wù),根本沒(méi)有理解微服務(wù)架構(gòu)應(yīng)該怎么做?!冻掷m(xù)演進(jìn)的Cloud Native》就是想告訴讀者,除了拆分服務(wù),還要把哪些事做好,例如基礎(chǔ)設(shè)施、一致性、性能、研發(fā)流程、團(tuán)隊(duì)文化等。 《持續(xù)演進(jìn)的Cloud Native》共分為10 章,第1 章從整體上描述了Cloud Native 的起源、組成及原則等;從第2 章到第7 章重點(diǎn)描述了微服務(wù)架構(gòu)、敏捷基礎(chǔ)設(shè)施及公共基礎(chǔ)服務(wù)、可用性、可擴(kuò)展性、性能、一致性等方面的設(shè)計(jì)實(shí)踐;第8 章介紹了Serverless 和Service Mesh;第9 章介紹了如何構(gòu)建研發(fā)流程;第10 章介紹了如何建設(shè)團(tuán)隊(duì)文化。 《持續(xù)演進(jìn)的Cloud Native》希望給技術(shù)管理者、架構(gòu)師和有一定基礎(chǔ)的技術(shù)人員提供幫助,特別是希望改變研發(fā)模式,從交付型軟件過(guò)渡到云服務(wù)的傳統(tǒng)軟件企業(yè)開(kāi)發(fā)者,此書將幫助你少走彎路。

作者簡(jiǎn)介

  王啟軍,目前就職于華為公司架構(gòu)部,負(fù)責(zé)華為公司的Cloud Native、微服務(wù)架構(gòu)推進(jìn)落地,前后參與了華為手機(jī)祥云4.0、物聯(lián)網(wǎng)IoT 2.0的架構(gòu)設(shè)計(jì)。曾任知名電商平臺(tái)架構(gòu)師,主導(dǎo)電商平臺(tái)架構(gòu)設(shè)計(jì),包括訂單、支付、價(jià)格、庫(kù)存、物流等。曾就職于搜狐,負(fù)責(zé)手機(jī)微博的研發(fā)。十余年的技術(shù)歷練,也曾作為技術(shù)負(fù)責(zé)人帶領(lǐng)過(guò)近百人的團(tuán)隊(duì)。公眾號(hào)“奔跑中的蝸牛”的作者。

圖書目錄

第1章 綜述 1
1.1 Cloud Native的起源 1
1.2 Cloud Native的組成 4
1.3 Cloud Native背后的訴求 5
1.4 如何衡量Cloud Native的能力 5
1.5 Cloud Native的原則 6
第2章 微服務(wù)架構(gòu) 11
2.1 微服務(wù)架構(gòu)的起源 11
2.2 為什么采用微服務(wù)架構(gòu) 12
2.2.1 單體架構(gòu)與微服務(wù)架構(gòu) 12
2.2.2 什么時(shí)候開(kāi)始微服務(wù)架構(gòu) 14
2.2.3 如何決定微服務(wù)架構(gòu)的拆分粒度 14
2.3 微服務(wù)設(shè)計(jì)原則 15
2.4 微服務(wù)架構(gòu)實(shí)施的先決條件 17
2.4.1 研發(fā)環(huán)境和流程上的轉(zhuǎn)變 17
2.4.2 拆分前先做好解耦 18
2.5 微服務(wù)劃分模式 20
2.5.1 基于業(yè)務(wù)復(fù)雜度選擇服務(wù)劃分方法 20
2.5.2 基于數(shù)據(jù)驅(qū)動(dòng)劃分服務(wù) 21
2.5.3 基于領(lǐng)域驅(qū)動(dòng)劃分服務(wù) 22
2.5.4 從已有單體架構(gòu)中逐步劃分服務(wù) 23
2.5.5 微服務(wù)拆分策略 24
2.5.6 如何衡量服務(wù)劃分的合理性 25
2.6 微服務(wù)劃分反模式 26
2.7 微服務(wù)API設(shè)計(jì) 28
2.7.1 優(yōu)秀API的設(shè)計(jì)原則 28
2.7.2 服務(wù)間通信——RPC 28
2.7.3 序列化——Protobuf 30
2.7.4 服務(wù)間通信——RESTful 33
2.7.5 通過(guò)Swagger實(shí)現(xiàn)RESTful 36
2.7.6 通過(guò)Spring Boot、Springfox、Swagger實(shí)現(xiàn)RESTful 41
2.7.7 HTTP協(xié)議的進(jìn)化——HTTP/2 46
2.7.8 HTTP/2和Protobuf的組合——gRPC 48
2.8 微服務(wù)框架 53
2.9 基于Dubbo框架實(shí)現(xiàn)微服務(wù) 54
2.10 基于Spring Cloud框架實(shí)現(xiàn)微服務(wù) 58
2.11 服務(wù)發(fā)現(xiàn)場(chǎng)景下的ZooKeeper與Etcd 67
2.12 微服務(wù)部署策略 68
2.12.1 服務(wù)獨(dú)享數(shù)據(jù)庫(kù) 69
2.12.2 服務(wù)獨(dú)享虛擬機(jī)/容器 70
2.13 為什么總覺(jué)得微服務(wù)架構(gòu)很別扭 70
第3章 敏捷基礎(chǔ)設(shè)施及公共基礎(chǔ)服務(wù) 73
3.1 傳統(tǒng)基礎(chǔ)設(shè)施面臨的挑戰(zhàn) 73
3.2 什么是敏捷基礎(chǔ)設(shè)施 74
3.3 基于容器的敏捷基礎(chǔ)設(shè)施 75
3.3.1 容器VS虛擬機(jī) 76
3.3.2 安裝Docker 77
3.3.3 部署私有Docker Registry 79
3.3.4 基于Spring Boot、Maven、Docker構(gòu)建微服務(wù) 79
3.3.5 基于docker-compose管理容器 84
3.4 基于公共基礎(chǔ)服務(wù)的平臺(tái)化 85
3.5 監(jiān)控告警服務(wù) 86
3.5.1 監(jiān)控?cái)?shù)據(jù)采集 87
3.5.2 監(jiān)控?cái)?shù)據(jù)接收模式 87
3.5.3 通過(guò)時(shí)間序列數(shù)據(jù)庫(kù)存儲(chǔ)監(jiān)控?cái)?shù)據(jù) 88
3.5.4 開(kāi)源監(jiān)控系統(tǒng)實(shí)現(xiàn)Prometheus 88
3.5.5 通過(guò)Prometheus和Grafana監(jiān)控服務(wù) 90
3.6 分布式消息中間件服務(wù) 96
3.6.1 分布式消息中間件的作用 97
3.6.2 業(yè)界常用的分布式消息中間件 98
3.6.3 Kafka的設(shè)計(jì)原理 99
3.6.4 為什么Kafka性能高 100
3.6.5 Kafka的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu) 102
3.6.6 如何保證Kafka不丟消息 104
3.6.7 Kafka跨數(shù)據(jù)中心場(chǎng)景集群部署模式 106
3.7 分布式緩存服務(wù) 108
3.7.1 分布式緩存的應(yīng)用場(chǎng)景 109
3.7.2 業(yè)界常用的分布式緩存Memcached 110
3.7.3 業(yè)界常用的分布式緩存——Redis 111
3.7.4 Redis常用的分布式緩存集群模式 112
3.7.5 基于Codis實(shí)現(xiàn)Redis分布式緩存集群 116
3.8 分布式任務(wù)調(diào)度服務(wù) 118
3.8.1 通過(guò)Tbschedule實(shí)現(xiàn)分布式任務(wù)調(diào)度 119
3.8.2 通過(guò)Elastic-Job實(shí)現(xiàn)分布式任務(wù)調(diào)度 123
3.9 如何生成分布式ID 126
3.9.1 UUID 126
3.9.2 SnowFlake 127
3.9.3 Ticket Server 128
3.9.4 小結(jié) 129
第4章 可用性設(shè)計(jì) 130
4.1 綜述 130
4.1.1 可用性和可靠性的關(guān)系 130
4.1.2 可用性的衡量標(biāo)準(zhǔn) 131
4.1.3 什么降低了可用性 131
4.2 逐步切換 132
4.2.1 影子測(cè)試 132
4.2.2 藍(lán)綠部署 133
4.2.3 灰度發(fā)布/金絲雀發(fā)布 134
4.3 容錯(cuò)設(shè)計(jì) 135
4.3.1 消除單點(diǎn) 136
4.3.2 特性開(kāi)關(guān) 136
4.3.3 服務(wù)分級(jí) 137
4.3.4 降級(jí)設(shè)計(jì) 138
4.3.5 超時(shí)重試 139
4.3.6 隔離策略 152
4.3.7 熔斷器 153
4.4 流控設(shè)計(jì) 157
4.4.1 限流算法 157
4.4.2 流控策略 159
4.4.3 基于Guava限流 160
4.4.4 基于Nginx限流 162
4.5 容量預(yù)估 163
4.6 故障演練 164
4.7 數(shù)據(jù)遷移 165
4.7.1 邏輯分離,物理不分離 166
4.7.2 物理分離 166
第5章 可擴(kuò)展性設(shè)計(jì) 168
5.1 加機(jī)器能解決問(wèn)題嗎 168
5.2 橫向擴(kuò)展 169
5.3 AKF擴(kuò)展立方體 170
5.4 如何擴(kuò)展長(zhǎng)連接 172
5.5 如何擴(kuò)展數(shù)據(jù)庫(kù) 175
5.5.1 X軸擴(kuò)展——主從復(fù)制集群 175
5.5.2 Y軸擴(kuò)展——分庫(kù)、垂直分表 176
5.5.3 Z軸擴(kuò)展——分片(sharding) 177
5.5.4 為什么要帶拆分鍵 182
5.5.5 分片后的關(guān)聯(lián)查詢問(wèn)題 183
5.5.6 分片擴(kuò)容(re-sharding) 184
5.5.7 精選案例 187
5.6 如何擴(kuò)展數(shù)據(jù)中心 190
5.6.1 兩地三中心和同城多活 190
5.6.2 同城多活 191
5.6.3 異地多活 192
第6章 性能設(shè)計(jì) 194
6.1 性能指標(biāo) 195
6.2 如何樹(shù)立目標(biāo) 195
6.3 如何尋找平衡點(diǎn) 196
6.4 如何定位瓶頸點(diǎn) 197
6.5 服務(wù)通信優(yōu)化 198
6.5.1 同步轉(zhuǎn)異步 198
6.5.2 阻塞轉(zhuǎn)非阻塞 199
6.5.3 序列化 200
6.6 通過(guò)消息中間件提升寫性能 201
6.7 通過(guò)緩存提升讀性能 202
6.7.1 基于ConcurrentHashMap實(shí)現(xiàn)本地緩存 203
6.7.2 基于Guava Cache實(shí)現(xiàn)本地緩存 204
6.7.3 緩存的常用模式 205
6.7.4 應(yīng)用緩存的常見(jiàn)問(wèn)題 207
6.8 數(shù)據(jù)庫(kù)優(yōu)化 208
6.8.1 通過(guò)執(zhí)行計(jì)劃分析瓶頸點(diǎn) 208
6.8.2 為搜索字段創(chuàng)建索引 209
6.8.3 通過(guò)慢查詢?nèi)罩痉治銎款i點(diǎn) 210
6.8.4 通過(guò)提升硬件能力優(yōu)化數(shù)據(jù)庫(kù) 211
6.9 簡(jiǎn)化設(shè)計(jì) 212
6.9.1 轉(zhuǎn)移復(fù)雜度 212
6.9.2 從業(yè)務(wù)角度優(yōu)化 212
第7章 一致性設(shè)計(jì) 214
7.1 問(wèn)題起源 214
7.2 基礎(chǔ)理論 215
7.2.1 什么是分布式事務(wù) 216
7.2.2 CAP定理 218
7.2.3 BASE理論 219
7.2.4 Quorum機(jī)制(NWR模型) 219
7.2.5 租約機(jī)制(Lease) 220
7.2.6 狀態(tài)機(jī)(Replicated State Machine) 221
7.3 分布式系統(tǒng)的一致性分類 222
7.3.1 以數(shù)據(jù)為中心的一致性模型 223
7.3.2 以用戶為中心的一致性模型 226
7.3.3 業(yè)界常用的一致性模型 229
7.4 如何實(shí)現(xiàn)強(qiáng)一致性 230
7.4.1 兩階段提交 230
7.4.2 三階段提交(3PC) 231
7.5 如何實(shí)現(xiàn)最終一致性 232
7.5.1 重試機(jī)制 232
7.5.2 本地記錄日志 233
7.5.3 可靠事件模式 233
7.5.4 Saga事務(wù)模型 235
7.5.5 TCC事務(wù)模型 237
7.6 分布式鎖 238
7.6.1 基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)悲觀鎖和樂(lè)觀鎖 239
7.6.2 基于ZooKeeper的分布式鎖 241
7.6.3 基于Redis實(shí)現(xiàn)分布式鎖 242
7.7 如何保證冪等性 244
7.7.1 冪等令牌(Idempotency Key) 244
7.7.2 在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)冪等性 246
第8章 未來(lái)值得關(guān)注的方向 247
8.1 Serverless 247
8.1.1 什么是Serverless 247
8.1.2 Serverless的現(xiàn)狀 248
8.1.3 Serverless的應(yīng)用場(chǎng)景 249
8.2 Service Mesh 250
8.2.1 什么是Service Mesh 250
8.2.2 為什么需要Service Mesh 252
8.2.3 Service Mesh的現(xiàn)狀 253
8.2.4 Istio架構(gòu)分析 255
第9章 研發(fā)流程 258
9.1 十二因子 258
9.2 為什么選擇DevOps 261
9.3 自動(dòng)化測(cè)試 263
9.3.1 單元測(cè)試 263
9.3.2 TDD 264
9.3.3 提交即意味著可測(cè)試 265
9.4 Code Review 265
9.4.1 Code Review的意義 265
9.4.2 Code Review的原則 266
9.4.3 Code Review的過(guò)程 267
9.5 流水線 267
9.5.1 持續(xù)交付 267
9.5.2 持續(xù)部署流水線 268
9.5.3 基于開(kāi)源打造流水線 268
9.5.4 Amazon的流水線 271
9.5.5 開(kāi)發(fā)人員自服務(wù) 271
9.6 為什么需要AIOps 272
9.7 基于數(shù)據(jù)和反饋持續(xù)改進(jìn) 273
9.8 擁抱變化 274
9.9 代碼即設(shè)計(jì) 274
第10章 團(tuán)隊(duì)文化 276
10.1 為什么團(tuán)隊(duì)文化如此重要 276
10.2 組織結(jié)構(gòu) 278
10.2.1 團(tuán)隊(duì)規(guī)模導(dǎo)致的問(wèn)題 278
10.2.2 康威定律 278
10.2.3 扁平化的組織 279
10.2.4 獨(dú)裁的管理方式還是民主的管理方式 280
10.2.5 民主的團(tuán)隊(duì)如何做決策 282
10.3 環(huán)境氛圍 282
10.3.1 公開(kāi)透明的工作環(huán)境 282
10.3.2 學(xué)習(xí)型組織 283
10.3.3 減少正式的匯報(bào) 284
10.3.4 高效的會(huì)議 284
10.3.5 量化指標(biāo)致死 286
10.4 管理風(fēng)格 287
10.4.1 下屬請(qǐng)假你會(huì)拒絕嗎 287
10.4.2 為什么你招不到你想要的人 288
10.4.3 得到了所有人的認(rèn)可,說(shuō)明你并不是一個(gè)好的管理者 291
10.4.4 盡量避免用自己的權(quán)力去做決策 291
10.4.5 一屋不掃也可助你“蕩平天下” 292
10.4.6 如何留下你想要的人293
10.5 經(jīng)典案例 294
10.5.1 Instagram的團(tuán)隊(duì)文化 294
10.5.2 Netflix的團(tuán)隊(duì)文化 294

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)