预购商品
书目分类
特别推荐
學習有效和明確的端到端微服務系統設計。 定義團隊、他們的職責以及共同工作的指導方針。 瞭解如何將大型應用程式分割成一組微服務。 研究如何將資料隔離並嵌入到相應的微服務中。 為基礎架構更改構建一個簡單但功能強大的CI/CD管道。 為示例微服務編寫代碼。 在Amazon上部署可正常工作的微服務應用程式Web服務。
前言 .1 第1章 邁向微服務架構 7 1.1 微服務是什麼? .8 1.2 降低協作成本 10 1.2.1 協作成本問題 11 1.2.2 艱難部分. 13 1.3 從實踐中學習 14 1.4 決策,決策…… 17 1.5 小結 21 第2章 微服務運作模式的設計 22 2.1 為什麼團隊和人員很重要 23 2.1.1 團隊規模. 24 2.1.2 團隊技能. 26 2.1.3 團隊間協作 27 2.2 引入團隊拓撲 29 2.2.1 團隊類型. 29 2.2.2 交互模式. 31 2.3 設計一個微服務團隊拓撲 32 2.3.1 建立系統設計團隊 . 33 2.3.2 構建微服務團隊範本 35 2.3.3 平臺團隊. 38 2.3.4 賦能和複雜的子系統團隊 . 39 2.3.5 消費者團隊 41 2.3.6 小結 43 第3章 設計微服務:SEED(S)流程 44 3.1 介紹服務設計的七個基本演變:SEED(S)方法 . 45 3.2 確定參與者 . 46 3.3 確定參與者必須做的工作 49 3.3.1 使用工作故事描述格式來完成待完成工作(JTBDs) 51 3.3.2 我們的示例項目中的示例JTBD 52 3.4 用序列圖發現交互模式 53 3.5 從JTBD 派生操作和查詢 56 3.6 將每個查詢和操作描述為具有開放標準的規範 59 3.7 獲得關於API 規範的回饋 64 3.8 實現微服務 . 65 3.9 微服務與API . 65 3.10 小結 . 68 第4章 調整微服務的大小:尋找服務邊界 69 4.1 為什麼邊界很重要,什麼時候重要,以及如何找到它們 69 4.2 領域驅動設計和微服務邊界 71 4.2.1 上下文映射 75 4.2.2 同步集成與非同步集成 78 4.2.3 DDD 聚合 79 4.3 事件風暴簡介 79 4.4 介紹通用規模計算公式 86 4.5 小結 87 第5章 處理資料 89 5.1 獨立部署和資料共用 . 89 5.2 微服務嵌入他們的資料 91 5.2.1 嵌入資料不應導致資料庫集群數量激增 92 5.2.2 資料嵌入和資料委託模式 . 93 5.2.3 使用資料複製解決獨立性 . 95 5.2.4 分散式事務和失敗補償 96 5.3 事件源和CQRS 99 5.3.1 事件源 100 5.3.2 通過滾動快照提高性能 106 5.3.3 事件存儲 107 5.3.4 命令查詢職責分離 108 5.4 微服務之外的事件源和CQRS 109 5.5 小結 . 111 第6章 構建基礎設施流水線 . 112 6.1 DevOps 原則和實踐 113 6.1.1 不可變的基礎設施 114 6.1.2 基礎設施即代碼 116 6.1.3 持續集成和持續交付 . 118 6.2 建立基礎設施即代碼的環境 120 6.2.1 設置GitHub 120 6.2.2 安裝Terraform 121 6.3 配置Amazon Web Services 122 6.3.1 設置一個AWS Operations 帳戶 123 6.3.2 配置AWS CLI 127 6.3.3 設置AWS 許可權 . 128 6.3.4 為Terraform 創建S3 存儲 132 6.4 建立基礎設施即代碼流水線 134 6.4.1 創建沙箱代碼庫 135 6.4.2 使用Terraform 137 6.4.3 編寫沙箱環境代碼 138 6.4.4 構建流水線 . 142 6.4.5 測試流水線 . 152 6.5 小結 . 154 第7章 構建微服務基礎設施 . 156 7.1 基礎設施元件 . 156 7.1.1 網路 157 7.1.2 Kubernetes 服務 158 7.1.3 GitOps 部署伺服器 . 160 7.2 實現基礎設施 . 162 7.2.1 安裝kubectl 162 7.2.2 設置模組代碼庫 163 7.2.3 網路模組 166 7.2.4 Kubernetes 模組 182 7.2.5 設置Argo CD 195 7.2.6 測試環境 200 7.2.7 清理基礎設施 201 7.3 小結 . 203 第8章 開發者空間 205 8.1 編碼標準和開發者的配置 . 206 8.2 在本地設置一個容器化的環境 214 8.2.1 安裝Multipass 215 8.2.2 輸入容器和映射資料夾 217 8.3 安裝Docker . 218 8.4 本地Docker 的高級用法:安裝Cassandra 220 8.5 安裝Kubernetes . 221 8.6 小結 . 223 第9章 開發微服務 225 9.1 設計微服務端點 225 9.1.1 航班管理微服務 229 9.1.2 預留管理微服務 230 9.1.3 設計OpenAPI 規範 230 9.2 為微服務實現資料 238 9.2.1 預訂微服務的Redis 資料模型 238 9.2.2 航班微服務的MySQL 資料模型 . 241 9.3 微服務的實現代碼 243 9.3.1 航班微服務背後的代碼 244 9.3.2 健康檢查 250 9.4 向專案引入第二種微服務 . 252 9.5 通過傘式專案關聯微服務 . 259 9.6 小結 . 262 第10章 發佈微服務 264 10.1 設置Staging 環境 265 10.1.1 Ingress 模組 . 266 10.1.2 資料庫模組 267 10.1.3 Forking Staging 基礎設施項目 268 10.1.4 配置Staging 工作流 269 10.1.5 編輯Staging 基礎設施代碼 . 271 10.2 傳輸航班資訊容器 . 275 10.2.1 介紹Docker Hub 276 10.2.2 配置Docker Hub 277 10.2.3 配置流水線 278 10.3 部署航班服務容器 . 282 10.3.1 瞭解Kubernetes 部署 . 283 10.3.2 創建 Helm Chart 284 10.3.3 創建微服務部署代碼庫 . 286 10.3.4 使用Argo CD 進行GitOps 式的部署 . 292 10.4 清理 299 10.5 小結 299 第11章 變更管理 . 300 11.1 微服務系統中的變更 301 11.1.1 以資料為導向 . 301 11.1.2 變更的影響 302 11.1.3 三種部署模型 . 304 11.2 基於我們的架構的考量 306 11.2.1 基礎設施的變更 . 307 11.2.2 微服務變更 311 11.2.3 數據的變更 316 11.3 小結 318 第12章 旅程的終點(和新的起點) . 320 12.1 微服務的複雜性與簡化 321 12.2 衡量微服務轉型的進展 325 12.3 小結 328
Ronnie Mitra是一位作家,戰略家和顧問,擁有超過25年網路和連接技術工作經驗。他是O’Reilly的《Microservice Architecture》和《Continuous API Management》的合著者。 Irakli Nadareishvili是Capital One核心創新副總裁,領導著負責構建基於微服務的核心銀行平臺的團隊。在此之前,他是健康科技初創公司ReferWell的聯合創始人兼CTO,並在CA Technologies和NPR擔任技術領導職務。您可以通過@inadarei在Twitter上關注Irakli。 譯者介紹 王岩,thoughtworks高級諮詢師,專注於領域驅動設計的實踐和推廣。 黃俊彬,thoughtworks高級諮詢師,在智慧硬體、通信、互聯網、金融等領軍企業提供敏捷轉型、系統架構改造、大型遺留系統重構等服務。
客服公告
热门活动
订阅电子报