Cloud Native 分佈式架構原理與實踐

Cloud Native 分佈式架構原理與實踐

作者: 柳偉衛
出版社: 北京大學
出版在: 2019-03-01
ISBN-13: 9787301300893
ISBN-10: 7301300891
總頁數: 336 頁





內容描述


Cloud Native(雲原生)是以雲架構為優先的應用開發模式。目前,越來越多的企業已經開始大規模地“擁抱雲”——在雲環境下開發應用、部署應用及發布應用等。未來,越來越多的開發者也將採用Cloud Native來開發應用。本書是國內Java領域關於Cloud Native的著作。
  《Cloud Native分佈式架構原理與實踐》全面講解了基於Cloud Native來構建應用需要考慮的設計原則和實現方式,涵蓋REST設計、測試、服務註冊、服務發現、安全、數據管理、消息通信、批處理、任務調度、運營、容器部署、持續發布等方面的Cloud Native知識。同時,書中所講解的技術方案皆為業界主流的技術,極具前瞻性。最後,本書除了講解Cloud Native的理論知識,還會在每個知識點上輔以大量的代碼案例,使理論可以聯繫實踐,具備更強的可操作性。
  本書主要面向對分佈式系統、微服務、Cloud Native開發感興趣的計算機專業的學生、軟件開發人員和系統架構師。


目錄大綱


