書馨卡幫你省薪 2024個人購書報告 2024中圖網(wǎng)年度報告
歡迎光臨中圖網(wǎng) 請 | 注冊
> >>
云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐

云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐

出版社:人民郵電出版社出版時間:2024-03-01
開本: 16開 頁數(shù): 544
中 圖 價:¥99.3(7.1折) 定價  ¥139.8 登錄后可看到會員價
加入購物車 收藏
運(yùn)費(fèi)6元,滿39元免運(yùn)費(fèi)
?新疆、西藏除外
本類五星書更多>

云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐 版權(quán)信息

云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐 本書特色

以項目為導(dǎo)向,使用Spring實(shí)現(xiàn)云原生模式,處理安全性、韌性和可擴(kuò)展性等問題;

提供豐富的實(shí)戰(zhàn)案例,構(gòu)建和測試命令式與反應(yīng)式應(yīng)用,在Kubernetes上實(shí)現(xiàn)配置和可觀測性;

采用持續(xù)交付和GitOps,從代碼到生產(chǎn),一步步構(gòu)建云原生應(yīng)用,讓學(xué)習(xí)成果即刻轉(zhuǎn)化為實(shí)際價值。

云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐 內(nèi)容簡介

本書提供了一個以項目為導(dǎo)向的云原生Spring實(shí)踐指南,將幫助你總攬日益復(fù)雜的云計算環(huán)境,并學(xué)習(xí)如何將模式和技術(shù)結(jié)合在一起,建立一個真正的云計算原生系統(tǒng)并將其投入生產(chǎn)。本書分為四個部分,共計16章。**部分內(nèi)容為此次從代碼到生產(chǎn)的云原生之旅奠定了基礎(chǔ),幫助你更好地理解本書其他部分所涉及的主題。第二部分介紹了使用Spring Boot和Kubernetes構(gòu)建生產(chǎn)就緒的云原生應(yīng)用的主要實(shí)踐和模式。第三部分涵蓋了云中分布式系統(tǒng)的基本屬性和模式,包括韌性、安全性、可擴(kuò)展性和API網(wǎng)關(guān),以及反應(yīng)式編程和事件驅(qū)動架構(gòu)。第四部分使你的云原生應(yīng)用為生產(chǎn)做好準(zhǔn)備,解決可觀測性、配置管理、Secret管理和部署策略等問題,并涵蓋了Serverless和原生鏡像。

云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐 目錄

目錄



第 一部分 元原生基礎(chǔ)

第 1章 云原生簡介

1.1什么是云原生?

1.1.1云原生的3P

1.2 云和云計算模型

1.2.1 基礎(chǔ)設(shè)施即服務(wù)

1.2.2 容器即服務(wù)

1.2.3 平臺即服務(wù)

1.2.4 函數(shù)即服務(wù)

1.2.5 軟件即服務(wù)

1.3 云原生應(yīng)用的屬性

1.3.1 可擴(kuò)展性

1.3.2 松耦合

1.3.3 韌性

1.3.4 可觀測性

1.3.5 可管理性

1.4 支撐云原生的文化與實(shí)踐

1.4.1 自動化

1.4.2 持續(xù)交付

1.4.3 DevOps

1.5 云是*佳方案嗎?

1.5.1 速度

1.5.2 韌性

1.5.3 擴(kuò)展

1.5.4 節(jié)省成本

1.6 云原生的拓?fù)浣Y(jié)構(gòu)

1.6.1 容器

1.6.2 編排

1.6.3 Serverless

1.7 云原生應(yīng)用的架構(gòu)

1.7.1 從多層架構(gòu)到微服務(wù)和其他架構(gòu)

1.7.2 基于服務(wù)架構(gòu)的云原生應(yīng)用

小結(jié)

第 2章 云原生模式與技術(shù)

2.1 云原生開發(fā)原則:12- Factor及其擴(kuò)展

2.1.1 一份基準(zhǔn)代碼,一個應(yīng)用

2.1.2 API優(yōu)先

2.1.3 依賴管理

2.1.4 設(shè)計,構(gòu)建,發(fā)布和運(yùn)行

2.1.5 配置、憑證和代碼

2.1.6 日志

2.1.7 易處理

2.1.8 支撐服務(wù)

2.1.9 環(huán)境對等

2.1.10 管理進(jìn)程

2.1.11 端口綁定

2.1.12 無狀態(tài)進(jìn)程

2.1.13 并發(fā)

2.1.14 遙測

2.1.15 認(rèn)證與授權(quán)

2.2 使用Spring構(gòu)建云原生應(yīng)用

2.2.1 Spring全景圖概覽

2.2.2 構(gòu)建Spring Boot應(yīng)用

2.3 使用Docker容器化應(yīng)用

2.3.1 Docker簡介:鏡像與容器

2.3.2 以容器形式運(yùn)行Spring應(yīng)用

2.4 使用Kubernetes管理容器

2.4.1 Kubernetes簡介:Deployment、Pod與Service

2.4.2 在Kubernetes中運(yùn)行Spring應(yīng)用

2.5 云原生樣例:Polar Bookshop

2.5.1 理解系統(tǒng)需求

2.5.2 探索項目中所使用的模式和技術(shù)

小結(jié)

第二部分 云原生開發(fā)

第3章 云原生開發(fā)入門

3.1 啟動云原生項目

3.1.1 一份基準(zhǔn)代碼,一個應(yīng)用

3.1.2 使用Gradle和Maven進(jìn)行依賴管理

3.2 使用嵌入式的服務(wù)器

3.2.1 可執(zhí)行的JAR文件與嵌入式服務(wù)器

3.2.2 理解每個請求一個線程的模型

3.2.3 配置嵌入式服務(wù)器

3.3 使用Spring MVC構(gòu)建RESTful應(yīng)用

3.3.1 先有REST API,后有業(yè)務(wù)邏輯

3.3.2 使用Spring MVC實(shí)現(xiàn)REST API

3.3.3 數(shù)據(jù)驗(yàn)證和錯誤處理

3.3.4 為滿足未來需求而不斷演進(jìn)的API

3.4 使用Spring測試RESTful應(yīng)用

3.4.1 使用JUnit 5進(jìn)行單元測試

3.4.2 使用@SpringBootTest進(jìn)行集成測試

3.4.3 使用@WebMvcTest測試REST控制器

3.4.4 使用@JsonTest測試JSON序列化

3.5 部署流水線:構(gòu)建與測試

3.5.1 理解部署流水線的提交階段

3.5.2 使用GitHub Actions實(shí)現(xiàn)提交階段

小結(jié)

第4章 外部化配置管理

4.1 Spring中的配置:屬性與Profile

4.1.1 屬性:用作配置的鍵/值對

4.1.2 Profile:特性標(biāo)記和配置組

4.2 外部化配置:一次構(gòu)建,多個配置

4.2.1 通過命令行參數(shù)配置應(yīng)用

4.2.2 通過JVM系統(tǒng)屬性配置應(yīng)用

4.2.3 通過環(huán)境變量配置應(yīng)用

4.3 使用Spring Cloud Config Server實(shí)現(xiàn)中心化的配置管理

4.3.1 使用Git存儲配置數(shù)據(jù)

4.3.2 搭建配置服務(wù)器

4.3.3 確保配置服務(wù)器的韌性

4.3.4 理解配置服務(wù)器的REST API

4.4 通過Spring Cloud Config Client使用配置服務(wù)器

4.4.1 搭建配置客戶端

4.4.2 確保配置客戶端的韌性

4.4.3 在運(yùn)行時刷新配置

小結(jié)

第5章 云中的數(shù)據(jù)持久化與數(shù)據(jù)管理

5.1 云原生系統(tǒng)的數(shù)據(jù)庫

5.1.1 云中的數(shù)據(jù)服務(wù)

5.1.2 以容器的形式運(yùn)行PostgreSQL

5.2 使用Spring Data JDBC進(jìn)行數(shù)據(jù)持久化

5.2.1 使用JDBC建立到數(shù)據(jù)庫的連接

5.2.2 使用Spring Data定義持久化實(shí)體

5.2.3 啟用和配置JDBC審計

5.2.4 使用Spring Data實(shí)現(xiàn)數(shù)據(jù)資源庫

5.3 使用Spring和Testcontainers測試數(shù)據(jù)持久化

5.3.1 為PostgreSQL配置Testcontainers

5.3.2 使用@DataJdbcTest和Testcontainers測試數(shù)據(jù)持久化

5.3.3 使用@SpringBootTest和Testcontainers進(jìn)行集成測試

5.4 使用Flyway管理生產(chǎn)環(huán)境中的數(shù)據(jù)庫

5.4.1 理解Flyway:對數(shù)據(jù)庫進(jìn)行版本控制

5.4.2 使用Flyway初始化數(shù)據(jù)庫模式

5.4.3 使用Flyway演進(jìn)數(shù)據(jù)庫

小結(jié)

第6章 容器化Spring Boot

6.1 在Docker上使用容器鏡像

6.1.1 理解容器鏡像

6.1.2 使用Dockerfile創(chuàng)建鏡像

6.1.3 發(fā)布鏡像到GitHub Container Registry

6.2 將Spring Boot應(yīng)用打包為容器鏡像

6.2.1 讓Spring Boot為容器化做好準(zhǔn)備

6.2.2 使用Dockerfiles容器化Spring Boot

6.2.3 構(gòu)建適用于生產(chǎn)環(huán)境的容器鏡像

6.2.4 使用Cloud Native Buildpacks容器化Spring Boot

6.3 使用Docker Compose管理Spring Boot容器

6.3.1 使用Docker Compose管理容器的生命周期

6.3.2 調(diào)試Spring Boot容器

6.4 部署流水線:打包和發(fā)布

6.4.1 在提交階段構(gòu)建發(fā)布候選

6.4.2 使用GitHub Actions發(fā)布容器鏡像

6.5 小結(jié)

第7章 面向Spring Boot的Kubernetes基礎(chǔ)

7.1 從Docker到Kubernetes

7.1.1 使用本地的Kubernetes集群

7.1.2 管理本地集群中的數(shù)據(jù)服務(wù)

7.2 Spring Boot應(yīng)用的Kubernetes Deployment

7.2.1 從容器到Pod

7.2.2 使用Deployment來控制Pod

7.2.3 創(chuàng)建Spring Boot應(yīng)用的Deployment

7.3 服務(wù)發(fā)現(xiàn)與負(fù)載均衡

7.3.1 理解服務(wù)發(fā)現(xiàn)和負(fù)載均衡

7.3.2 客戶端的服務(wù)發(fā)現(xiàn)和負(fù)載均衡

7.3.3 服務(wù)器端的服務(wù)發(fā)現(xiàn)和負(fù)載均衡

7.3.4 使用Kubernetes Service對外暴露Spring Boot應(yīng)用

7.4 可擴(kuò)展性和易處理性

7.4.1 確保易處理性:快速啟動

7.4.2 確保易處理性:優(yōu)雅關(guān)機(jī)

7.4.3 擴(kuò)展Spring Boot應(yīng)用

7.5 使用Tilt實(shí)現(xiàn)本地的Kubernetes開發(fā)

7.5.1 使用Tilt實(shí)現(xiàn)內(nèi)開發(fā)循環(huán)

7.5.2 使用Octant可視化Kubernetes工作負(fù)載

7.6 部署流水線:校驗(yàn)Kubernetes清單

7.6.1 在提交階段校驗(yàn)Kubernetes清單

7.6.2 使用GitHub Actions實(shí)現(xiàn)Kubernetes清單校驗(yàn)的自動化

7.6 小結(jié)

第三部分 云原生分布式系統(tǒng)

第8章 反應(yīng)式Spring:韌性與可擴(kuò)展性

8.1 使用Reactor和Spring的異步與非阻塞架構(gòu)

8.1.1 從“每個請求一個線程”到事件循環(huán)

8.1.2 Reactor項目:使用Mono和Flux實(shí)現(xiàn)的反應(yīng)式流

8.1.3 理解Spring反應(yīng)式技術(shù)棧

8.2 使用Spring WebFlux和Spring Data R2DBC實(shí)現(xiàn)反應(yīng)式服務(wù)器

8.2.1 使用Spring Boot引導(dǎo)反應(yīng)式應(yīng)用

8.2.2 使用Spring Data R2DBC反應(yīng)式地持久化數(shù)據(jù)

8.2.3 使用反應(yīng)式流實(shí)現(xiàn)業(yè)務(wù)邏輯

8.2.4 使用Spring WebFlux暴露REST API

8.3 使用Spring WebClient編寫反應(yīng)式客戶端

8.3.1 Spring中的服務(wù)與服務(wù)通信

8.3.2 理解如何交換數(shù)據(jù)

8.3.3 使用WebClient實(shí)現(xiàn)REST客戶端

8.4使用反應(yīng)式Spring實(shí)現(xiàn)韌性的應(yīng)用

8.4.1 超時

8.4.2 重試

8.4.3 后備策略和錯誤處理

8.5 使用Spring、Reactor和Testcontainers測試反應(yīng)式應(yīng)用

8.5.1 使用mock Web服務(wù)器測試REST客戶端

8.5.2 使用@DataR2dbcTest和Testcontainers測試數(shù)據(jù)持久化

8.5.3 使用@WebFluxTest測試REST控制器

8.6小結(jié)

第9章 API網(wǎng)關(guān)與斷路器

9.1 邊緣服務(wù)器和Spring Cloud Gateway

9.1.1 使用Spring Cloud Gateway引導(dǎo)邊緣服務(wù)器

9.1.2 定義路由和斷言

9.1.3 通過過濾器處理請求和響應(yīng)

9.2 使用Spring Cloud Circuit Breaker和Resilience4J實(shí)現(xiàn)容錯

9.2.1 使用Spring Cloud Circuit Breaker引入斷路器

9.2.2 使用Resilience4J配置斷路器

9.2.3 使用Spring WebFlux定義后備REST API

9.2.4 組合斷路器、重試和限時器

9.3 使用Spring Cloud Gateway和Redis進(jìn)行限流

9.3.1 以容器的形式運(yùn)行Redis

9.3.2 集成Spring與Redis

9.3.3 配置請求限流器

9.4 基于Redis的分布式會話管理

9.4.1 使用Spring Session Data Redis處理會話

9.5 使用Kubernetes Ingress管理外部訪問

9.5.1 理解Ingress API和Ingress Controller

9.5.2 使用Ingress對象

小結(jié)

第 10章 事件驅(qū)動應(yīng)用與函數(shù)

10.1.1 理解事件驅(qū)動模型

10.1.2 使用發(fā)布/訂閱模型

10.2 基于RabbitMQ的消息代理

10.2.1 理解消息系統(tǒng)中的AMQP

10.2.2 使用RabbitMQ實(shí)現(xiàn)發(fā)布/訂閱通信

10.3 基于Spring Cloud Function的函數(shù)

10.3.1 在Spring Cloud Function中使用函數(shù)化范式

10.3.2 組合與集成函數(shù):REST、Serverless與數(shù)據(jù)流

10.4 使用Spring Cloud Stream處理消息

10.4.1 配置與RabbitMQ的集成

10.4.2 將函數(shù)綁定至消息通道

10.4.3 使用Test Binder編寫集成測試

10.4.4 保持消息系統(tǒng)應(yīng)對故障的韌性

10.5 使用Spring Cloud Stream生產(chǎn)和消費(fèi)消息

10.5.1 實(shí)現(xiàn)事件消費(fèi)者以及冪等性問題

10.5.2 實(shí)現(xiàn)事件生產(chǎn)者以及原子性問題

小結(jié)

第 11章 安全性:認(rèn)證與SPA

11.1 理解Spring Security的基礎(chǔ)知識

11.2 使用Keycloak管理用戶賬號

11.2.1 定義安全realm

11.2.2 管理用戶和角色

11.3 使用OpenID Connect、JWT和Keycloak進(jìn)行認(rèn)證

11.3.1 使用OpenID Connect認(rèn)證用戶

11.3.2 使用JWT交換用戶信息

