描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121419669
1.本书开创了云原生多元环境持续部署工具Spinnaker的先例,讲解深入。
2.本书案例基于大厂一线工程师的实际工作,具有非常好的指导性和实践性。
3.本书提供丰富的图片资源和实践源码,帮助读者快速上手。
本书聚焦于云原生和多云环境的持续部署方案,共分13 章,内容涉及声明式持续部署概述、Spinnaker基础与实战、金丝雀发布与灰度发布、部署安全、混沌工程及生产化建议等,结构清晰,循序渐进,深入浅出。在持续部署实践方面,本书重点介绍了如何实施灰度发布、自动金丝雀分析和混沌工程,这些高级部署功能是Netflix 公司实现快速而稳定迭代的核心技术。关于如何落地Spinnaker,本书站在人和组织架构的视角,为迁移团队提供了指导性的意见,解决了新技术落地难的问题。
目 录
01 声明式持续部署概述 1
1.1 持续交付与持续部署 2
1.2 命令式与声明式 6
1.3 常见的声明式系统 9
1.4 声明式与命令式结合:声明式脚本流水线 13
1.5 声明式脚本流水线的意义 16
1.6 本章小结 18
02 管理云基础设施 19
2.1 迁移至云原生与混合云的挑战 20
2.2 组织云基础设施 23
2.3 流量组织形式 27
2.4 持续部署工具对比 27
2.5 本章小结 36
03 Spinnaker 简介 37
3.1 概念 38
3.2 应用管理 38
3.3 应用程序部署 42
3.4 云提供商 45
3.5 Spinnaker 架构 46
3.6 本章小结 57
04 安装Spinnaker 59
4.1 环境要求 59
4.2 安装部署 67
4.3 本章小结 82
05 Spinnaker基本工作流程:流水线 84
5.1 管理流水线 85
5.2 部署制品 95
5.3 启动参数 108
5.4 阶段 109
5.5 触发器 114
5.6 通知 116
5.7 流水线表达式 118
5.8 版本控制和审计 125
5.9 动态流水线示例 126
5.10 本章小结 132
06 深入核心概念 133
6.1 虚拟机阶段 133
6.2 Kubernetes阶段 145
6.3 集成外部系统阶段 156
6.4 流程控制阶段 170
6.5 其他阶段 175
6.6 部署制品类型 176
6.7 配置触发器 192
6.8 使用流水线模板 205
6.9 消息通知 213
6.10 本章小结 226
07 自动金丝雀分析 227
7.1 Spinnaker 自动金丝雀发布 227
7.2 安装组件 229
7.3 配置金丝雀 233
7.4 获取金丝雀报告 248
7.5 工作原理 250
7.6 实践 251
7.7 本章小结 253
08 混沌工程 254
8.1 理论基础 254
8.2 为什么需要混沌工程 256
8.3 五大原则 257
8.4 如何实现混沌工程 259
8.5 在 Spinnaker 中实施混沌工程 263
8.6 本章小结 268
09 使部署更加安全 269
9.1 集群部署 269
9.2 流水线执行 285
9.3 自动验证阶段 295
9.4 审计和可追溯 299
9.5 本章小结 302
10 实践 303
10.1 南北流量自动灰度发布:Kubernetes Nginx Ingress 304
10.2 东西流量自动灰度发布:Kubernetes Service Mesh 319
10.3 本章小结 334
11 生产建议 336
11.1 SSL 336
11.2 认证 341
11.3 授权 351
11.4 Redis配置优化 359
11.5 横向扩容 360
11.6 使用MySQL 作为存储系统 363
11.7 监控 372
11.8 本章小结 382
12 扩展 Spinnaker 383
12.1 配置开发环境 383
12.2 编写新阶段 386
12.3 本章小结 394
13 迁移到Spinnaker 395
13.1 如何说服团队 395
13.2 迁移原则 396
13.3 本章小结 399
前言
在环境支持方面,Spinnaker支持云原生多云环境的持续部署,例如AWS、Azure、Google 等云提供商,以及国内三大云提供商——腾讯云(TKE 和 EKS)、阿里云(ACK 和 ASK)、华为云(CCE)等标准公有云均提供支持,此外虚拟机部署场景也正在被完善。
Spinnaker 支持集成触发器来监听事件,从而实现自动触发和自动部署。此外,其内置持续部署的实践(例如蓝绿部署和金丝雀部署),并提供了开箱即用的方法。
本书通过对Spinnaker抽丝剥茧,带领读者学习如何构建科学的持续部署流水线,并通过实战和案例进一步介绍了在微服务及 Service Mesh 环境下持续部署的实践。本书还抛开技术层面,站在人和团队的角度,分享了作者关于如何将应用迁移至 Spinnaker的实际落地经验。
本书内容
本书共分13章,其中每章的内容简介如下。
第1章 声明式持续部署概述
本章将介绍持续交付与持续部署的概念,明确命令式与声明式的差异,聚焦于声明式持续部署,讲解常见的声明式系统、声明式脚本流水线的概念及使用意义。
第2章 管理云基础设施
本章将介绍在云原生和多云环境的背景下如何管理云基础设施,主要内容包括将应用迁移至云原生环境及混合云环境所面临的挑战、对云基础设施的组织、流量组织形式,以及持续部署工具的对比。
第3章 Spinnaker 简介
本章将初步介绍Spinnaker相关内容,主要内容包括Spinnaker的基本概念、应用管理、应用程序部署、云提供商简介,以及Spinnaker架构。
第4章 安装Spinnaker
本章将介绍在不同的系统环境下如何安装Spinnaker。首先介绍安装Spinnaker的环境要求,然后介绍正式安装部署Spinnaker涉及的流程,包括选择云提供商、运行环境、存储方式等。
第5章 Spinnaker 基本工作流程:流水线
本章将介绍 Spinnaker 的核心——流水线的组成和基本操作,主要内容包括流水线的管理、部署制品、启动参数、不同阶段、触发器、通知,以及流水线表达式、版本控制和审计等,还将辅以动态流水线具体示例进行说明。
第6章 深入核心概念
本章将详细介绍 Spinnaker 流水线的配置及不同的阶段类型,主要内容包括虚拟机阶段、Kubernetes阶段、集成外部系统阶段、流程控制阶段等,还会介绍部署制品类型、配置触发器、流水线模板、消息通知等内容。本章涉及的内容非常多,读者可以有针对性地选择阅读。
第7章 自动金丝雀分析
本章将介绍 Spinnaker 的高级部署功能——自动金丝雀分析,主要内容包括自动金丝雀发布概述、安装组件、配置金丝雀、获取金丝雀报告等,还会通过一个实践案例进行辅助讲解。
第8章 混沌工程
本章将介绍如何在 Spinnaker中实施自动化混沌工程,主要内容包括为什么要引入混沌工程概念,以及混沌工程的理论基础、五大原则、实践方法等。
第9章 使部署更加安全
本章将介绍如何使用Spinnaker 内置的功能让生产部署更加安全,主要内容包括集群部署、流水线执行、自动验证阶段相关知识点、审计和可追溯。
第10章 实践
本章将介绍在 Kubernetes 环境下实现南北流量、东西流量自动灰度部署的流程,这两个实例的流程基本是一致的。
第11章 生产建议
本章将介绍在生产环境下使用Spinnaker 时需要注意的事项,比如与SSL、认证、授权、Redis配置优化、横向扩容、MySQL、监控相关的内容。
第12章 扩展 Spinnaker
本章将介绍如何对 Spinnaker 进行二次开发,主要内容包括开发环境的配置,以及在实际开发过程中编写新阶段的注意事项。
第13章 迁移到 Spinnaker
本章将从人和组织架构的角度介绍如何将应用迁移到Spinnaker,以及迁移过程中需要遵循的原则。经过本章的学习,读者可以尝试将Spinnaker实践应用到实际项目中。
目标读者
本书的目标读者有以下几类。
- 云原生、Docker和Kubernetes研发工程师。
- SRE工程师。
- 微服务架构下的开发人员和架构师。
- 行业解决方案架构师。
- 研发效能和研发质量管理人员。
持续部署这个概念被讲得很多,但真正能将其落地实践的很少。一是因为组织文化和意识不匹配,二是因为缺乏相应的工具。在云计算时代,底层基础设施不断标准化,推动了部署的标准化,Spinnaker正是在这样的背景下诞生的持续部署工具。本书不但讲解了Spinnaker的使用,还介绍了在云计算时代开发和运维人员都应该掌握的基本概念和技术。这些内容将为你打开云原生时代的大门!
——张海龙,腾讯云CODING DevOps CEO
本书系统介绍了Spinnaker的使用、安全、生产实践、扩展等多个维度的内容,将这个云原生持续部署项目全面展示给各位读者。在提倡轻量化交付的今天,熟练掌握Spinnaker对提高研发效率和交付能力至关重要。想要入门和深入学习Spinnaker的读者,都可以阅读本书。
——吴晟,Apache SkyWalking创始人
云原生本质上是一套“利用云计算技术为用户降本增效”的方法论。其中,研发与交付效能的提升是重中之重,也是持续交付技术的初衷与愿景。本书以Spinnaker为核心,从DevOps的理念出发,循序渐进地讲解了Spinnaker的来龙去脉和各项持续交付实践,是非常优秀的入门Spinnaker的学习资料。
——张磊,CNCF技术委员会成员
评论
还没有评论。