你了解部署流水线吗?
本文分享自华为云社区《你了解部署流水线吗?》,作者: 敏捷小智。
什么是部署流水线
部署流水线,又称持续集成流水线、构建流水线,是指软件从制品库到用户的自动化交付过程。通常包括代码提交、构建、部署、测试、发布环节。部署流水线实现 DevOps 模式下持续开发、持续测试、持续集成、持续部署和持续监控这些活动的编排并自动化执行,及时获得结果反馈,实现商业敏捷化。
如何构建流水线
流水线设计
构建一条部署流水线,首先要根据软件架构和业务特点,确定流水线的各个环节内容,如下就是某产品开发的流程设计。从大框架上需要包含构建、部署、测试和发布这几个环节。其中构建包含代码提交、本地构建、云端构建、静态检查、单元测试;部署包括测试环境的部署,α、β、γ环境部署。各环境中的测试实施,其中“Dog food(吃狗粮)”是互联网公司的一种文化,指的是自研自用,即部署到内网环境,供大家使用;发布包括依据发布策略,实施发布。如下图所示。
各环节自动化实现
流程确定后,然后要实现集成、交付、部署和发布各环节的自动化,自动化不等于不需要人的参与,而是将复杂易错、重复的步骤变成可靠的自动化步骤。
创建流水线
最后将各个环节统一编排成流水线,设置质量门禁,实现提交代码即触发自动部署的功能。
实现构建流水线,团队需要有良好的基础服务支撑,包括配置管理,可实现自动化配置的脚本等。业界领先的互联网公司很多都采用基础支撑服务云化,服务端程序部署频率都非常快。根据《凤凰项目》一书中的记载,业界 Top 互联网公司的网站部署频率如下:
此外,团队成员要遵守共同的规则,比如代码变更即上流水线,有错误发生及时暂停,待问题解决后再继续等,需要团队成员共同制动并遵守。
流水线的优点
提高交付效率
流水线编排客户实现 CI、CD 无缝结合,快速迭代,让价值流快速流动,适应市场需求频繁变化。端到端的流水线,让各个流程透明可视化,团队人员可以随时获取需要的信息,哪个版本出现了问题回退,当前版本所处的阶段等。同时可视化也能发现流程中的瓶颈环节,进行优化和调整,使流水线不断的演进,提升交付效率。
保障质量
流水线的每个环节都会有反馈,实现完整快速的反馈循环,团队获得反馈,有利于及时改进,保证质量;并且每个环节都可设置质量门禁,实现质量的层层保障。
加强团队建设,改善组织文化
流水线的各个环节让开发、测试、运维人员都参与进来,共同协作,打破部门之间的隔阂,改善公司组织文化、提高员工的参与感。
DevCloud 实践
华为云DevCloud提供了一站式端到端部署流水线:用户提交代码后,自动触发流水线执行编译构建、代码检查等任务;配置构建、代码检查、部署、测试等多种自动化任务,完成一键式出包发布上线生产全流程;每天定时执行,保障工程质量。
以快速上手流水线为例,在这个流水线中,包含代码检查、构建和质量门禁设置三个环节,其中的代码检查和构建是已经创建好的任务,质量门禁可以在创建流水线的同时创建。下面演示是如何创建和执行流水线。
1. 进入已创建的项目,在顶部导航栏单击“构建 &发布 > 流水线”,进入流水线。
2. 单击右上角“新建流水线”,进入“创建流水线”页面。根据界面提示填写基本信息、选择模板、选择代码源,然后单击“下一步”。
3.进入工作流配置页面,在构建阶段,选择类型为“代码检查”,然后添加已创建的代码检查任务。
接着按照相同方法,添加已创建的构建任务。
4.单击质量门禁下+添加质量门禁,选择“门禁任务”类型,然后单击“点击创建”。
5.填写门禁名称(如:test01),并将代码检查任务对应的门禁项“CodeCheck 问题数”开关打开,保存并选择已创建的门禁。
6.任务配置完成后单击“保存”,进入流水线详情页面,单击“全新执行”,一键执行流水线。
7.执行完成后,查看执行结果。单击构建任务旁的下载按钮,可以下载通过流水线自动构建出来的构建包。
8.配置 Codehub 源码仓库触发器,可以实现提交代码后自动触发流水线执行。进入“创建流水线 > 选择代码源”页面或者“流水线配置 > 添加代码源”页面,分别配置 Codehub 触发器和码云触发器。
展开“更多设置”,在触发分支中选择关联仓库的指定分支,如:“master”。保存流水线后触发器即刻生效,当指定仓库分支中有代码提交时,会自动触发关联流水线执行。
通常一个项目的流水线不仅仅是上面的几项,根据业务特点和软件架构的不同,工作流的编排而互不相同,但基本上都包括构建、部署、测试、发布环节,每个环节的任务设置会不尽相同。如下图为某团队的部署流水线样例。
国内企业部署的现状
根据《中国 DevOps 现状调查报告(2021)》,大概有六成受访者所在的企业部署频率为 1 周到 1 个月 1 次,同比 2020 年增长了近一成。仅有 16.21%的企业能够每天多次在生产环境进行部署;此外,9.33%的企业部署频率超过 1 个月。
数据来源:中国信息通信院
由以上调查数据可见,2021 年国内企业的部署频率已经比 2020 年有所提升。在当前的 VUCA 时代,为了应对不确定性,我们要提升自己的业务敏捷程度,小步快跑,及时获得反馈。因此通过自动化和流水线技术提高部署的频次和效率是必不可少的。引入云平台,简化部署和编排操作,让团队将更多的精力专注到业务的研发上更是大势所趋。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/63c757e98ffdf87429442b4b5】。文章转载请联系作者。
评论