一、什么是DevOps
- DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟
二、DevOps的作用
- DevOps 提倡通过一系列的技术和工具降低开发和运维人员之间的隔阂,实现从开发到最终部署的全流程自动化,从而达到开发运维一体化。通过将 DevOps 的理念引入到整个系统的开发过程中,能够显著提升软件的开发效率,使得各个团队减少时间损耗,更加高效地协同工作,缩短软件交付的周期,更加适应当今快速发展的互联网时代。
- 下图为,通过DevOps可以解决的问题
三、实现DevOps
3.1 打造DevOps流水线
- 版本构建 - 解决的问题:从代码库自动拉取代码完成版本的构建
- 代码静态扫描 - 解决的问题: 开发规范和安全的问题
- 80%以上的单元测试覆盖率 - 解决的问题:代码功能质量的问题,让测试左移
- 漏洞(Vulnerability)扫描 - 解决的问题:部署环境/产品安全的问题
- 制品(Artifact)版本控制 - 解决的问题:制品的版本控制,制品的晋级,某些情况下环境的回滚
- 环境自动创建 - 解决的问题:解决的是构建/部署环境一致性的问题,开发测的好好的,测试一验证怎么不行啊,容器化/云原生让这个问题更好的解决
- 集成测试
- 性能测试
- 每次提交都触发:构建、部署和自动化测试 - 解决的问题:快速失败,避免下游时间的浪费
- 功能开关 - 解决的问题: 主干开发中,如果某个功能没开放完,就通过on/off某个特性来让稳定的功能上线;还有一个场景,比如某些面对消费者的广告网站,想看看自己某个功能客户是否细化,通过功能开关看看市场反馈,一般和A/B测试配合