遷移到微服務與DevOps,微服務和Docker容器的全面實用指南

遷移到微服務與DevOps,改變軟件開發效能!

一如既往,技術行業正處於巨大的轉變之中,物聯網、軟件定義網絡以及軟件即服務(SaaS)僅為其中幾例。由於這些創新,對能夠改進應用開發和部署過程的平臺和架構的需求很大。各種規模的公司現在都需要能夠簡化應用更新過程的框架和架構,以便讓最新版本更頻繁地推向市場而不會給開發和部署團隊增加過多負擔。

像許多類似的轉變仍在早期,這個領域的許多技術和框架來了又走。然而,屹立不倒的贏家仍在持續不斷地改善整個世界的軟件,讓軟件的開發者——我們——能夠 比以往更敏捷地創建新應用和更新現有應用。在我看來,微服務和容器就是贏家,這兩個熱門話題都具有持久性。與單體方法這種最常用的開發與部署應用的方式相經,微服務簡化了這些流程,特別是那些需要多個團隊而且代碼持續增加的大型項目,在這種情況下,即便是代碼中的小改動也可能造成嚴重的延期。微服務通過將敏捷性和伸縮性整合到應用開發和部署中來處理當今的大型代碼,所有這些都在一個已證明的範型中。

通過系統性地構建案例來闡述為什麼CTO或工程團隊的主管應該(或不應該)遷移到微服務的書卻不多。市場上有明顯的空白。作者對這個主題掌握得越多,越忍不住想:“為什麼我不能成為填補這個空白的人呢?”很快,作者開始為自己的書集思方益。於是就有這本:《微服務與容器》。

遷移到微服務與DevOps,微服務和Docker容器的全面實用指南

物聯網(IoT)、軟件定義網絡(SDN)和軟件即服務(SaaS)等創新改變了科技行業的遊戲規則,當前對能夠提升應用開發和部署過程的平臺和架構的需求急速增長。
本書作者長期擔任系統架構和工程團隊的領導者,他在本書中分析了兩個最熱的新技術趨勢——微服務和容器。正如作者所展示的,微服務和Docker容器能夠為應用開發和部署帶來前所未有的敏捷性和伸縮性,特別是在速度是關鍵而小錯誤可能帶來災難性後果的複雜的大型項目中。
為了便於讀者學習如何利用微服務和Docker 來驅動模塊化架構設計、按需擴展、應用性能和可靠性、上市時間、代碼複用以及DevOps 效能的指數級提升,作者不但提供了從單體架構遷移的詳細指導和完整路線圖,而且提供了一個帶領讀者瞭解企業級SOA 系統遷移的深入的案例研究。
本書對軟件架構師/開發者、希望繼續堅持使用舊方法的系統專業人員以及嘗試最大化這些技術的業務價值的管理者,都是很寶貴的參考資料。

  • 理解微服務如何能夠讓使用者將應用組織到易於管理、更新和擴展的獨立組件中。
  • 決定微服務和容器是否值得投入並管理與它們相關的組織學習曲線。
  • 應用微服務之間進程間通信的最佳實踐。
  • 以有序的方式遷移單體系統。
  • 理解Docker 容器,瞭解Docker的安裝和Docker接口。
  • 網絡、編排和有效地管理Docker容器。
  • 使用Docker最大化基於微服務的應用的擴展性。
  • 通過深入、動手的案例研究來應用所學。

目錄:

第一部分 微服務 免費

  • 第1章 微服務概覽 免費
  • 第2章 轉換到微服務
  • 第3章 進程間通信
  • 第4章 微服務的遷移與實現

第二部分 容器

  • 第5章 Docker容器
  • 第6章 Docker安裝
  • 第7章 Docker接口
  • 第8章 容器連網
  • 第9章 容器編排
  • 第10章 容器管理

第三部分 項目實戰—學以致用

  • 第11章 案例研究:單體Helpdesk應用
  • 第12章 案例研究:遷移到微服務
  • 第13章 案例研究:容器化Helpdesk應用
  • 結語

附錄A Helpdesk應用流

附錄B 安裝Solr搜索引擎

第一部分 微服務
第1章 微服務概覽 3
1.1 什麼是微服務 3
1.2 模塊化架構 7
1.3 微服務的其他優點 8
1.4 微服務的缺點 9


