ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务

ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务
作 者: 凯文·霍夫曼
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Kevin Hoffman 向客户传授使用的云原生模式、实践和技术对企业级应用进行迁移和现代化改造以使它们适应云环境的方法。Kevin在计算机编程方面撰写了十几部著作,时常参加各种用户组和峰会。

内容简介

■ 领会测试驱动、API 优先的开发理念■ 通过创建和消费后端服务(如数据库和队列)与其他服务交互■ 构建依赖于外部数据源的微服务■ 学习事件溯源(以事件为中心的持久化方法)■ 使用 ASP.NET Core 开发适合部署在云环境的 Web 应用■ 开发一个消费其他服务或被其他服务消费的微服务■ 创建可接受外部配置的服务和应用■ 探索用于保护ASP.NET Core 微服务和应用的方法

图书目录

目 录

第1章 ASP.NET Core基础 1

1.1 核心概念 1

1.1.1 CoreCLR 1

1.1.2 CoreFX 2

1.1.3 .NET Platform Standard 3

1.1.4 ASP.NET Core 3

1.2 安装 .NET Core 4

1.3 开发控制台应用 5

1.4 开发个 ASP.NET Core 应用 8

1.4.1 向项目添加 ASP.NET 包 8

1.4.2 添加 Kestrel 服务器 9

1.4.3 添加启动类和中间件 10

1.4.4 运行应用 12

1.5 本章小结 12

第2章 持续交付 15

2.1 Docker 简介 15

2.1.1 安装 Docker 16

2.1.2 运行 Docker 镜像 16

2.2 使用 Wercker 持续集成 18

2.3 用 Wercker 构建服务 18

2.3.1 安装 Wercker 命令行工具 19

2.3.2 添加wercker.yml配置文件 20

2.3.3 运行 Wercker 构建 22

2.4 使用 CircleCI 持续集成 22

2.5 部署到 docker hub 24

2.6 本章小结 25

第3章 使用ASP.NET Core开发微服务 27

3.1 微服务的定义 27

3.2 团队服务简介 28

3.3 API优先的开发方式 29

3.3.1 为什么要用 API 优先 29

3.3.2 团队服务的 API 30

3.4 以测试优先的方式开发控制器 31

3.4.1 注入一个模拟的仓储 38

3.4.2 完成单元测试套件 40

3.5 创建持续集成流水线 42

3.6 集成测试 43

3.7 运行团队服务的 Docker 镜像 46

3.8 本章小结 47

第4章 后端服务 49

4.1 微服务生态系统 49

4.1.1 资源绑定 51

4.1.2 服务间模型共用的策略 51

4.2 开发位置服务 53

4.3 优化团队服务 56

4.3.1 使用环境变量配置服务的URL 56

4.3.2 消费RESTful服务 57

4.3.3 运行服务 59

4.4 本章小结 62

第5章 创建数据服务 63

5.1 选择一种数据存储 63

5.2 构建Postgres仓储 64

5.2.1 创建数据库上下文 65

5.2.2 实现位置记录仓储接口 66

5.2.3 用EF Core内存提供程序进行测试 68

5.3 数据库是一种后端服务 68

5.4 对真实仓储进行集成测试 71

5.5 试运行数据服务 73

5.6 本章小结 76

第6章 事件溯源与CQRS 77

6.1 事件溯源简介 77

6.1.1 事实由事件溯源而来 78

6.1.2 事件溯源的定义 78

6.1.3 拥抱终一致性 79

6.2 CQRS模式 80

6.3 事件溯源与CQRS实战——附近的团队成员 82

6.3.1 位置报送服务 83

6.3.2 事件处理器 92

6.3.3 事实服务 98

6.3.4 位置接近监控器 99

6.4 运行示例项目 99

6.4.1 启动服务 100

6.4.2 提交示例数据 101

6.5 本章小结 103

第7章 开发ASP.NET Core Web应用 105

7.1 ASP.NET Core基础 105

7.1.1 添加 ASP.NET MVC 中间件 108

7.1.2 添加控制器 109

7.1.3 添加模型 110

7.1.4 添加视图 110

7.1.5 从JavaScript中调用REST API 112

7.2 开发云原生 Web 应用 115

7.2.1 API 优先 116

7.2.2 配置 116

7.2.3 日志 116

7.2.4 会话状态 117

7.2.5 数据保护 117

7.2.6 后端服务 118

7.2.7 环境均等 118

7.2.8 端口绑定 119

7.2.9 遥测 119

7.2.10 身份验证和授权 119

7.3 本章小结 120

第8章 服务发现 121

8.1 回顾云原生特性 121

8.1.1 配置外置 121

8.1.2 后端服务 122

8.2 Netflix Eureka简介 123

8.3 发现和广播ASP.NET Core服务 125

8.3.1 服务注册 126

8.3.2 发现并消费服务 127

8.4 DNS以及由平台支持的服务发现 130

8.5 本章小结 131

第9章 微服务系统的配置 133

9.1 在 Docker中使用环境变量 134

9.2 使用Spring Cloud配置服务器 135

9.3 使用etcd 配置微服务 138

9.4 本章小结 144

第10章 应用和微服务安全 145

10.1 云环境中的安全 145

10.1.1 内网应用 145

10.1.2 Cookie和Forms身份验证 146

10.1.3 云环境中的应用内加密 146

10.1.4 Bearer令牌 147

10.2 ASP.NET Core Web应用安全 148

10.2.1 OpenID Connect基础 148

10.2.2 使用OIDC保障ASP.NET Core应用的安全 150

10.2.3 OIDC中间件和云原生 157

10.3 保障ASP.NET Core微服务的安全 158

10.3.1 使用完整OIDC安全流程保障服务的安全 159

10.3.2 使用客户端凭据保障服务的安全 160

10.3.3 使用Bearer令牌保障服务的安全 160

10.4 本章小结 164

第11章 开发实时应用和服务 165

11.1 实时应用的定义 165

11.2 云环境中的 WebSocket 166

11.2.1 WebSocket 协议 167

11.2.2 部署模式 167

11.3 使用云消息服务 168

11.4 开发位置接近监控服务 169

11.4.1 创建接近监控服务 169

11.4.2 为实时接近监控服务创建界面 178

11.5 本章小结 179

第12章 设计汇总 181

12.1 识别并解决反模式 181

12.2 继续辩论组合式微服务 184

12.2.1 使用断路器缓解风险 185

12.2.2 消除同步的组合模式 187

12.3 接下来,还要做什么? 188