成功加入购物车

去购物车结算 X
教育社科专营店
  • 微服务云原生开发实践:基于Docker、Kubernetes、GitHub Actions、Terraform(第2版)
图文详情

微服务云原生开发实践:基于Docker、Kubernetes、GitHub Actions、Terraform(第2版)

举报

正版全新

  • 出版时间: 
  • 装帧:    其他
  • ISBN:  9787302705222
  • 出版时间: 
  • 装帧:  其他

售价 105.15 7.6折

定价 ¥139.00 

品相 全新

优惠 满减券
    发货
    承诺48小时内发货
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2026-06-16

    数量
    库存11
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    五年老店
    店铺等级
    资质认证
    90天平均
    成功完成
    77.78% (20笔)
    好评率
    100%
    发货时间
    7.04小时
    地址
    浙江省杭州市滨江区
    • 商品详情
    • 店铺评价
    立即购买 加入购物车 收藏
    手机购买
    微信扫码访问
    • 商品分类:
      计算机与互联网
      货号:
      5039099
      商品描述:
      【书    名】 微服务云原生开发实践:基于Docker、Kubernetes、GitHub Actions、Terraform(第2版)
      【书    号】 9787302705222
      【出 版 社】 清华大学出版社
      【出版日期】 2025-12-01
      【定    价】 139.00元

      【编辑推荐】 
      《微服务云原生开发实践:基于Docker、Kubernetes、GitHubActions、Terraform(第2版)》教你落地微服务与云原生的实战宝典!从架构设计到部署运维,吃透Docker、Kubernetes、Terraform核心工具,掌握CI/CD与IaC全流程,助开发者、架构师高效构建可靠云原生应用

      【内容简介】 
      《微服务云原生开发实践:基于Docker、Kubernetes、GitHubActions、Terraform(第2版)》是全面深入探讨微服务架构和云原生技术的实践指南,通过丰富的实例和深入的讲解,旨在帮助读者掌握微服务架构的核心技术和*佳实践,从而在实际工作中能够更加高效地开发和管理微服务应用。本书从微服务的基本概念出发,逐步引导读者理解微服务架构的优势、挑战及设计原则,并通过一系列实用的工具和框架,如Node.js、Docker、Kubernetes、Terraform和GitHubActions等,详细介绍了如何在云环境中创建、部署和管理微服务。本书不仅提供了理论知识,还注重实践操作,每个章节都配有实际案例和示例代码,帮助读者更好地理解和应用微服务架构。本书覆盖了开发过程涉及的工具链,包括代码管理、容器化、持续集成/持续部署(CI/CD)、基础设施即代码(IaC)等。此外,本书详细介绍了如何在云环境中利用Docker、Kubernetes等工具进行微服务的部署和管理,以及如何使用Terraform进行基础设施的自动化管理。本书还探讨了微服务的自动化测试、监控和日志管理,以及如何确保微服务的健康和可靠性。

      【目录】 
      目录

      第 1 章 为什么选择微服务 1

      1.1 本书的实用性 2

      1.2 你将学到什么 4

      1.3 你需要知道什么 5

      1.4 管理复杂性 6

      1.5 什么是微服务 7

      1.6 什么是微服务应用程序 8

      1.7 单体架构的问题是什么 9

      1.8 为什么微服务如此受欢迎 12

      1.9 微服务的优势 12

      1.10 微服务的挑战 14

      1.10.1 较高的技术技能需求 14

      1.10.2 分布式应用程序构建的复杂性 14

      1.10.3 微服务的扩展性挑战 15

      1.10.4 对复杂性的普遍恐惧 15

      1.10.5 提前应对挑战 15

      1.11 现代微服务工具 16

      1.12 不只是微服务 17

      1.13 可能性范围 17

      1.14 设计微服务应用程序 18

      1.14.1 软件设计 19

      1.14.2 设计原则 19

      1.14.3 领域驱动设计 19

      1.14.4 不要重复自己 20

      1.14.5 服务的适当规模 21

      1.14.6 深入了解设计知识 21

      1.15 示例应用程序 22

      1.16 总结 23

      第 2 章 创建微服务 24

      2.1 新工具介绍 25

      2.2 获取代码 26

      2.3 选择 Node.js 的理由 26

      2.4 我们的开发哲学 28

      2.5 构建单服务开发环境 30

      2.5.1 安装 Git 31

      2.5.2 克隆代码库 33

      2.5.3 获取 VS Code 33

      2.5.4 安装 Node.js 34

      2.6 构建一个用于视频流的 HTTP 服务器 35

      2.6.1 创建一个 Node.js 项目 36

      2.6.2 安装 Express 39

      2.6.3 创建 Express 框架 42

      2.6.4 运行简单的 Web 服务器 43

      2.6.5 运行基础 Web 服务器 44

      2.6.6 添加视频流功能 44

      2.6.7 配置我们的微服务 47

      2.6.8 设置生产环境 49

      2.6.9 实时重新加载以实现快速迭代 51

      2.6.10 运行本章的完整代码 54

      2.7 Node.js 回顾 55

      2.8 继续学习 55

      2.9 总结 56

      第 3 章 发布微服务 57

      3.1 Docker:一种新工具 58

      3.2 获取代码 58

      3.3 容器是什么 59

      3.4 什么是镜像 60

      3.5 为什么选择 Docker 61

      3.6 为何选择使用 Docker 61

      3.7 在开发环境中整合 Docker 62

      3.7.1 安装 Docker 63

      3.7.2 检查 Docker 安装情况 64

      3.8 打包微服务 64

      3.8.1 创建 Dockerfile 65

      3.8.2 打包并检查 Docker 镜像 67

      3.8.3 在容器中启动微服务 70

      3.8.4 调试容器 73

      3.8.5 停止容器 73

      3.9 发布微服务 74

      3.9.1 创建私有容器仓库 75

      3.9.2 将微服务推送到仓库 80

      3.9.3 从仓库启动微服务 83

      3.9.4 删除你的容器仓库 86

      3.10 Docker 回顾 87

      3.11 继续学习 88

      3.12 总结 89

      第 4 章 微服务的数据管理 90

      4.1 新工具 91

      4.2 获取代码 91

      4.3 使用 Docker Compose 开发微服务 92

      4.3.1 为什么选择 Docker Compose 93

      4.3.2 创建我们的 Docker Compose 文件 94

      4.3.3 启动我们的微服务应用程序 96

      4.3.5 关闭应用程序 97

      4.3.6 为什么用 Docker Compose 进行开发,而不用于生产 99

      4.4 为应用程序添加文件存储 99

      4.4.1 使用 Azure Storage 100

      4.4.2 更新视频流微服务 108

      4.4.3 将新微服务添加到 Docker Compose 文件 110

      4.4.4 测试更新后的应用程序 112

      4.4.5 云存储与集群存储 114

      4.4.6 我们实现了什么 114

      4.5 向应用程序添加数据库 115

      4.5.1 为什么选择 MongoDB 116

      4.5.2 在开发中集成数据库服务器 116

      4.5.3 在生产环境中部署数据库服务器 121

      4.5.4 每个微服务用一个数据库还是整个应用用一个数据库 121

      4.5.5 我们实现了什么 122

      4.6 Docker Compose 回顾 122

      4.7 深入拓展你的学习 123

      4.8 总结 124

      第 5 章 微服务间的通信 126

      5.1 新工具与熟悉的工具 127

      5.2 让我们的微服务开始对话 127

      5.3 介绍历史微服务 129

      5.4 快速迭代的实时重载 130

      5.4.1 创建历史微服务的框架 131

      5.4.2 增强微服务以支持实时重载 132

      5.4.3 区分开发和生产的 Dockerfile 133

      5.4.4 更新 Docker Compose 文件以支持实时重载 135

      5.4.5 尝试实时重载 137

      5.4.6 在开发环境中测试生产模式 138

      5.4.7 我们已经实现了什么 139

      5.5 微服务之间的通信方式 140

      5.5.1 直接消息传递 140

      5.5.2 间接消息传递 141

      5.6 使用 HTTP 进行直接消息传递 142

      5.6.1 为什么选择 HTTP 143

      5.6.2 直接针对特定微服务发送消息 143

      5.6.3 使用 HTTP POST 发送消息 144

      5.6.4 使用 HTTP POST 接收消息 145

      5.6.5 测试更新后的应用程序 146

      5.6.6 通过直接消息协调行为 147

      5.6.7 我们实现了什么 148

      5.7 使用 RabbitMQ 进行间接消息传递 148

      5.7.1 为什么选择 RabbitMQ 149

      5.7.2 间接定位消息到微服务 149

      5.7.3 创建一个 RabbitMQ 服务器 151

      5.7.4 调查 RabbitMQ 仪表板 152

      5.7.5 将我们的微服务连接到消息队列 153

      5.7.6 多接收者消息 156

      5.7.7 接收多接收者消息 157

      5.7.8 发送多接收者消息 158

      5.7.9 测试多接收者消息 159

      5.7.10 通过间接消息实现复杂行为 159

      5.7.11 我们实现了什么 161

      5.8 微服务通信总结 161

      5.9 继续学习 162

      5.10 总结 162

      第 6 章 走向生产 164

      6.1 新工具介绍 165

      6.2 代码获取 165

      6.3 进入生产环境 166

      6.4 在 Kubernetes 上托管微服务 166

      6.4.1 为何选择 Kubernetes 168

      6.4.2 Pod、节点和容器 169

      6.4.3 Pod、部署和服务 170

      6.5 启用你的本地 Kubernetes 实例 171

      6.6 安装 Kubernetes 命令行工具 173

      6.7 项目结构详解 174

      6.8 部署到本地 Kubernetes 实例 175

      6.8.1 构建微服务镜像 175

      6.8.2 暂时无需容器仓库 176

      6.8.3 创建部署到本地 Kubernetes 实例的配置 176

      6.8.4 配置 kubectl 连接到本地 Kubernetes 179

      6.8.5 部署微服务到本地 Kubernetes 180

      6.8.6 测试已部署的微服务 182

      6.8.7 删除部署 182

      6.8.8 为什么在开发中不使用本地 Kubernetes 183

      6.8.9 我们已经完成了什么 183

      6.9 在 Azure 中创建托管 Kubernetes 集群 184

      6.10 使用 Azure CLI 187

      6.10.1 安装 Azure CLI 187

      6.10.2 认证 Azure CLI 188

      6.10.3 将 kubectl 连接至 Kubernetes 189

      6.11 部署到生产集群 190

      6.11.1 设置容器注册中心 190

      6.11.2 发布镜像到容器注册中心 190

      6.11.3 将容器注册中心与 Kubernetes 集群关联 191

      6.11.4 创建部署到生产 Kubernetes 的配置 192

      6.11.5 部署微服务到 Kubernetes 194

      6.11.6 测试已部署的微服务 194

      6.11.7 删除部署 196

      6.11.8 销毁基础设施 196

      6.11.9 我们取得的成就 196

      6.12 Azure CLI 工具回顾 197

      6.13 Kubectl 回顾 197

      6.14 继续学习 198

      6.15 总结 199

      第 7 章 基础设施即代码 201

      7.1 新工具介绍 202

      7.2 获取代码 202

      7.3 基础设施原型化 202

      7.4 基础设施即代码 203

      7.5 使用你的 Azure 账户认证 204

      7.6 选择 Kubernetes 的合适版本 204

      7.7 使用 Terraform 创建基础设施 205

      7.7.1 为什么选择 Terraform 206

      7.7.2 安装 Terraform 207

      7.7.3 设置 Terraform 项目 207

      7.8 创建 Azure 资源组 208

      7.8.1 使用 Terraform 的演化架构 209

      7.8.2 编写基础设施创建脚本 210

      7.8.3 固定提供者版本号 210

      7.8.4 初始化 Terraform 211

      7.8.5 Terraform 初始化的副产品 212

      7.8.6 构建你的基础设施 213

      7.8.7 理解 Terraform 状态 214

      7.8.8 销毁和重建我们的基础设施 217

      7.8.9 我们达到了什么成就 219

      7.9 创建我们的容器仓库 219

      7.9.1 继续我们的基础设施演化 220

      7.9.2 创建容器仓库 220

      7.9.3 Terraform 输出 221

      7.9.4 从 Terraform 输出敏感值 222

      7.9.5 不要输出敏感值 223

      7.9.6 获取容器仓库的详细信息 223

      7.9.7 我们达成了什么目标 224

      7.10 重构以共享配置数据 224

      7.10.1 继续我们的基础设施演化 224

      7.10.2 引入 Terraform 变量 224

      7.11 创建我们的 Kubernetes 集群 226

      7.11.1 编写创建集群的脚本 226

      7.11.2 将仓库附加到集群 227

      7.11.3 构建我们的集群 228

      7.11.4 我们达到了什么成就 228

      7.12 部署到我们的集群 229

      7.13 销毁我们的基础设施 230

      7.14 Terraform 回顾 231

      7.15 继续学习 231

      7.16 总结 232

      第 8 章 持续部署 233

      8.1 新工具 234

      8.2 获取代码 234

      8.3 在本章运行示例 234

      8.4 什么是持续集成 236

      8.5 持续部署简介 237

      8.6 自动化部署的优势 239

      8.7 初探 GitHub Actions 自动化 240

      8.7.1 为何选用 GitHub Actions 240

      8.7.2 工作流是什么 240

      8.7.3 创建新的工作流 241

      8.7.4 示例 1 概述 243

      8.7.5 “Hello World”shell 脚本 243

      8.7.6 “Hello World”工作流 244

      8.7.7 内联调用命令 245

      8.7.8 触发工作流的代码更改 246

      8.7.9 查看工作流历史 246

      8.7.10 通过 UI 触发工作流 248

      8.7.11 我们实现了什么 248

      8.8 实施持续集成 249

      8.8.1 示例 2 概述 249

      8.8.2 自动化测试的工作流 250

      8.8.3 我们实现了什么 251

      8.9 持续部署微服务 252

      8.9.1 示例 3 概述 252

      8.9.2 模板化部署配置 253

      8.9.3 先于自动化部署的手动部署 255

      8.9.4 自动化部署流程 258

      8.9.5 验证部署结果 259

      8.9.6 安装和配置 kubectl 260

      8.9.7 从 GitHub Secrets 提取环境变量 260

      8.9.8 使用 GitHub 上下文变量 261

      8.9.9 设置 GitHub Secrets 261

      8.9.10 调试你的部署流程 263

      8.9.11 直接部署到生产环境的风险 264

      8.9.12 我们实现了什么 265

      8.10 继续学习 265

      8.11 总结 266

      第 9 章 微服务的自动化测试 267

      9.1 新工具 268

      9.2 获取代码 268

      9.3 微服务的测试 269

      9.4 自动化测试 269

      9.5 使用 Jest 进行自动化测试 272

      9.5.1 为什么选择 Jest 272

      9.5.2 设置 Jest 273

      9.5.3 要测试的数学库 275

      9.5.4 我们的第*个 Jest 测试 275

      9.5.5 运行我们的第*个测试 276

      9.5.6 使用 Jest 的实时重新加载 277

      9.5.7 解释测试失败 277

      9.5.8 通过 npm 调用 Jest 279

      9.5.9 充实我们的测试套件 280

      9.5.10 使用 Jest 进行模拟 281

      9.5.11 我们实现了什么 283

      9.6 微服务的单元测试 283

      9.6.1 元数据微服务 285

      9.6.2 使用 Jest 创建单元测试 287

      9.6.3 执行测试 290

      9.6.4 我们实现了什么 291

      9.7 集成测试 291

      9.7.1 待测试的代码 292

      9.7.2 启动 MongoDB 数据库 292

      9.7.3 加载数据库固件 293

      9.7.4 使用 Jest 创建集成测试 294

      9.7.5 执行测试 297

      9.7.6 我们实现了什么 298

      9.8 端到端测试 298

      9.8.1 为什么选择 Playwright 299

      9.8.2 安装 Playwright 300

      9.8.3 设置数据库固件 302

      9.8.4 启动应用程序 305

      9.8.5 使用 Playwright 编写端到端测试 305

      9.8.6 使用 npm 运行 Playwright 308

      9.8.7 我们达到了什么成就 309

      9.9 自动化测试在 CI/CD 流程中的应用 310

      9.10 测试概述 311

      9.11 继续学习 311

      9.12 总结 312

      第 10 章 部署 FlixTube 314

      10.1 熟悉的工具 315

      10.2 获取代码 315

      10.3 重温基本技能 316

      10.4 FlixTube 概述 317

      10.4.1 FlixTube 微服务概览 317

      10.4.2 微服务项目结构 319

      10.4.3 FlixTube 单一代码库 319

      10.5 在开发环境中运行 FlixTube 321

      10.5.1 启动单个微服务 321

      10.5.2 启动整个 FlixTube 应用程序 323

      10.6 在开发环境中测试 FlixTube 324

      10.6.1 使用 Jest 对微服务进行测试 325

      10.6.2 使用 Playwright 对应用程序进行测试 326

      10.7 FlixTube 深入探讨 327

      10.7.1 数据库夹具的应用 327

      10.7.2 模拟存储微服务 329

      10.7.3 网关 333

      10.7.4 FlixTube 用户界面 334

      10.7.5 视频流 337

      10.7.6 视频上传 339

      10.8 在本地 Kubernetes 部署 FlixTube 343

      10.8.1 本地部署的前提条件 345

      10.8.2 本地部署操作 345

      10.8.3 测试本地部署 345

      10.8.4 删除本地部署 346

      10.9 手动将 FlixTube 部署到生产环境 346

      10.9.1 生产部署的前提条件 347

      10.9.2 生产部署 348

      10.9.3 测试生产部署 349

      10.9.4 清理生产环境部署 349

      10.10 持续部署到生产环境 349

      10.10.1 持续部署的前提条件 350

      10.10.2 设置你自己的代码库 350

      10.10.3 部署基础设施 351

      10.10.4 每个微服务一个 CD 管道 351

      10.10.5 测试 CD 管道 353

      10.11 FlixTube 的未来 354

      10.12 继续学习 355

      10.13 总结 356

      第 11 章 健康的微服务 358

      11.1 维护微服务的健康 359

      11.2 监控与管理微服务 360

      11.2.1 日志记录的开发实践 360

      11.2.2 错误处理 362

      11.2.3 利用 Docker Compose 进行日志管理 365

      11.2.4 在 Kubernetes 中进行基础日志记录 366

      11.2.5 Kubernetes 日志聚合 369

      11.2.6 企业级日志记录、监控和警报系统 370

      11.2.7 微服务的可观测性 371

      11.2.8 利用 Kubernetes 健康检查自动重启微服务 372

      11.3 调试微服务 374

      11.3.1 调试过程 374

      11.3.2 在生产环境中调试微服务 379

      11.4 可靠性与恢复 382

      11.4.1 实施防御性编程 382

      11.4.2 实施防御性测试 382

      11.4.3 保护我们的数据 383

      11.4.4 实现复制和冗余 383

      11.4.5 故障隔离与优雅降级 385

      11.4.6 实现容错的基本技巧 386

      11.4.7 高级容错技术 389

      11.5 深入学习 391

      11.6 总结 392

      第 12 章 可扩展性的途径 394

      12.1 我们的未来是可扩展的 395

      12.2 扩展开发过程 395

      12.2.1 多个团队的扩展 396

      12.2.2 独立的代码仓库 397

      12.2.3 分离代码仓库 399

      12.2.4 元仓库 400

      12.2.5 创建多个环境 402

      12.2.6 生产工作流 404

      12.2.7 将应用配置与微服务配置分离 406

      12.3 性能扩展 407

      12.3.1 垂直扩展集群 408

      12.3.2 水平扩展集群 410

      12.3.3 水平扩展单个微服务 411

      12.3.4 集群的弹性扩展 412

      12.3.5 单个微服务的弹性扩展 412

      12.3.6 扩展数据库 413

      12.3.7 避免过早扩展

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看