一站式交付体验:云效 +Kubernetes
背景
云效依托于阿里巴巴研发效能多年规模化持续交付,赋能云上开发者专为云端用户提供的一站式研发协作平台。Kubernetes,由 Google 开源的容器集群管理平台,面向运维侧提供自动化的集群和应用管理解决方案。
一站式交付体验:云效+Kubernetes,云效持续集成流水线 Flow属于企业级持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线 CICD 过程。通过持续向团队提供及时反馈,让交付过程高效顺畅。
核心能力
通过结合云效与 Kubernetes 可以有效打通从研发协作,持续交付以及自动化运维的整个软件交付生命周期。
研发管理:通过看板持续管理和跟踪团队需求,缺陷。并通过持续度量发现研发中的瓶颈并作出改进。
持续交付:通过流水线管理代码的持续集成,测试,部署以及发布行为,通过自动化的方式定义软件的整个交付过程。
Kubernetes: 屏蔽云端基础设施差异,提供多云的一致性基础设施和应用管理体验。
全功能团队协作
在一个典型的全功能团队中,一般会包含以下角色:
开发人员:持续提交代码并且通过持续集成运行单元测试,构建等任务,快速获取反馈。在完成持续集成后,能够自动部署代码到开发测试环境,以便在需要的时候能够对新开发的功能进行快速验证。
测试人员:相对于开发来说,测试希望有一个相对较稳定的验收测试环境,并且能按需部署代码到测试环境(一般是开发人员自测完成后)。
运维人员:唯一拥有将版本部署到生产环境改的权限,能一键完成生产环境部署,但对权限和安全发布有更高的要求。
持续交付流水线
持续交付流水线专注于从代码到发布的端到端自动化过程。基于云效提供的流水线编排能力,如上所示,基于云效持续交付流水线,我们可以快速编排一个持续交付流水线来承载全功能团队协作的需求。
说明
立即体验:云效流水线Flow
基于流水线的团队协作
在流水线中我们分别创建:CI(持续集成),Dev(开发环境部署),Test(测试环境部署),Prod(生产环境部署)4 个阶段。同时为了实现不同角色之间的协作与工作流转。我们将 CI,Dev 阶段设置为自动执行,Test,Prod 为手动执行,并且增加了相应的人工卡点以确保只有相应角色的人员能够确认开始执行部署动作。
如下所示,每次开发人员提交代码后都能够触发并自动完成 CI 以及 Dev 环境的部署,如果 CI 流程有任务的异常都能够通过钉钉以及其他方式快速获取到反馈。
由于 Test 阶段定义为手动执行,因此当需要部署测试环境时,测试人员可以手动触发该阶段的部署,为了确保测试环境不被其它角色进行误操作,在执行部署动作前需要具有测试 owner 角色的人员来手动验证,以开始测试环境部署。
当 Dev 以及 Prod 阶段均成功以后,运维人员就可以按需对生产环境进行部署。
上述我们定义了一个最简单的支持开发,测试,运维进行协同工作的持续交付流水线。
更多扩展玩法
基于流水线的流程编排能力,我们可以在上述流水线基础上按需扩展更多的玩法。
例如:在生产发布之前,我们可以添加一个 Beta 测试环境增加更多的环境来确保生产环境的安全部署。
或者在 Beta 以及 Prod 阶段再增加一个只包含人工卡点的阶段,在这种场景中我们可以由专门角色的人员负责正式部署前 Beta 环境的验证,并且只有在验证通过之后才能进行 Prod 环境的发布:
一站式交付体验:云效+Kubernetes,云效持续集成流水线 Flow 属于企业级持续集成和持续交付工具,通过构建自动化、集成自动化、验证自动化、部署自动化,完成从开发到上线 CICD 过程。通过持续向团队提供及时反馈,让交付过程高效顺畅。
关于我们
了解更多关于云效 DevOps 的最新动态,可微信搜索关注【云效】公众号;
彩蛋:公众号后台回复【指南】,可获得《阿里巴巴 DevOps 实践指南》&《10 倍研发效能提升案例集》;
看完觉得对您有所帮助别忘记点赞、收藏和关注呦;
版权声明: 本文为 InfoQ 作者【阿里云云效】的原创文章。
原文链接:【http://xie.infoq.cn/article/fe53b8885d4b4d6a6eb47dd2b】。文章转载请联系作者。
评论