Spinnaker:云原生多云环境持续部署的未来
Gartner的报告指出,到2020年,将有50%的传统老旧应用会以云原生的方式被改造,到2022年,云原生和容器化的普及率将达到75%。
随着2020 KubeCon线上大会的结束,我们发现企业拥抱云原生、Kubernetes和Istio的热情空前高涨,这些技术无一例外都为“微服务”的普及铺设了更平坦的道路。
企业在拥抱云原生时,将伴随着对现有环境和业务的云原生化迁移,这往往会经历长时间多云环境共存的痛处。以迁移到Kubernetes为例,企业一般会选择从边缘业务逐渐延伸到核心业务的迁移方式,而迭代并不会因此停止,这就对交付和部署提出了新的挑战。
更糟糕的是,如果企业已经采用了微服务架构,那么在这种多云环境下,对多个微服务的部署更是一种无法预测的行为。
因此,多云环境下的部署问题成为企业拥抱云原生、容器化和微服务时难以逾越的鸿沟,越来越多的企业已经注意到自己持续部署能力不足,并且尝试使用不同的工具组合来解决问题。
例如,常见的是使用Ansible支持传统虚拟机的部署,使用Jenkins 及其插件支持 Kubernetes 环境的部署。
但由于这些工具对云和部署要素的抽象概念的定义并不一致,因此相关工作人员需要学习不同的概念,且需要经历不同的学习曲线,使用这些工具组合将会导致部署行为进一步陷入混沌状态。
大部分传统企业倾向于将运维团队设立为独立的组织架构,利用运维团队与开发团队天然的冲突和利益不一致,使得两者在这种组织冲突的平衡中实现产品交付和部署的动态平衡。
但从长远来看,这显然是不合理的。
像 Netflix 这种大型的敏捷团队更愿意将运维角色与开发角色融合,将运维职能沉淀到团队内部闭环,通过为团队提供一致性的工具,实现每个团队对持续部署的独特需求。
这种内部闭环使信息流转问题得到了解决,由开发人员来决定何时以及如何进行部署,研发效率和交付质量得到了显著提升。
迁移至云原生所经历的困境也正是Netflix开发团队对统一化部署工具的诉求:云原生、混合云、持续自动化与安全部署。
Spinnaker 正是 Netflix 多年来在持续部署方面的实践经验的结晶。它是一款开源的、支持云原生和多云环境的持续部署工具,目前支撑着 Netflix 数百个微服务和数万个节点混合云环境的持续部署。
2019年3月,Netflix和Google共同成立持续交付基金会(Continuous Delivery Foundation, CDF),并将Spinnaker捐赠给CDF,和大名鼎鼎的CNCF一样,CDF成了Linux基金会的一部分。CDF的其他成员包括Jenkins、Jenkins X、Tekton等顶尖的持续集成和持续部署项目。
毫无疑问,在CDF中,Jenkins的用户数量是最庞大的,但我认为Jenkins更多地属于持续集成(Continuous Integration,CI)工具。
作为持续部署的集大成者,Spinnaker势必会成为团队技术选型的重点考虑对象。
在环境支持方面,Spinnaker支持云原生多云环境的持续部署,例如AWS、Azure、Google 等云提供商,以及国内三大云提供商——腾讯云(TKE 和 EKS)、阿里云(ACK 和 ASK)、华为云(CCE)等标准公有云均提供支持,此外虚拟机部署场景也正在被完善。
Spinnaker 支持集成触发器来监听事件,从而实现自动触发和自动部署。此外,其内置持续部署的最佳实践(例如蓝绿部署和金丝雀部署),并提供了开箱即用的方法。
在学习Spinnaker 时,由于其概念复杂且上手难度较大,加上几乎没有适合中国工程师的学习资料,我遇到了非常多的“坑”。
我想,其他希望学习Spinnaker 的同学也会遇到同样的困境,所以我决定将自己的实践经验分享给所有人,进而撰写了《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的技术细节,欢迎选购本书,沉浸阅读。
▊《Spinnaker实战:云原生多云环境的持续部署方案》
王炜,王振威 著
开创了云原生多元环境持续部署工具Spinnaker的先例,讲解深入
案例基于大厂一线工程师的实际工作,具有非常好的指导性和实践性
提供丰富的图片资源和实践源码,帮助读者快速上手
本书聚焦于云原生和多云环境的持续部署方案,共分13章,内容涉及声明式持续部署概述、Spinnaker基础与实战、金丝雀发布与灰度发布、部署安全、混沌工程及生产化建议等,结构清晰,循序渐进,深入浅出。
在持续部署最佳实践方面,本书重点介绍了如何实施灰度发布、自动金丝雀分析和混沌工程,这些高级部署功能是Netflix 公司实现快速而稳定迭代的核心技术。关于如何落地Spinnaker,本书站在人和组织架构的视角,为迁移团队提供了指导性的意见,解决了新技术落地难的问题。
Spinnaker:云原生多云环境持续部署的未来相关推荐
- Spinnaker:云原生多云环境持续部署的未来这样玩!
Gartner的报告指出,到2020年,将有50%的传统老旧应用会以云原生的方式被改造,到2022年,云原生和容器化的普及率将达到75%. 随着2020 KubeCon线上大会的结束,我们发现企业拥抱 ...
- 云原生之使用docker部署centos系统测试环境
云原生之使用docker部署centos系统测试环境 一.检查本地服务器系统版本 二.检查docker版本 三.检查docker状态 四.下载centos镜像 五.创建centos容器 1.运行cne ...
- 6大新品重磅发布,华为云全栈云原生技术能力持续创新升级
本文分享自华为云社区<HDC.Cloud 2021 | 华为云发布重磅新品,全栈云原生技术能力持续创新升级>,原文作者:技术火炬手 . 4月25日,在华为开发者大会(Cloud)2021上 ...
- DaoCloud道客:云原生多云应用利器-Karmada调度器
"通过<云原生多云应用利器 - Karmada 总览篇>和 <云原生多云应用利器 - Karmada 控制器> ,为大家介绍了多云相关的简介内容和架构,以及主要的控制 ...
- DaoCloud道客:云原生多云应用利器-Karmada控制器
DaoCloud道客:云原生多云应用利器-Karmada控制器 在上一篇<云原生多云应用利器– Karmada 总览篇>中已经介绍了多云的相关简介的内容和架构.接下来,在这一篇中来一起看看 ...
- 云原生开发环境初探 | CSDN 博文精选
作者 | 倚天码农 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 此前,我们分享了云原生的引申含义(https://blog.csdn.net/weixin_38748858/arti ...
- 云原生之使用Docker部署webssh工具sshwifty
云原生之使用Docker部署webssh工具sshwifty 一.sshwifty介绍 1.sshwifty简介 2.shwifty 特点 二.检查本地docker环境 1.检查docker版本 2. ...
- 云原生之使用Docker部署Dailynotes个人笔记管理工具
云原生之使用Docker部署Dailynotes个人笔记管理工具 一.Dailynotes介绍 二.检查本地docker环境 1.检查docker版本 2.检查docker状态 三.下载Dailyno ...
- 云原生之使用Docker部署开源Leanote蚂蚁笔记
云原生之使用Docker部署开源Leanote蚂蚁笔记 一.Leanote蚂蚁笔记介绍 1.Leanote简介 2.Leanote功能 二.本次实践介绍 1. 本次实践简介 2. 本地环境规划 三.检 ...
- 云原生之使用Docker部署LimeSurvey在线调查工具
云原生之使用Docker部署LimeSurvey在线调查工具 一.LimeSurvey介绍 1.1 LimeSurvey简介 1.2 LimeSurvey特点 1.3 LimeSurvey使用场景 1 ...
最新文章
- python数据分析工具包_脑成像数据分析:Python工具包
- VIM — vim-go
- python怎么用拼音-又一个奇葩要求,Python是如何将“中文”转“拼音”的?
- java web六:tomcat其他小问题
- 《剑指offer》c++版本 13. 机器人的运动范围
- html制作花样链接卡页面_使用HTML5实现刮刮卡效果
- ElastieSearch安装以及与Mongodb的概念对照关系
- 20种PLC元件编号和Modbus编号地址对应表
- latex 无穷_《天龙3D》新资料片“骑乐无穷”即将上线
- flask blueprint
- 测试方法-等价类划分法
- php 识别图框,自动识别比例插入CAD图框教程
- 教你以一秒钟10万+个密码的速度破解WiFi
- 网易buff服务器不稳定,《梦幻西游》手游平民94方寸逆袭成神分享心得助你腾飞_
《梦幻西游》手游官网-人人都玩,无处不在...
- php导入mib表,Linux snmp导入MIB库
- 【C++学习笔记】特殊用途语言特性
- 偶得李春芬先生书信一函
- 联想T440怎么把原装Win8或Win10换成Win7系统
- python设置子图的坐标_python如何调整子图的大小?
- HX=JE,HX-JE芯片,无感4.9V升压ic电路图PDF应用技术