本文整理自文章:https://mp.weixin.qq.com/s/rHf5goV66_ItfqRg9wpG4Q

1 前言

DevOps起源于2007年,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运行和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视”软件开发人员(Dev)”和”IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。通过自动化”软件交付”和”架构变更”的流程,来是的构建、测试、发布软件能够更加快捷、频繁和可靠。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

DevOps优势明显:能够对各种修改需求做出快速的反应、能实现灵活的安全部署与编排、能够简历完善的协作与沟通渠道、能快速地识别出代码中的错误和漏洞、开发团队聚焦关键问题,不必过度专注于各项安全功能。

基于云原生技术的DevOps时代,全面体现在全栈自动化和云原生工具生态能力。

全栈自动化体现为:

云原生工具生态丰富:

2 DevOps系统选型分析

当今市面上开源的DevOps系统工具种类繁多,如何正确、高效且符合云原生技术发展趋势等多重维度来选型DevOps工具,对企业进行数字化转型尤为重要。

对于分析开源界主流DevOps CI/CD工具系统:

结合以上分析,选择Tekton+ArgoCD进行云原生的DevOps实践

3 Tekton+ArgoCD 实践-场景

准备工作:

场景描述如下:

4 基于 Argocd-Rollouts 进行 blue/green canary 发布

在云计算技术或云原生技术出现之前,一些互联网公司也有灰度发布的需求,也会基于一些开源工具做定制化研发,如使用Nginx等,使用其定制开发一些基于Request Header流量切分、基于服务权重的流量切分、基于Cookie的流量切分等的规则引擎。

目前业内流行的blue/green、canary发布技术有几类,引入和改进适合自身场景的灰度发布技术很重要,比如: