雲原生應用構建:基於 OpenShift

魏新宇 王洪濤 陳耿 著

  • 出版商: 機械工業
  • 出版日期: 2020-06-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 393
  • 裝訂: 平裝
  • ISBN: 7111657861
  • ISBN-13: 9787111657866

立即出貨

買這商品的人也買了...

商品描述

這是一部從開發和運維兩種視角講解如何基於OpenShift構建雲原生應用的著作。
三位作者分別來自紅帽和微軟公司,都是OpenShift和雲原生領域的佈道者和領軍人物,經驗非常豐富。

全書一共14章,秉承全棧理念講解了構建雲原生應用需要掌握的雲原生技術、
OpenShift技術以及開源分佈式中間件技術。

第一部分:雲原生篇(第1~11章)

首先,講解了雲原生和與之相關的分佈式開源中間件的技術,如基於雲原生的Java實現等;
其次,講解了雲原生構建的6大步驟及其相關的技術和方法,如發展DevOps文化、構建分佈式緩存等;
最後,講解了人工智能在容器雲上的實踐。

第二部分:OpenShift篇(第12~14章)

詳細講解了OpenShift 集群的規劃、管理、離線安裝與部署,以及OpenShift 在公有云上的最佳實踐。

作者簡介

魏新宇

紅帽資深解決方案架構師。在IaaS、PaaS方面有豐富的經驗,致力於開源解決方案在企業中的推廣和應用。
從售前角度主導了紅帽在金融、汽車行業的PaaS方面的多個項目。
曾就職於華為、IBM、VMware,工作涉及領域包括硬件、AIX/Linux、虛擬化、PaaS、DevOps、微服務等。
暢銷書《OpenShift在企業中的實踐PaaS DevOps 微服務》聯合作者。

獲得紅帽RHCA Level 5認證、RHCE認證,以及ITIL V3、Cobit5、TOGAF、C-STAR/TOGAF(鑑定級)相關認證。
通過“大魏分享”(david-share)微信公眾號,分享了很多項目實踐經驗。


王洪濤

紅帽副首席架構師,曾在IBM工作多年,紅帽PaaS、JBoss認證工程師。

有20年IT行業從業經驗,先後擔任軟件開發工程師、項目經理、產品經理、架構師等職位,
有豐富的容器雲、互聯網、微服務項目實施經驗。服務於國有四大行、人行、石油、海油、
航信等大客戶,交付或支持電子商城、報表門戶、互聯網站、PaaS雲平台等項目。

陳耿

微軟全球黑帶團隊雲原生技術專家, Azure Red Hat OpenShift亞太區產品技術負責人。
曾是紅帽中國OpenShift核心團隊成員,是開源容器平台OpenShift在國內落地的領軍人物,
長期活躍於國內的雲原生技術社區。
著有國內OpenShift領域的開山之作《開源容器雲OpenShift》及《深入淺出Serverless》等作品。

目錄大綱

目錄:
序言
前言
第一部分 雲原生篇
第1章 雲原生應用的構建之路2
1.1 雲原生應用2
1.1.1 什麼是雲原生應用2
1.1.2 雲原生應用開發和部署的四大原則3
1.2 雲原生應用構建之路的步驟3
1.3 借助Red Hat開源解決方案實現雲原生6
1.4 本章小結8

第2章 傳統Linux上構建應用包9
2.1 什麼是RPM9
2.2 從源代碼構建軟件10
2.2.1 本機編譯代碼10
2.2.2 解釋型代碼11
2.3 給軟件打補丁12
2.4 安裝軟件13
2.5 源代碼生成tar.gz包14
2.6 RPM打包15
2.6.1 什麼是SPEC文件15
2.6.2 書寫SPEC文件17
2.7 構建二進制RPM包19
2.7.1 構建Source RPM和二進制RPM19
2.7.2 檢查並安裝RPM包21
2.8 如何在異構環境重新編譯RPM22
2.9 本章小結24

第3章 雲原生Java的實現25
3.1 Java應用的發展25
3.1.1 Java EE架構25
3.1.2 Java應用的打包與JDK28
3.2 Kubernetes時代Java面臨的問題33
3.3 Quarkus的架構33
3.4 驗證Quarkus功能34
3.4.1 編譯和部署Quarkus應用34
3.4.2 Quarkus的熱加載39
3.4.3 在OpenShift中部署Quarkus應用程序41
3.4.4 Quarkus應用添加REST Client擴展45
3.4.5 Quarkus應用的容錯能力50
3.5 Quarkus的事務管理52
3.6 本章小結53

第4章 DevOps和DevSecOps的實現54
4.1 什麼是DevOps54
4.1.1 從瀑布式開發到敏捷開發54
4.1.2 從敏捷開發到DevOps55
4.2 DevOps的技術實現56
4.3 在OpenShift上實現DevOps58
4.3.1 S2I與Jenkins結合使用實現CICD59
4.3.2 常用DevOps工具介紹61
4.3.3 OpenShift 3 Jenkins Pipeline工作流分析64
4.4 OpenShift 4.2中的OpenShift Pipeline69
4.4.1 Tekton概述69
4.4.2 安裝OpenShift Pipeline71
4.4.3 驗證OpenShift Pipeline73
4.5 DevSecOps在OpenShift上的實現79
4.5.1 DevSecOps的架構79
4.5.2 DevSecOps中的安全工具80
4.5.3 DevSecOps在OpenShift上的架構80
4.5.4 DevSecOps所依賴的OpenShift實驗環境81
4.5.5 DevSecOps Pipeline分析83
4.5.6 執行DevSecOps Pipeline89
4.6 本章小結94

第5章 構建分佈式消息中間件和數據流平台95
5.1 服務之間的通信95
5.1.1 服務之間的通信方式95
5.1.2 異步通信實現97
5.1.3 消息的分類97
5.2 AMQ在OpenShift上的企業級實現98
5.2.1 標準消息中間件規範98
5.2.2 查看AMQ的多協議支持101
5.2.3 創建持久隊列101
5.2.4 AMQ的HA104
5.2.5 AMQ的Cluster105
5.2.6 AMQ在OpenShift上的部署107
5.3 Kafka在OpenShift上的實現113
5.3.1 Kafka的架構113
5.3.2 Kafka集群在OpenShift集群上的實現方式114
5.3.3 在OpenShift上部署Kafka集群115
5.3.4 配置Kafka外部訪問121
5.3.5 配置Mirror Maker124
5.4 本章小結128

第6章 構建分佈式緩存129
6.1 IT架構的演進129
6.1.1 傳統IT架構129
6.1.2 分佈式IT架構130
6.1.3 分佈式IT架構下的緩存130
6.1.4 內存數據網格的應用場景131
6.2 內存數據網格技術實現:Infinispan131
6.2.1 Infinispan的兩種部署模式132
6.2.2 Infinispan的三種配置模式133
6.2.3 Infinispan功能驗證134
6.2.4 在OpenShift上實現Infinispan138
6.3 內存數據網格技術實現:Redis141
6.3.1 Sentinel Redis一主多從141
6.3.2 Redis Cluster Redis多主多從142
6.3.3 Redis在OpenShift上的實現143
6.4 Infinispan和Redis的對比150
6.5 本章小結150

第7章 構建業務流程自動化151
7.1 規則與流程151
7.2 企業規則的開源實現153
7.2.1 KIE的架構153
7.2.2 Drools的架構155
7.3 企業級規則自動化方案157
7.3.1 Red Hat Decision Manager架構157
7.3.2 RHDM在OpenShift上的實現架構158
7.4 以抵押貸款應用展示RHDM功能161
7.4.1 在RHDM上導入抵押貸款應用源碼161
7.4.2 抵押貸款應用源碼分析163
7.4.3 探索抵押貸款應用165
7.4.4 複雜規則的處理168
7.4.5 驗證決策模型和表示法(DMN)格式規則171
7.5 Red Hat流程自動化方案174
7.5.1 Red Hat Process AutomationManager架構174
7.5.2 RHPAM與微服務的集成案例環境準備176
7.5.3 RHPAM與微服務的集成實驗流程驗證185
7.6 本章小結194

