行业前言研发效能提升实践的浓缩精华
DevOps
1、devOps六大武器
devOps六大武器
1)标准化作业
软件流程在特定领域中是可以标准化的,标准化的最大好处是能够固化流程,将人力从重复劳动中解放出来,同时有效地减少错误的发生。
2)快速失败
尽可能在早期发现问题并立刻失败,避免问题隐藏至后期,进而增加解决成本。通过引入CI/CD技术,通过高频集成和高频交付,将问题暴露在早期。
3)快速反应
将业务决策以最快的速度转换为技术产品,需要消除角色壁垒,尽可能用工具替代人力,并用流水线方式加速流程。
4)高质量与高效率
通过持续部署,快速反馈的方式,更好地将不确定性逐步变为确定性,从而保障高质量交付。
5)降低成本
当devops模式运作成熟,尤其是快速迭代的流水线初成规模后,软件研发的效率将大大提升,研发成本将明显降低,应对变化的能力也将大幅提高。
6)团队协作
依靠工具和自动化弥补开发与运维之间的技能鸿沟和沟通鸿沟,将软件研发中的三个角色(开开发,测试,运维)有效地粘合在一起,团队角色之间“有责无界”,为了更高的目标通力协作。
2、DevOps生命周期精解
3、容器技术在DevOps中的应用
4、混沌工程
基本思路:既然我们在事前无法将软件质量的确定性测量出来,也无法避免突发故障的发生,那么就要接受系统一定会存在缺陷和发生故障的混沌态,通过一系列的演练频繁暴露这些问题,在不断优化和改进软件系统的同时,倒逼质量内建和防御意识的提升,做到面向失败设计。类似打育苗。相关工具:ChaoBlade
5、DevSecOps
通过实践DevSecOps可以更早地,有意识地将安全性融入软件开发全生命周期中。如果开发组织从一开始就将安全性考虑在代码中,那么在漏洞进入生产环境之前或发布之后,发现并修复漏洞会更容易,成本也更低。
DevSecOps全流程实践
AIOps
2016年,Gartner公司提出了AIOps,指的是Algnorithmic IT Operations,是一种基于算法的运维方式。2018年,AIOps由算法升级为智能,即Aritificial Intelligence for IT Operations。指整合大数据和机器学习能力,通过松耦合,可扩展方式去提取和分析在数据量,种类和速度三个维度不断增长的IT数据,为所有主流IT运维管理产品提供支撑。AIOps平台能够同时使用多个数据源、数据采集方法及分析和展现技术,广泛增强IT运维流程和事件管理效率,可用于性能分析,异常检测,事件关联分析,IT服务管理和自动化等应用场景。
DevOps将软件生命周期的工具全链路打通,结合自动化和跨团队的线上协作能力,实现了快速响应、高质量交付及持续反馈。AIOps在企业运营和运维工作中为成本、质量、效率等方面的优化提供了重要支撑。主张有机器学习算法自动地从海里运维数据中不断地学习,不断地提炼并总结规则。
AIOps最主要的应用场景有:
- 运营保障(异常检测,故障诊断,故障预测,故障自愈)
- 效率提升(智能预测,智能变更,智能问答,智能决策)
DevPerfOps
在研发的各个环节都引入相应的性能测试手段,在更早的时间节点,从更细的粒度上去发现性能问题,并做到及时修复,及将“性能测试”上升到“性能工程”。
DevPerfOps的全流程实践
可测试性和可运维性
可测试性:指后期测试的方便性,或者说开展测试的便利程度,称为可测试性。
需要在设计阶段提前考虑软件的可测试性,让软件能够适合开展自动化测试。
可运维性:后期软件运维过程的便利程度,称为可维护性。
需要在设计阶段考虑后期运维的便利性,为实现高效的运维能力提高相应的功能。