第1章Cloud Native概述
1.1當今軟件發展的現狀
1.1.1軟件需求的發展
1.1.2開發方式的巨變
1.1.3雲是大勢所趨
1.2Cloud Native的特性
1.2.1以雲為基礎架構
1.2.2雲服務
1.2.3無服務
1.2.4可擴展
1.2.5高可用
1.2.6敏捷
1.2.7雲優先
1.312-Factor 
1.3.1基準代碼
1.3.2依賴
1.3.3配置
1.3.4後端服務
1.3.5構建、發布和運行
1.3.6進程
1.3.7端口綁定
1.3.8並發
1.3.9易處理
1.3.10開發環境與線上環境等價
1.3.11日誌
1.3.12管理進程
1.4成功案例
1.4.1Amazon 
1.4 .2 Netflix 
1.4.3淘寶網
1.5Cloud Native與微服務
1.5.1微服務概述
1.5.2從單塊架構向微服務演進
1.5.3Cloud Native與微服務部署
1.6總結
1.6.1Cloud Native的優點
1.6.2Cloud Native不是“銀彈” 
1.6.3面臨的挑戰
第2章REST API 
2.1REST概述
2.1.1REST的定義
2.1.2REST設計原則
2.2成熟度模型
2.2.1第0級:使用HTTP作為傳輸方式
2.2.2第1級:引入了資源的概念
2.2.3第2級:根據語義使用HTTP動詞
2.2.4第3級:使用HATEOAS 
2.3Java REST 
2.3.1JAX-RS規範
2.3.2Jersey框架
2.3.3Apache CXF框架
2.3.4Spring Web MVC框架
2.4內容協商
2.4.1二進制數據
2.4.2Google Protocol Buffers傳輸協議
2.5異常處理
2.5.1HTTP狀態碼
2.5.2自定義異常信息
2.6API管理
2.6.1版本化
2.6.2文檔化
2.6.3可視化
2.7客戶端
2.7.1瀏覽器插件
2.7.2JAX-RS客戶端
2.7.3Spring客戶端
2.8實戰:開啟第一個微服務
2.8.1初始化一個Spring Boot原型
2.8.2用Gradle編譯項目
2.8.3探索項目
2.8.4實現第一個服務
第3章Cloud Native測試
3.1測試概述
3.1.1傳統測試所面臨的問題
3.1.2如何破解測試面臨的問題
3.2測試的類型、範圍和比例
3.2.1測試類型
3.2.2測試範圍
3.2.3測試比例
3.3如何進行微服務的測試
3.3.1微服務的單元測試
3.3.2Mock與Stub的區別
3.3.3微服務的集成測試
3.3.4微服務的系統測試
3.3.5保障代碼覆蓋率
3.4Spring測試框架
3.4.1Spring TestContext框架
3.4.2Spring MVC Test框架
3.4.3Spring Boot Test框架
第4章服務路由
4.1如何找到服務
4.1.1DNS 
4.1.2服務註冊與發現
4.1.3客戶端發現機制
4.1.4服務端發現機制
4.2實戰:實現服務註冊與發現
4.2.1選擇Eureka的原因
4.2.2集成Eureka Server 
4.2.3集成Eureka Client 
4.2.4服務的註冊與發現
第5章Cloud Native安全
5.1認證與授權
5.1.1基本認證
5.1.2摘要認證
5.1.3摘要認證的密碼加密
5.1. 4通用密碼加密
5.1.5基於散列的令牌方法
5.1.6基於持久化的令牌方法
5.2Java安全框架
5.2.1Apache Shiro 
5.2.2Spring Security 
5.2.3Spring Cloud Security 
5.3OAuth 2.0認證
5.3.1OAuth 2.0的認證原理
5.3.2OAuth 2.0的核心概念
5.3.3OAuth 2.0的認證流程
5.4實戰:實現單點登錄
5.4.1項目依賴
5.4.2編碼實現
5.4.3應用配置
5.4.4運行
第6章Cloud Native數據管理
6.1數據的存儲方式
6.1.1關係型數據庫
6.1.2NoSQL 
6.2DDD與數據建模
6.2.1DDD概述
6.2.2運用DDD進行數據建模
6.3常用數據訪問方式
6.3.1JDBC 
6.3.2Spring JDBC 
6.3.3JPA 
6.4Spring Data 
6.4.1Spring Data概述
6.4.2Spring Data JPA 
6.4.3Spring Data Elasticsearch 
6.4.4Spring Data Redis 
6.4.5Spring Data MongoDB 
6.4.6實戰:基於MongoDB的文件服務器
第7章Cloud Native消息通信
7.1消息通信概述
7.1.1消息通信的基本概念
7.1.2JMS 
7.1.3事件驅動的架構
7.2消息通信常用模式
7.2.1點對點模式
7.2.2發布—訂閱模式
7.3 CQRS 
7.3.1CQRS概述
7.3.2CQRS的好處
7.3.3實戰:實現CQRS 
7.4Spring Cloud Stream 
7.4.1Spring Cloud Stream概述
7.4.2Spring Cloud Stream實現發布者
7.4.3Spring Cloud Stream實現消費者
7.4.4實戰:基於Spring Cloud Stream的消息通信
第8章Cloud Native批處理
8.1批處理概述
8.1.1需要批處理的原因
8.1.2常用批處理實現方式
8.2JDBC Batch 
8.2.1Statement與PreparedStatement 
8.2.2實戰:使用JDBC Batch的例子
8.3Spring批處理
8.3 .1使用JdbcTemplate實現批處理
8.3.2批量更新List 
8.3.3多個批次更新
8.4Spring Batch 
8.4.1Spring Batch概述
8.4.2Job 
8.4.3JobLauncher 
8.4.4JobRepository 
8.4.5Step 
8.4.6ItemReader 
8.4.7ItemWriter 
8.4.8ItemProcessor 
8.4.9實戰:使用Spring Batch的例子
第9章Cloud Native任務調度
9.1任務執行與調度概述
9.2Spring TaskExecutor 
9.2.1TaskExecutor類型
9.2.2TaskExecutor應用
9.3Spring TaskScheduler 
9.3.1Trigger接口
9.3.2Trigger接口的實現
9.4Spring任務調度及異步執行
9.4.1啟用調度註解
9.4.2@Scheduled註解
9.4.3@Async註解
9.4.4@Async的異常處理
9.4.5命名空間
9.5使用Quartz Scheduler 
9.5. 1使用JobDetailFactoryBean 
9.5.2使用MethodInvokingJobDetailFactoryBean 
9.6實戰:基於Quartz Schedule的天氣預報系統
9.6.1項目概述
9.6.2後台編碼實現
9.6.3運行
第10章Cloud Native運營
10.1CAP理論
10.1.1CAP理論概述
10.1.2CAP只能三選二的原因
10.1.3CAP常見模型
10.1.4CAP的意義
10.1.5CAP的發展
10.2服務的熔斷
10.2.1熔斷的意義
10.2.2Hystrix概述
10.2.3實戰:實現微服務的熔斷機制
10.3代碼管理
10.3.1Git簡介
10.3.2Git核心概念
10.3.3Git Flow 
10.4日誌管理
10.4.1日誌框架概述
10.4.2分佈式下的日誌管理
10.4.3集中化日誌分析
10.4.4實戰:基於Elastic Stack的集中化日誌管理
10.5配置管理
10.5.1分佈式下的配置管理的痛點
10.5 .2集中化配置
10.5.3 Spring Cloud Config 
10.5.4實戰:基於Config實現的配置中心
10.6應用監控
10.6.1心跳
10.6.2Eureka監測機制
10.6.3Spring Boot Actuator 
10.6.4實戰:基於Spring Boot Actuator監測的例子
第11章Cloud Native持續發布
11.1持續集成與持續交付
11.1.1持續集成概述
11.1.2持續交付與持續部署
11.1.3持續交付與持續部署的意義
11.2持續交付流水線
11.2.1流水線概述
11.2.2構建持續交付流水線
11.2.3構建流水線的工具
11.3微服務的管理與發布
11.3.1兩個比薩的故事
11.3.2DevOps文化
11.3.3微服務的發布
11.4容器
11.4.1虛擬化技術
11.4.2容器與虛擬機
11.4.3基於容器的持續部署流程
11.4.4實戰:使用Docker來構建、運行和發布微服務
11.5發佈到雲
11.5.1常用雲服務
11.5.2實戰:發布應用到雲
附錄本書所涉及的技術及相關版本
參考文獻


作者介紹


柳偉衛(waylau),在IT 公司擔任項目經理、架構師、高級開發顧問等職位,具有多年軟件開發管理及系統架構經驗。負責過多個省、國家大型分佈式系統的設計與研發,參與了多個大型項目的微服務架構的技術改造,在實際工作中,積累了大量的微服務架構經驗。是CSDN、 開源中國、雲棲社區等技術社區專家。




相關書籍

架構探險 : 輕量級微服務架構 (上冊)

作者 黃勇

2019-03-01

PHP 應用開發與實踐

作者 馬駿 主編

2019-03-01

HTML5+CSS3響應式網站開發項目案例教程

作者 於曉霞

2019-03-01