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:云原生多云环境持续部署的未来相关推荐

  1. Spinnaker:云原生多云环境持续部署的未来这样玩!

    Gartner的报告指出,到2020年,将有50%的传统老旧应用会以云原生的方式被改造,到2022年,云原生和容器化的普及率将达到75%. 随着2020 KubeCon线上大会的结束,我们发现企业拥抱 ...

  2. 云原生之使用docker部署centos系统测试环境

    云原生之使用docker部署centos系统测试环境 一.检查本地服务器系统版本 二.检查docker版本 三.检查docker状态 四.下载centos镜像 五.创建centos容器 1.运行cne ...

  3. 6大新品重磅发布,华为云全栈云原生技术能力持续创新升级

    本文分享自华为云社区<HDC.Cloud 2021 | 华为云发布重磅新品,全栈云原生技术能力持续创新升级>,原文作者:技术火炬手 . 4月25日,在华为开发者大会(Cloud)2021上 ...

  4. DaoCloud道客:云原生多云应用利器-Karmada调度器

    "通过<云原生多云应用利器 - Karmada 总览篇>和 <云原生多云应用利器 - Karmada 控制器> ,为大家介绍了多云相关的简介内容和架构,以及主要的控制 ...

  5. DaoCloud道客:云原生多云应用利器-Karmada控制器

    DaoCloud道客:云原生多云应用利器-Karmada控制器 在上一篇<云原生多云应用利器– Karmada 总览篇>中已经介绍了多云的相关简介的内容和架构.接下来,在这一篇中来一起看看 ...

  6. 云原生开发环境初探 | CSDN 博文精选

    作者 | 倚天码农 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 此前,我们分享了云原生的引申含义(https://blog.csdn.net/weixin_38748858/arti ...

  7. 云原生之使用Docker部署webssh工具sshwifty

    云原生之使用Docker部署webssh工具sshwifty 一.sshwifty介绍 1.sshwifty简介 2.shwifty 特点 二.检查本地docker环境 1.检查docker版本 2. ...

  8. 云原生之使用Docker部署Dailynotes个人笔记管理工具

    云原生之使用Docker部署Dailynotes个人笔记管理工具 一.Dailynotes介绍 二.检查本地docker环境 1.检查docker版本 2.检查docker状态 三.下载Dailyno ...

  9. 云原生之使用Docker部署开源Leanote蚂蚁笔记

    云原生之使用Docker部署开源Leanote蚂蚁笔记 一.Leanote蚂蚁笔记介绍 1.Leanote简介 2.Leanote功能 二.本次实践介绍 1. 本次实践简介 2. 本地环境规划 三.检 ...

  10. 云原生之使用Docker部署LimeSurvey在线调查工具

    云原生之使用Docker部署LimeSurvey在线调查工具 一.LimeSurvey介绍 1.1 LimeSurvey简介 1.2 LimeSurvey特点 1.3 LimeSurvey使用场景 1 ...

最新文章

  1. python数据分析工具包_脑成像数据分析:Python工具包
  2. VIM — vim-go
  3. python怎么用拼音-又一个奇葩要求,Python是如何将“中文”转“拼音”的?
  4. java web六:tomcat其他小问题
  5. 《剑指offer》c++版本 13. 机器人的运动范围
  6. html制作花样链接卡页面_使用HTML5实现刮刮卡效果
  7. ElastieSearch安装以及与Mongodb的概念对照关系
  8. 20种PLC元件编号和Modbus编号地址对应表
  9. latex 无穷_《天龙3D》新资料片“骑乐无穷”即将上线
  10. flask blueprint
  11. 测试方法-等价类划分法
  12. php 识别图框,自动识别比例插入CAD图框教程
  13. 教你以一秒钟10万+个密码的速度破解WiFi
  14. 网易buff服务器不稳定,《梦幻西游》手游平民94方寸逆袭成神分享心得助你腾飞_ 《梦幻西游》手游官网-人人都玩,无处不在...
  15. php导入mib表,Linux snmp导入MIB库
  16. 【C++学习笔记】特殊用途语言特性
  17. 偶得李春芬先生书信一函
  18. 联想T440怎么把原装Win8或Win10换成Win7系统
  19. python设置子图的坐标_python如何调整子图的大小?
  20. HX=JE,HX-JE芯片,无感4.9V升压ic电路图PDF应用技术

热门文章

  1. Cookie使用基础
  2. Codeforces Edu Round 68 (Rated for Div. 2)
  3. maven如果正常配置不成功,就按照我的就可以配置成功了
  4. python3模拟扑克牌
  5. JQuery simpleModal插件的使用-遁地龙卷风
  6. 用一个时钟在FPGA中计算直方图
  7. 数据库的跨平台设计(转)
  8. php gd实现简单图片验证码与图片背景文字水印
  9. 树——二叉树的深层特性
  10. js 原型链的介绍