网络空间安全:行业资讯、技术分享、法规研讨、趋势分析……

“游侠安全网”创建了网络安全从业者QQ大群(群号:1255197) ,欢迎各位同仁加入!有其它问题如合作等,请联系站长“网路游侠”,QQ:55984512


自动运维|运维工具的持续快速交付实践

2020-02-12 17:22 推荐: 浏览: 29 views 字号:

摘要: 天下武功唯快不破 一个新产品特性经由市场客户反馈,产品经理提炼需求,UI原型设计,研发设计开发等各个环节终于到了测试和交付环节。将新特性交付客户,在市场经受验证,提高运维工具在市场中的竞争力,其中重要的一个秘诀就是”快“。 然而运维工具开发在引入持续交付实践之...

天下武功唯快不破

一个新产品特性经由市场客户反馈,产品经理提炼需求,UI原型设计,研发设计开发等各个环节终于到了测试和交付环节。将新特性交付客户,在市场经受验证,提高运维工具在市场中的竞争力,其中重要的一个秘诀就是”快“

然而运维工具开发在引入持续交付实践之前存在以下问题:

1.  测试的准备和执行慢。手动组装各子模块的打包,系统环境变更,测试包构建,系统安装,然后交付给测试人员,效率低还容易出错。

2.  开发和测试串行。交付测试后需花费3人日测试,中间如果测试出问题,还需要反复。

3.  开发和测试环境不一致。出现由于环境不同引起的系统行为差异,问题调查费时费力。

4.  版本升级前后,系统运行环境的变更无记录。正式发包前手动修改系统环境,增加不确定性因素,对系统造成整体性影响。

为了解决以上问题,美创运维开发团队引入了DevOps实践中的持续交付,基于持续构建、测试和集成的开发原则对原有方法进行改进。

怎么做持续交付

在整个交付过程中,通常包括环境搭建, 代码部署, 测试的准备和执行过程。

一、基于容器技术的环境隔离

在环境搭建步骤,我们通过docker容器技术将系统运行所需要的操作系统依赖,软件运行环境依赖等都封装在容器中,通过容器编排技术将各个组件编排成完整系统,使得开发,测试和生产系统运行的环境都是一模一样的。

二、变更管理和部署流水线

将系统运行基础设施和产品代码一并纳入git分布式源代码管理系统。”部署流水线”是指确保代码和基础设施始终处于可部署状态,所有提交到主干的代码都可以安全地部署到生产环境。

三、自动化构建

在开发环境中,采用Jenkins系统构造基于代码提交触发自动构建的方式,更新升级开发环境。开发人员在类生产环境中编写、测试和运行自己的代码,就能在日常工作中完成代码与环境集成的大部分工作,而不需要等到发布时才做。在第一个开发周期结束时,代码和环境已经被多次集成,应用已被证明能在类生产环境中正确运行。

在测试环境中,采用Jenkins系统进行每日构建。每天将开发分支的代码自动化获取,安装构建基础设施和软件运行依赖,生成docker镜像,在测试环境安装升级,并调用自动化测试脚本进行测试。在构建失败或自动化执行失败时,系统发邮件通知开发人员,第一时间处理。这样在整个开发周期中,测试人员和开发人员都可以并行工作。

测试完成后一键发布正式版本。通过以上改进,使得运维工具的发布迭代加速,以每个月2次的发布频次交付市场。

下一步方向

l  自动化测试覆盖率进一步加强。

l  系统架构演进。

l  持续学习和实验文化在团队中推广。

参考文献

1.Jenkins基于tag或分支参数化构建实践  http://wiki.mchz.com.cn/pages/viewpage.action?pageId=25069971

2.DevOps 实践指南 [美]Gene Kim, Jez Humble, Patrick Debois, John Wills

3.Docker缓存机制及编写dockerfile注意事项 http://wiki.mchz.com.cn/pages/viewpage.action?pageId=25070166

联系站长租广告位!

中国首席信息安全官
关闭
关闭