舉報

會員
云原生應用開發實戰:基于.NET開發框架及Kubernetes容器編排技術
最新章節:
封底
本書是一本介紹.NET云原生開發技術的實用教程,由多位微軟MVP聯合編寫,通過實際的項目代碼,從多個角度深入淺出地闡釋了云原生開發的理論和在實際開發中的應用。全書共11章,主要內容包括:迎接云原生的浪潮;配置.NET云原生開發與運行環境;云原生應用開發—電子商務應用eShopOnContainers;實現云原生應用的擴展性;實現云原生應用的通信;數據訪問模式;實現可恢復的彈性應用;實現云原生應用的身份管理;實現云原生應用的可觀察性;深入理解云原生、容器、微服務和DevOps:基于Dapr開發云原生應用。本書適合具有C#開發經驗的軟件工程師、軟件架構師,希望學習最新的.NET技術,完成云原生應用開發轉型的開發人員閱讀。對于希望從頭開始學習.NET技術和云原生開發的開發人員也是非常好的選擇。
- 封底 更新時間:2024-05-10 12:10:24
- 推薦閱讀
- 11.5 小結
- 11.4.3 eShopOnDapr效果演示
- 11.4.2 在Kubernetes上部署eShopOnDapr
- 11.4.1 eShopOnDapr架構
- 11.4 基于Dapr的eShopOnDapr介紹
- 11.3.2 Dapr在Kubernetes上的落地
- 11.3.1 微服務方法論與設計原則
- 11.3 基于Dapr的云原生開發
- 11.2.9 分布式鎖
- 11.2.8 配置管理
- 11.2.7 密鑰管理
- 11.2.6 可觀測性
- 11.2.5 Actor
- 11.2.4 服務綁定
- 11.2.3 發布與訂閱
- 11.2.2 服務調用
- 11.2.1 狀態管理
- 11.2 Dapr提供的構建塊
- 11.1.3 Dapr工具集介紹
- 11.1.2 安裝Dapr
- 11.1.1 技術架構
- 11.1 Dapr概覽
- 第11章 基于Dapr開發云原生應用
- 10.7 小結
- 10.6.2 動態環境部署實現方式
- 10.6.1 流程步驟說明
- 10.6 微服務發布流水線完整示例:FPR-CICD-Flow工作流程
- 10.5.3 在微服務開發中使用拉取請求(Pull Request)的方式管理代碼
- 10.5.2 Git分布式版本管理系統的作用
- 10.5.1 版本管理系統的作用
- 10.5 版本管理系統
- 10.4 DevOps實施落地的三步工作法
- 10.3.5 微服務是軟件研發解耦的終極形態
- 10.3.4 持續交付實施框架
- 10.3.3 軟件研發過程:管理屬性和工程屬性
- 10.3.2 傳統開發VS敏捷開發
- 10.3.1 敏捷讓我們重新定義管理
- 10.3 DevOps實施落地的兩大法寶
- 10.2 云原生和DevOps的多層含義
- 10.1.3 IaC的落地方法
- 10.1.2 IaC的實現原則
- 10.1.1 IaC的含義
- 10.1 基礎設施即代碼(IaC)
- 第10章 深入理解云原生、容器、微服務和器、微服務和DevOps
- 9.6 小結
- 9.5.5 在eShopOnContainers中應用OpenTelemetry
- 9.5.4 使用遙測數據
- 9.5.3 應用遙測收集器Otel Collector
- 9.5.2 使用遙測庫
- 9.5.1 OpenTelemetry的.NET支持
- 9.5 應用OpenTelemetry
- 9.4.6 啟用ELK日志管理
- 9.4.5 設置ELK環境
- 9.4.4 使用Kibana可視化數據
- 9.4.3 Elasticsearch
- 9.4.2 Logstash
- 9.4.1 ELK技術棧的優勢
- 9.4 使用ELK技術棧管理日志
- 9.3.4 使用Seq管理日志
- 9.3.3 配置Seq服務
- 9.3.2 配置Serilog輸出日志到seq
- 9.3.1 Seq的特色
- 9.3 使用Seq管理日志
- 9.2.3 集中式遙測管理
- 9.2.2 警報
- 9.2.1 監控
- 9.2 云原生應用中的遙測管理
- 9.1.3 鏈路追蹤Tracing
- 9.1.2 度量指標Metric
- 9.1.1 日志Log
- 9.1 可觀察性的概念
- 第9章 實現云原生應用的可觀察性
- 8.4 小結
- 8.3.3 保護購物車API
- 8.3.2 客戶端配置
- 8.3.1 服務器端配置
- 8.3 實戰演練:在eShopOnContainers中集成身份認證服務
- 8.2.3 IdentityServer對認證流的支持
- 8.2.2 創建認證服務器
- 8.2.1 IdentityServer的基本概念
- 8.2 基于IdentityServer4實現OpenID Connect
- 8.1.5 零信任網絡
- 8.1.4 認證過程的改進:PKCE
- 8.1.3 基于OpenID Connect的授權
- 8.1.2 基于OAuth標準的授權
- 8.1.1 基于票據(Ticket)的認證
- 8.1 云原生應用的認證與授權
- 第8章 實現云原生應用的身份管理
- 7.4 小結
- 7.3.2 實現基于Envoy的彈性通信
- 7.3.1 基于Polly實現彈性通信
- 7.3 實戰演練:在eShopOnContainers中實現彈性應用
- 7.2.3 服務網格
- 7.2.2 服務器端方案
- 7.2.1 客戶端方案
- 7.2 設計支持彈性的通信方案
- 7.1 應用程序的彈性模式
- 第7章 實現可恢復的彈性應用
- 6.5 小結
- 6.4.3 訂閱集成事件
- 6.4.2 發布基于事件日志表的分布式事務
- 6.4.1 實現簡化事件溯源模式的集成事件日志
- 6.4 實戰演練:實現eShopOnContainers中產品價格變更的最終一致性
- 6.3.2 云原生應用的緩存架構
- 6.3.1 應用緩存的原因
- 6.3 在云原生應用中應用緩存
- 6.2.3 NewSQL數據庫
- 6.2.2 關系型數據庫與NoSQL數據庫
- 6.2.1 CAP定理
- 6.2 關系型與非關系型數據庫
- 6.1.4 大規模數據訪問
- 6.1.3 數據完整性和分布式事務
- 6.1.2 跨微服務的查詢
- 6.1.1 微服務中對數據庫使用方式的變化
- 6.1 云原生應用中的數據訪問模式
- 第6章 數據訪問模式
- 5.8 小結
- 5.7.5 基于事件總線實現集成總線
- 5.7.4 基于RabbitMQ實現跨微服務的事件總線
- 5.7.3 實現基于MediatR的領域總線
- 5.7.2 實現BFF網關
- 5.7.1 實現基于Envoy的API網關
- 5.7 實戰演練:實現eShopOnContainers中的組件間通信
- 5.6 服務網格(Service Mesh)
- 5.5.5 在eShopOnContainers中實現gRPC支持
- 5.5.4 gRPC的使用場景
- 5.5.3 在.NET中應用gRPC
- 5.5.2 gRPC核心概念
- 5.5.1 gRPC的優勢
- 5.5 新一代通信協議gRPC
- 5.4.4 領域總線和集成總線
- 5.4.3 事件Event
- 5.4.2 命令Command
- 5.4.1 查詢Query
- 5.4 服務與服務之間的通信
- 5.3.2 實時通信
- 5.3.1 實現網關的選擇
- 5.3 前端應用的通信模式
- 5.2.3 Kubernetes環境下的服務注冊與發現
- 5.2.2 Docker Compose環境下的服務注冊與發現
- 5.2.1 微服務下的服務注冊和服務發現
- 5.2 服務注冊與服務發現
- 5.1 云原生應用通信的復雜性
- 第5章 實現云原生應用的通信
- 4.6 小結
- 4.5.4 構建Kubernetes部署文件
- 4.5.3 構建docker-compose.yaml
- 4.5.2 構建Dockerfile
- 4.5.1 購物車服務
- 4.5 容器與編排器實踐
- 4.4.3 使用環境變量
- 4.4.2 使用Kubernetes管理云原生應用
- 4.4.1 使用Docker compose管理云原生應用
- 4.4 擴展容器應用
- 4.3.3 構建ASP.NET Core Docker應用
- 4.3.2 構建ASP.NET Core應用
- 4.3.1 Dockerfile語法概要
- 4.3 Docker定義文件Dockerfile
- 4.2.3 創建私有鏡像倉庫
- 4.2.2 創建自定義的容器鏡像倉庫
- 4.2.1 Docker Hub
- 4.2 鏡像倉庫
- 4.1.4 開發中用到的Docker知識
- 4.1.3 Docker常用命令
- 4.1.2 什么是Docker
- 4.1.1 單體部署面臨的挑戰
- 4.1 容器化應用
- 第4章 實現云原生應用的擴展性
- 3.5 小結
- 3.4.4 單元測試和集成測試
- 3.4.3 領域驅動設計
- 3.4.2 源代碼介紹
- 3.4.1 項目架構
- 3.4 eShopOnContainers代碼組織
- 3.3.6 應用程序與微服務列表
- 3.3.5 訪問日志控制臺
- 3.3.4 訪問Swagger UI
- 3.3.3 訪問Android、iOS和Windows上的移動應用
- 3.3.2 訪問SPA Web應用
- 3.3.1 訪問MVC Web應用
- 3.3 訪問eShopOnContainers應用程序
- 3.2.4 注意事項
- 3.2.3 運行eShopOnContainers應用
- 3.2.2 構建eShop
- 3.2.1 了解docker-compose文件
- 3.2 運行eShopOnContainers應用
- 3.1.2 eShopOnContainers開發架構
- 3.1.1 功能需求
- 3.1 云原生應用eShopOnContainers功能概述
- 第3章 云原生應用開發——電子商務應用eShopOnContainers
- 2.7 小結
- 2.6 啟用Kubernetes
- 2.5.4 配置國內Docker環境
- 2.5.3 配置Docker Desktop
- 2.5.2 安裝Docker Desktop
- 2.5.1 安裝WSL 2
- 2.5 安裝Docker
- 2.4.2 安裝Visual Studio Code
- 2.4.1 安裝Visual Studio 2022
- 2.4 安裝Visual Studio 2022或Visual Studio Code
- 2.3.2 安裝.NET
- 2.3.1.NET版本選擇
- 2.3 安裝.NET
- 2.2.3 下載eShopOnContainers源代碼
- 2.2.2 配置Git
- 2.2.1 安裝Git
- 2.2 安裝與配置Git環境
- 2.1 系統要求
- 第2章 配置.NET云原生開發與運行環境
- 1.5 小結
- 1.4.4 開源
- 1.4.3 完全容器化支持
- 1.4.2 跨平臺
- 1.4.1 高性能
- 1.4 使用.NET技術開發云原生應用的優勢
- 1.3.4 持續交付
- 1.3.3 DevOps
- 1.3.2 微服務技術
- 1.3.1 容器化
- 1.3 云原生四大核心要素
- 1.2.12 Admin Processes(管理進程)
- 1.2.11 Logs(日志流)
- 1.2.10 Dev/Prod Parity(環境對等)
- 1.2.9 Disposability(易回收)
- 1.2.8 Concurrency(并發能力)
- 1.2.7 Port Binding(端口綁定)
- 1.2.6 Processes(無狀態服務進程)
- 1.2.5 Build Release Run(構建、發布、運行)
- 1.2.4 Backing services(支撐服務)
- 1.2.3 Configuration(配置)
- 1.2.2 Dependencies(依賴管理)
- 1.2.1 Codebase(單一代碼)
- 1.2 云原生設計的十二原則
- 1.1.4 云原生計算基金會CNCF
- 1.1.3 云原生應用的特性
- 1.1.2 從微服務到云原生
- 1.1.1 單體應用面臨的挑戰
- 1.1 撲面而來的云原生
- 第1章 迎接云原生的浪潮
- 前言
- 作者簡介
- 版權信息
- 封面
- 封面
- 版權信息
- 作者簡介
- 前言
- 第1章 迎接云原生的浪潮
- 1.1 撲面而來的云原生
- 1.1.1 單體應用面臨的挑戰
- 1.1.2 從微服務到云原生
- 1.1.3 云原生應用的特性
- 1.1.4 云原生計算基金會CNCF
- 1.2 云原生設計的十二原則
- 1.2.1 Codebase(單一代碼)
- 1.2.2 Dependencies(依賴管理)
- 1.2.3 Configuration(配置)
- 1.2.4 Backing services(支撐服務)
- 1.2.5 Build Release Run(構建、發布、運行)
- 1.2.6 Processes(無狀態服務進程)
- 1.2.7 Port Binding(端口綁定)
- 1.2.8 Concurrency(并發能力)
- 1.2.9 Disposability(易回收)
- 1.2.10 Dev/Prod Parity(環境對等)
- 1.2.11 Logs(日志流)
- 1.2.12 Admin Processes(管理進程)
- 1.3 云原生四大核心要素
- 1.3.1 容器化
- 1.3.2 微服務技術
- 1.3.3 DevOps
- 1.3.4 持續交付
- 1.4 使用.NET技術開發云原生應用的優勢
- 1.4.1 高性能
- 1.4.2 跨平臺
- 1.4.3 完全容器化支持
- 1.4.4 開源
- 1.5 小結
- 第2章 配置.NET云原生開發與運行環境
- 2.1 系統要求
- 2.2 安裝與配置Git環境
- 2.2.1 安裝Git
- 2.2.2 配置Git
- 2.2.3 下載eShopOnContainers源代碼
- 2.3 安裝.NET
- 2.3.1.NET版本選擇
- 2.3.2 安裝.NET
- 2.4 安裝Visual Studio 2022或Visual Studio Code
- 2.4.1 安裝Visual Studio 2022
- 2.4.2 安裝Visual Studio Code
- 2.5 安裝Docker
- 2.5.1 安裝WSL 2
- 2.5.2 安裝Docker Desktop
- 2.5.3 配置Docker Desktop
- 2.5.4 配置國內Docker環境
- 2.6 啟用Kubernetes
- 2.7 小結
- 第3章 云原生應用開發——電子商務應用eShopOnContainers
- 3.1 云原生應用eShopOnContainers功能概述
- 3.1.1 功能需求
- 3.1.2 eShopOnContainers開發架構
- 3.2 運行eShopOnContainers應用
- 3.2.1 了解docker-compose文件
- 3.2.2 構建eShop
- 3.2.3 運行eShopOnContainers應用
- 3.2.4 注意事項
- 3.3 訪問eShopOnContainers應用程序
- 3.3.1 訪問MVC Web應用
- 3.3.2 訪問SPA Web應用
- 3.3.3 訪問Android、iOS和Windows上的移動應用
- 3.3.4 訪問Swagger UI
- 3.3.5 訪問日志控制臺
- 3.3.6 應用程序與微服務列表
- 3.4 eShopOnContainers代碼組織
- 3.4.1 項目架構
- 3.4.2 源代碼介紹
- 3.4.3 領域驅動設計
- 3.4.4 單元測試和集成測試
- 3.5 小結
- 第4章 實現云原生應用的擴展性
- 4.1 容器化應用
- 4.1.1 單體部署面臨的挑戰
- 4.1.2 什么是Docker
- 4.1.3 Docker常用命令
- 4.1.4 開發中用到的Docker知識
- 4.2 鏡像倉庫
- 4.2.1 Docker Hub
- 4.2.2 創建自定義的容器鏡像倉庫
- 4.2.3 創建私有鏡像倉庫
- 4.3 Docker定義文件Dockerfile
- 4.3.1 Dockerfile語法概要
- 4.3.2 構建ASP.NET Core應用
- 4.3.3 構建ASP.NET Core Docker應用
- 4.4 擴展容器應用
- 4.4.1 使用Docker compose管理云原生應用
- 4.4.2 使用Kubernetes管理云原生應用
- 4.4.3 使用環境變量
- 4.5 容器與編排器實踐
- 4.5.1 購物車服務
- 4.5.2 構建Dockerfile
- 4.5.3 構建docker-compose.yaml
- 4.5.4 構建Kubernetes部署文件
- 4.6 小結
- 第5章 實現云原生應用的通信
- 5.1 云原生應用通信的復雜性
- 5.2 服務注冊與服務發現
- 5.2.1 微服務下的服務注冊和服務發現
- 5.2.2 Docker Compose環境下的服務注冊與發現
- 5.2.3 Kubernetes環境下的服務注冊與發現
- 5.3 前端應用的通信模式
- 5.3.1 實現網關的選擇
- 5.3.2 實時通信
- 5.4 服務與服務之間的通信
- 5.4.1 查詢Query
- 5.4.2 命令Command
- 5.4.3 事件Event
- 5.4.4 領域總線和集成總線
- 5.5 新一代通信協議gRPC
- 5.5.1 gRPC的優勢
- 5.5.2 gRPC核心概念
- 5.5.3 在.NET中應用gRPC
- 5.5.4 gRPC的使用場景
- 5.5.5 在eShopOnContainers中實現gRPC支持
- 5.6 服務網格(Service Mesh)
- 5.7 實戰演練:實現eShopOnContainers中的組件間通信
- 5.7.1 實現基于Envoy的API網關
- 5.7.2 實現BFF網關
- 5.7.3 實現基于MediatR的領域總線
- 5.7.4 基于RabbitMQ實現跨微服務的事件總線
- 5.7.5 基于事件總線實現集成總線
- 5.8 小結
- 第6章 數據訪問模式
- 6.1 云原生應用中的數據訪問模式
- 6.1.1 微服務中對數據庫使用方式的變化
- 6.1.2 跨微服務的查詢
- 6.1.3 數據完整性和分布式事務
- 6.1.4 大規模數據訪問
- 6.2 關系型與非關系型數據庫
- 6.2.1 CAP定理
- 6.2.2 關系型數據庫與NoSQL數據庫
- 6.2.3 NewSQL數據庫
- 6.3 在云原生應用中應用緩存
- 6.3.1 應用緩存的原因
- 6.3.2 云原生應用的緩存架構
- 6.4 實戰演練:實現eShopOnContainers中產品價格變更的最終一致性
- 6.4.1 實現簡化事件溯源模式的集成事件日志
- 6.4.2 發布基于事件日志表的分布式事務
- 6.4.3 訂閱集成事件
- 6.5 小結
- 第7章 實現可恢復的彈性應用
- 7.1 應用程序的彈性模式
- 7.2 設計支持彈性的通信方案
- 7.2.1 客戶端方案
- 7.2.2 服務器端方案
- 7.2.3 服務網格
- 7.3 實戰演練:在eShopOnContainers中實現彈性應用
- 7.3.1 基于Polly實現彈性通信
- 7.3.2 實現基于Envoy的彈性通信
- 7.4 小結
- 第8章 實現云原生應用的身份管理
- 8.1 云原生應用的認證與授權
- 8.1.1 基于票據(Ticket)的認證
- 8.1.2 基于OAuth標準的授權
- 8.1.3 基于OpenID Connect的授權
- 8.1.4 認證過程的改進:PKCE
- 8.1.5 零信任網絡
- 8.2 基于IdentityServer4實現OpenID Connect
- 8.2.1 IdentityServer的基本概念
- 8.2.2 創建認證服務器
- 8.2.3 IdentityServer對認證流的支持
- 8.3 實戰演練:在eShopOnContainers中集成身份認證服務
- 8.3.1 服務器端配置
- 8.3.2 客戶端配置
- 8.3.3 保護購物車API
- 8.4 小結
- 第9章 實現云原生應用的可觀察性
- 9.1 可觀察性的概念
- 9.1.1 日志Log
- 9.1.2 度量指標Metric
- 9.1.3 鏈路追蹤Tracing
- 9.2 云原生應用中的遙測管理
- 9.2.1 監控
- 9.2.2 警報
- 9.2.3 集中式遙測管理
- 9.3 使用Seq管理日志
- 9.3.1 Seq的特色
- 9.3.2 配置Serilog輸出日志到seq
- 9.3.3 配置Seq服務
- 9.3.4 使用Seq管理日志
- 9.4 使用ELK技術棧管理日志
- 9.4.1 ELK技術棧的優勢
- 9.4.2 Logstash
- 9.4.3 Elasticsearch
- 9.4.4 使用Kibana可視化數據
- 9.4.5 設置ELK環境
- 9.4.6 啟用ELK日志管理
- 9.5 應用OpenTelemetry
- 9.5.1 OpenTelemetry的.NET支持
- 9.5.2 使用遙測庫
- 9.5.3 應用遙測收集器Otel Collector
- 9.5.4 使用遙測數據
- 9.5.5 在eShopOnContainers中應用OpenTelemetry
- 9.6 小結
- 第10章 深入理解云原生、容器、微服務和器、微服務和DevOps
- 10.1 基礎設施即代碼(IaC)
- 10.1.1 IaC的含義
- 10.1.2 IaC的實現原則
- 10.1.3 IaC的落地方法
- 10.2 云原生和DevOps的多層含義
- 10.3 DevOps實施落地的兩大法寶
- 10.3.1 敏捷讓我們重新定義管理
- 10.3.2 傳統開發VS敏捷開發
- 10.3.3 軟件研發過程:管理屬性和工程屬性
- 10.3.4 持續交付實施框架
- 10.3.5 微服務是軟件研發解耦的終極形態
- 10.4 DevOps實施落地的三步工作法
- 10.5 版本管理系統
- 10.5.1 版本管理系統的作用
- 10.5.2 Git分布式版本管理系統的作用
- 10.5.3 在微服務開發中使用拉取請求(Pull Request)的方式管理代碼
- 10.6 微服務發布流水線完整示例:FPR-CICD-Flow工作流程
- 10.6.1 流程步驟說明
- 10.6.2 動態環境部署實現方式
- 10.7 小結
- 第11章 基于Dapr開發云原生應用
- 11.1 Dapr概覽
- 11.1.1 技術架構
- 11.1.2 安裝Dapr
- 11.1.3 Dapr工具集介紹
- 11.2 Dapr提供的構建塊
- 11.2.1 狀態管理
- 11.2.2 服務調用
- 11.2.3 發布與訂閱
- 11.2.4 服務綁定
- 11.2.5 Actor
- 11.2.6 可觀測性
- 11.2.7 密鑰管理
- 11.2.8 配置管理
- 11.2.9 分布式鎖
- 11.3 基于Dapr的云原生開發
- 11.3.1 微服務方法論與設計原則
- 11.3.2 Dapr在Kubernetes上的落地
- 11.4 基于Dapr的eShopOnDapr介紹
- 11.4.1 eShopOnDapr架構
- 11.4.2 在Kubernetes上部署eShopOnDapr
- 11.4.3 eShopOnDapr效果演示
- 11.5 小結
- 推薦閱讀
- 封底 更新時間:2024-05-10 12:10:24