第8章 雲原生應用的安全195
8.1 雲原生應用的認證與授權195
8.2 OpenShift的單點登錄197
8.2.1 OpenShift的認證方式197
8.2.2 OpenShift與Keycloak的集成198
8.3 實現Web應用單點登錄209
8.4 雲原生應用出口流量限制219
8.4.1 配置出口防火牆219
8.4.2 配置出口路由器220
8.5 本章小結224

第9章 分佈式集成與API管理225
9.1 分佈式集成225
9.1.1 分佈式集成方案225
9.1.2 基於OpenShift 3.11和Camel的微服務集成227
9.1.3 Camel K項目介紹251
9.2 API管理方案253
9.2.1 Red Hat 3Scale的技術架構與實現效果253
9.2.2 Red Hat 3Scale對容器化應用的管理255
9.3 本章小結262

第10章 雲原生應用與Serverless的結合263
10.1 無服務器架構Serverless263
10.1.1 應用架構的演進263
10.1.2 基礎架構的演進264
10.1.3 Serverless的技術種類265
10.1.4 OpenWhisk的核心概念266
10.1.5 基於OpenShift集群部署的OpenWhisk267
10.2 Serverless與IoT的配合270
10.2.1 場景描述270
10.2.2 創建並驗證第一個Action:formatInput271
10.2.3 創建並驗證第二個Action:enricher274
10.2.4 將兩個Action鏈接276
10.2.5 創建並驗證第三個Action:geofence277
10.2.6 驗證包含三個Action的序列279
10.3 本章小結282

第11章 人工智能在容器雲上的實踐283
11.1 Caffe2和Jupyter Notebook介紹283
11.2 在OpenShift集群中部署Caffe2284
11.3 運行代碼分析287
11.3.1 整體代碼分析287
11.3.2 運行代碼287
11.4 Open Data Hub的簡介與展示299
11.4.1 Open Data Hub簡介299
11.4.2 Open Data Hub的安裝300
11.4.3 Open Data Hub的基本功能展示306
11.5 本章小結307

第二部分 OpenShift篇
第12章 集群規劃與管理310
12.1 集群規劃310
12.1.1 裸金屬還是虛擬機311
12.1.2 容量評估315
12.1.3 網絡考量316
12.1.4 集群的部署考量319
12.1.5 拉伸集群跨數據中心部署322
12.1.6 聯邦集群322
12.2 集群管理和增強338
12.2.1 多集群管理門戶338
12.2.2 集群上應用的災難備份恢復策略342
12.2.3 啟動OpenShift上的硬件加速351
12.3 本章小結363

第13章 OpenShift 4集群離線部署詳解與簡化364
13.1 極簡環境規劃364
13.2 使用Helper節點工具輔助安裝部署365
13.3 安裝配置確認和解析367
13.3.1 DNS手動配置及解析367
13.3.2 負載均衡器手動配置及解析369
13.3.3 WebServer手動配置及解析371
13.3.4 配置離線鏡像倉庫還原鏡像371
13.3.5 執行安裝步驟372
13.3.6 完成安裝376
13.3.7 附加操作:內部鏡像庫設置使用emptydir或者NFS376
13.4 本章小結377

第14章 OpenShift與公有云378
14.1 OpenShift結合公有云的收益378
14.2 OpenShift公有云部署選擇380
14.2.1 基於IaaS380
14.2.2 基於PaaS385
14.3 Azure Red Hat OpenShift385
14.3.1 集群部署與伸縮387
14.3.2 自動化運維387
14.3.3 全球部署387
14.3.4 混合雲架構388
14.3.5 安全與認證389
14.3.6 與Azure服務的集成389
14.3.7 開發者體驗389
14.3.8 聯合技術支持390
14.3.9 付費模式391
14.3.10 OpenShift 4391
14.4 公有云OpenShift最佳實踐391
14.4.1 因地制宜地選擇架構391
14.4.2 最小化基礎架構管理工作量392
14.4.3 構建高可用的部署架構392
14.4.4 Infrastructure as Code393
14.4.5 DevOps393
14.5 本章小結393