第2章 轉換到微服務 11
2.1 疲勞與屬性 11
2.2 組織的學習曲線 12
2.3 微服務的商業案例 14
2.4 成本構成 15
第3章 進程間通信 19
3.1 交互的類型 19
3.2 準備編寫Web服務 20
3.3 微服務的維護 21
3.4 發現服務 21
3.4.1 API網關 22
3.4.2 服務註冊中心 23
3.5 融會貫通 23
第4章 微服務的遷移與實現 27
4.1 轉換的必要性 27
4.2 使用微服務創建新應用 29
4.2.1 組織的準備情況 29
4.2.2 基於服務的方式 30
4.2.3 進程間(服務與服務)通信 30
4.2.4 技術選型 31
4.2.5 實現 31
4.2.6 部署 32
4.2.7 運維 32
4.3 將單體應用遷移到微服務 33
4.3.1 微服務準則 34
4.3.2 重新架構服務 36
4.4 混合方式 37
第二部分 容器
第5章 Docker容器 41
5.1 虛擬機 41
5.2 容器 44

5.3 Docker架構和組件 45
5.4 Docker的力量:一個簡單示例 48
第6章 Docker安裝 51
6.1 在Mac OS X上安裝Docker 51
6.2 在Windows上安裝Docker 56
6.3 在Ubuntu Linux上安裝Docker 57
第7章 Docker接口 61
7.1 關鍵Docker命令 61
7.1.1 docker search 61
7.1.2 docker pull 63
7.1.3 docker images 64
7.1.4 docker rmi 65
7.1.5 docker run 65
7.1.6 docker ps 67
7.1.7 docker logs 68
7.1.8 docker restart 72
7.1.9 docker attach 73
7.1.10 docker rm 73
7.1.11 docker inspect 75
7.1.12 docker exec 76
7.1.13 docker rename 77
7.1.14 docker cp 78
7.1.15 docker pause/unpause 79
7.1.16 docker create 80
7.1.17 docker commit 81
7.1.18 docker diff 81
7.2 Dockerfile 82
7.3 Docker Compose 86
第8章 容器連網 89
8.1 關鍵Linux概念 89
8.2 互聯 90
8.3 默認選項 93
8.3.1 none 94
8.3.2 host 94
8.3.3 bridge 96
8.4 自定義網絡 99
8.4.1 自定義網橋網絡驅動 100
8.4.2 重疊網絡驅動 102
8.4.3 非重疊網絡驅動和Macvlan 103
第9章 容器編排 105
9.1 Kubernetes 105
9.1.1 kubectl 106

9.1.2 主節點 106
9.1.3 工作節點 108
9.1.4 示例:Kubernetes集群 109
9.2 Apache Mesos和Marathon 110
9.2.1 Mesos主節點 111
9.2.2 代理 111
9.2.3 框架 112
9.2.4 示例:Marathon框架 112
9.3 Docker Swarm 113
9.3.1 節點 113
9.3.2 服務 113
9.3.3 任務 114
9.3.4 示例:Swarm集群 114
9.4 服務發現 116
9.5 服務註冊中心 119
第10章 容器管理 121
10.1 監控 121
10.2 日誌記錄 122
10.3 指標收集 125
10.3.1 docker stats 125
10.3.2 API 126
10.3.3 cAdvisor 126
10.4 集群範圍的監控工具 127
10.4.1 Heapster 127
10.4.2 Prometheus 127
第三部分 項目實戰——學以致用
第11章 案例研究:單體Helpdesk應用 145
11.1 Helpdesk應用概覽 145
11.2 應用架構 146
11.2.1 身份驗證、攔截器和授權 147
11.2.2 賬戶管理 148
11.2.3 工單 151
11.2.4 產品目錄 153
11.2.5 預約 156
11.2.6 留言板 158
11.2.7 搜索 160

11.3 構建應用程序 161
11.3.1 搭建Eclipse 161
11.3.2 構建應用 162
11.3.3 部署與配置 166
11.4 新需求和bug修復 168
第12章 案例研究:遷移到微服務 171
12.1 準備遷移 171
12.1.1 採用微服務準則 172
12.1.2 轉換小結 173
12.1.3 對架構的影響 174
12.2 轉換到微服務 174
12.2.1 產品目錄 175
12.2.2 工單 177
12.2.3 搜索 178
12.3 應用構建和部署 179
12.3.1 代碼設置 179
12.3.2 構建微服務 179
12.3.3 部署與配置 180
12.4 新需求與bug修復 183
第13章 案例研究:容器化Helpdesk應用 185
13.1 容器化微服務 185
13.1.1 列出依賴項 185
13.1.2 構建二進制文件和WAR文件 186
13.1.3 創建Docker鏡像 186
13.1.4 構建Docker鏡像 189
13.1.5 在AWS上搭建DC/OS集群 190
13.2 部署產品目錄微服務 195
13.2.1 向Marathon提交一個任務 195
13.2.2 檢查與擴展服務 198
13.2.3 訪問微服務 200
13.3 更新單體應用 201
結語 203

附錄A Helpdesk應用流 207
附錄B 安裝Solr搜索引擎 217


分享到:


相關文章: