自动运维|运维工具的持续快速交付实践 – 作者:database

一个新产品特性经由市场客户反馈,产品经理提炼需求,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


美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。

来源:freebuf.com 2020-06-08 15:38:58 by: database

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论