微服務與容器
內容描述
本書是關於微服務和容器的實用指南。全書分為3部分,共13章。第一部分系統介紹微服務,包括微服務的概念、什麽類型的組織適合轉換到微服務、進程間通信、微服務的遷移與實現、將單體應用遷移到微服務等內容;第二部分講述容器,具體包括Docker容器的概念、Docker安裝、Docker接口、容器連網、容器編排、容器管理等知識點;第三部分提供一個功能完整的Helpdesk服務示例,幫助讀者學以致用,進一步掌握微服務和容器的具體應用。
本書內容豐富,既適合微服務相關從業人員和容器開發人員閱讀,也適合希望在生產環境中高效使用Docker的開發人員參考。
目錄大綱
第一部分 微服務
第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
作者介紹
帕敏德·辛格·科克(Parminder Singh Kocher)有20 年構建企業級軟件系統的經驗,他自2005 年就在思科工作,目前是思科網絡學院平台的工程總監。他領導工程團隊開發學院下一代平台,該平台可以在超過180個國家訪問和使用。他還管理思科的管理服務(CMS)平台並作為創新佈道者領導多個軟件團隊。