前言
在环境支持方面,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工程师。
• 微服务架构下的开发人员和架构师。
• 行业解决方案架构师。
• 研发效能和研发质量管理人员。
联系作者
尽管我在本书出版过程中对书稿进行了多次技术审校和修订,但书中仍不可避免存在错漏之处。若你在阅读过程中发现错误或产生疑问,欢迎通过以下方式随时与我联系。
微信公众号:云原生大队长。
邮箱地址:haimianguma@foxmail.com。