2021年持续交付经验小结

eceebddaa24d346a93f2f8e46d285b37.png

图是美的全球创新中心西门

2021年小结

后知后觉又一年。

2021年,我带着2个人(一个偏物理层运维,一个偏应用层的运维)支撑着8个平台,每平台约3个环境的运维工作。

  • 部署方面:测试环境每日部署次数约250次,预发布和生产环境从一月至十一月部署达100次,约每3天1次。之前,我们只能在半夜用户量最小的时候部署,大约从10月开始,我们可以在白天进行部署。所有的应用及配置,所有的环境都采用高度一致又不失灵活性的部署方案。

  • 构建方面:构建次数每日百次以上。

  • 测试方面:8月左右做了单元测试方面的培训,至今没有的效果,因为还没有精力通过集成单元测试率覆盖率报告来push开发写更多的单元测试;11月加入冒烟测试,对于环境的稳定性有一定的改善。

  • CodeReview方面:大概4月开始实施CodeReview,对于代码质量有一定的改进(感觉而已,所以,需要更多的统计数据)。最近1个多月,来了不少新人,新人开始觉得CodeReview只是形式;

  • 混浊工程方面:这块最近才开始做,有些不尽人意。

我们的应用目前已经全部运行在K8s之上。持续交付领域使用到的技术栈有:

  • 代码托管:GitLab

  • Pipeline:Jenkins

  • 部署:Ansible、Helm

  • 测试:Pytest、Allure

没有使用云厂商的DevOps产品,是因为试用过的产品,对于Everything as Code都没有很好的支持。也似乎没有意向要更好的支持。所以,全使用开源的工具进行组装。

我们采用主干开发,release分支发布策略。

这里想给大家分享的经验有:

  • 功能开关是实现持续部署的秘方。如何说服大家倒是个难点,笔者说了很长时间,开发团队才愿意采用;

  • 应用软件架构本身的高健壮性是实现快速部署节奏的提前;

  • 冒烟测试要尽早加入,我们加入太晚了;

  • 运维工作尽量自助化:该开发自己做的,还是要开发自己做。比如测试环境的部署、业务级别的告警设置;

  • 所有的事情,都优先使用配置代码实现,即Everything as Code;

  • 混浊工程的前提是监控和自动化。如果这些没有做好,不叫工程,只能叫“玩”;

  • 持续交付领域的知识在团队中没有工具的支持,容易腐化。比如CodeReview实践会被慢慢沦为形式,我们目前还没有CodeReview的辅助工具。

2022年展望

  • 21年的数据是我自己扳手指头统计的,22年,我们希望能自动统计出来;

  • 加强单元测试:通过报告PUSH开发人员提高单元测试的覆盖率;

  • 实现自动化的金丝雀部署。目前已经实现初级手工的金丝雀部署;

  • 低成本的实现统一的告警平台;

  • 使用Jsonnet等具有编程功能的配置语言替换YAML的配置方式;

最后,如果能自动化统计业务系统的feature功能的使用率就更好了。

这是2020年的 一些持续交付的实践经验 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值