11.3.3 在Keycloak中注冊應(yīng)用

11.4 使用Spring Security和OpenID Connect認(rèn)證用戶

11.4.1 添加新的依賴

11.4.2 配置Spring Security和Keycloak集成

11.4.3 Spring Security的基本配置

11.4.4 探查認(rèn)證用戶的上下文

11.4.5 在Spring Security和Keycloak中配置用戶退出

11.5 集成Spring Security與SPA

11.5.1 運(yùn)行Angular應(yīng)用

11.5.2 控制認(rèn)證流

11.5.3 防止跨站請求偽造

11.6 測試Spring Security和OpenID Connect

11.6.1 測試OIDC認(rèn)證

11.6.2 測試CSRF

小結(jié)

第 12章 安全:授權(quán)和審計

12.1 使用Spring Cloud Gateway和OAuth2實(shí)現(xiàn)授權(quán)和角色管理

12.1.1 從Spring Cloud Gateway到其他服務(wù)的令牌中繼

12.1.2 自定義令牌并傳播用戶角色

12.2 使用Spring Security和OAuth2保護(hù)API(命令式)

12.2.1 以O(shè)Auth2資源服務(wù)器的方式保護(hù)Spring Boot應(yīng)用

12.2.2 使用Spring Security和JWT實(shí)現(xiàn)基于角色的訪問控制

12.2.3 使用Spring Security和Testcontainers測試OAuth2

12.3 使用Spring Security和OAuth2保護(hù)API(反應(yīng)式)

12.3.1 以O(shè)Auth2資源服務(wù)器的方式保護(hù)Spring Boot應(yīng)用

12.3.2 使用Spring Security和Testcontainers測試OAuth2

12.4 使用Spring Security和Spring Data保護(hù)和審計數(shù)據(jù)

12.4.1 使用Spring Security和Spring Data JDBC審計數(shù)據(jù)

12.4.2 使用Spring Data和@WithMockUser測試數(shù)據(jù)審計

12.4.3 使用Spring Security和Spring Data R2DBC保護(hù)用戶數(shù)據(jù)

12.4.4使用@WithMockUser和Spring Data R2DBC測試數(shù)據(jù)審計和保護(hù)

小結(jié)

第四部分 云原生生產(chǎn)化

第 13章 可觀測性與監(jiān)控

13.1 使用Spring Boot、Loki和Fluent Bit管理日志

13.1.1 使用Spring Boot記錄日志

13.1.2 使用Loki、Fluent Bit和Grafana管理日志

13.2 使用Spring Boot Actuator和Kubernetes實(shí)現(xiàn)健康探針

13.2.1 使用Actuator定義健康探針

13.2.2 在Spring Boot和Kubernetes中配置健康指針

13.3 使用Spring Boot Actuator、Prometheus和Grafana實(shí)現(xiàn)度量和監(jiān)控

13.3.1 使用Spring Boot Actuator和Micrometer配置度量

13.3.2 使用Prometheus和Grafana監(jiān)控度量

13.3.3 在Kubernetes中配置Prometheus度量

13.4 使用OpenTelemetry和Tempo進(jìn)行分布式跟蹤

13.4.1 使用Tempo和Grafana管理跟蹤

13.4.2 在Spring Boot中使用OpenTelemetry配置跟蹤

13.5 使用Spring Boot Actuator管理和監(jiān)控應(yīng)用

13.5.1 在Spring Boot中監(jiān)控Flyway遷移

13.5.2 暴露應(yīng)用信息

13.5.3 生成和分析堆轉(zhuǎn)儲文件

小結(jié)

第 14章 配置與Secret管理

14.1 在Kubernetes上配置應(yīng)用

14.1.1 使用Spring Security保護(hù)配置服務(wù)器

14.1.2 使用Spring Cloud Bus刷新配置

14.1.3 使用Spring Cloud Config管理Secret

14.1.4 禁用Spring Cloud Config

14.2 在Kubernetes中使用ConfigMap和Secret

14.2.1 使用ConfigMap配置Spring Boot

14.2.2 (是否應(yīng)該)使用Secret存儲敏感信息

14.2.3 使用Spring Cloud Kubernetes在運(yùn)行時刷新配置

14.3 使用Kustomize進(jìn)行配置管理

14.3.1 使用Kustomize管理和配置 Spring Boot應(yīng)用

14.3.2 使用Kustomize管理多環(huán)境的Kubernetes配置

14.3.3 定義staging環(huán)境的配置Overlay

14.3.4 自定義環(huán)境變量

14.3.5 自定義ConfigMap

14.3.6 自定義鏡像名稱和版本

14.3.7 自定義副本數(shù)量

小結(jié)

第 15章 持續(xù)交付與GitOps

15.1 部署流水線:驗(yàn)收階段

15.1.1 為持續(xù)交付中的發(fā)布候選進(jìn)行版本化

15.1.2 理解部署流水線的驗(yàn)收階段

15.1.3 使用GitHub Actions實(shí)現(xiàn)驗(yàn)收階段

15.2 配置Spring Boot的生產(chǎn)化

15.2.1 為生產(chǎn)化定義配置Overlay

15.2.2 為Spring Boot容器配置CPU和內(nèi)存

15.2.3 將Spring Boot部署至生產(chǎn)環(huán)境

15.3 部署流水線:生產(chǎn)化階段

15.3.1 理解部署流水線的生產(chǎn)化階段

15.3.2 使用GitHub Actions實(shí)現(xiàn)生產(chǎn)化階段

15.4 使用GitOps實(shí)現(xiàn)持續(xù)部署

15.4.1 使用Argo CD實(shí)現(xiàn)GitOps

15.4.2 組合到一起

小結(jié)

第 16章 Serverless、GraalVM與Knative

16.1 使用Spring Native和GraalVM生成原生鏡像

16.1.1 理解GraalVM和Spring Native

16.1.2 使用Spring Native引入GraalVM對Spring Boot的支持

16.1.3 將Spring Boot應(yīng)用編譯為原生鏡像

16.2 使用Spring Cloud Function的Serverless應(yīng)用

16.2.1 使用Spring Cloud Function構(gòu)建Serverless應(yīng)用

16.2.2 部署流水線:構(gòu)建和發(fā)布

16.2.3 將Serverless應(yīng)用部署在云中

16.3 使用Knative部署Serverless應(yīng)用

16.3.1 搭建Knative平臺

16.3.2 使用Knative CLI部署應(yīng)用

16.3.3 使用Knative清單部署應(yīng)用

小結(jié)

附錄A 搭建開發(fā)環(huán)境

附錄B 使用DigitalOcean搭建生產(chǎn)環(huán)境的Kubernetes

















展開全部

云原生SPRING實(shí)戰(zhàn) SPRING BOOT與KUBERNETES實(shí)踐 作者簡介

托馬斯·維塔萊(Thomas Vitale)是一名軟件工程師和架構(gòu)師,專門構(gòu)建云原生、有韌性和安全的企業(yè)應(yīng)用。他在丹麥的Systematic公司設(shè)計和開發(fā)軟件解決方案,在那里他一直致力于為云原生領(lǐng)域提供現(xiàn)代化的平臺和應(yīng)用,專注于開發(fā)體驗(yàn)和安全性。 他主要關(guān)注的領(lǐng)域是Java、Spring Boot、Kubernetes、Knative和一般的云原生技術(shù)。托馬斯支持持續(xù)交付實(shí)踐,并相信協(xié)作的文化,致力于為用戶、消費(fèi)者和企業(yè)交付價值。他喜歡為Spring Security和Spring Cloud等開源項目作貢獻(xiàn),并與社區(qū)分享知識。 托馬斯擁有意大利都靈理工大學(xué)的計算機(jī)工程碩士學(xué)位,主要研究方向是軟件領(lǐng)域。他獲得CNCF Certified Kubernetes Application Developer、Pivotal Certified Spring Professional以及RedHat Certified Enterprise Appli- cation Developer認(rèn)證。他在各種活動中的演講主題涵蓋SpringOne、Spring I/O、KubeCon CloudNativeCon、Devoxx、GOTO、JBCNConf、DevTalks和J4K。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服