浅谈DevOps和AIOps

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

 

1|2目标

敏捷开发、CI/CD

  • 减少变更范围

    与传统的瀑布式开发模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。由于部署经常进行,因此每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长。

  • 加强发布协调

    靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议、即时消息、企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。

  • 自动化

    强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。

 

1|3传统开发流程

 

1|4过程演进

  1. 引入Scrum流程,用JIRA做需求管理、排期,用GitLab做代码管理,用Confluence做wiki

  2. 加pipeline插件(测试→UAT→生产),部署的脚本写在Jenkins里

  3. 搭建制品库管理源代码编译构建后的产物,同时需要解决构建版本追踪和元数据管理问题

  4. 配置管理工具(Ansible)管理环境

  5. 自动化测试

  6. Docker与不可变部署

  7. 关键工作系统化、配置化

  8. 自动化运维和技术运营(工单、值班表、报表、通知单、监控、告警等)

  9. AIOps

 

1|5DevOps流程

 

2|0AIOps

2|1背景

传统运维工作的业务庞杂、故障发现困难、根因定位繁琐,AIOps是企业级DevOps在运维(技术运营)侧的高阶实现。

 

2|2目标

将人工总结运维规则的过程变成自动学习的过程。具体而言,是对平时运维工作中长时间积累形成的自动化运维和监控等能力,将其规则配置部分,进行自学习的“去规则化”改造。

  • 赋能DevOps:通过AI的能力进一步处理自动化运维不能解决的问题;

  • 实时分析及处理:通过AIOps的智能算法和不断提升的自动化水平,对问题进行实时诊断并给出操作建议,大幅度降低平均检测时间(MTTD)和平均修复时间(MTTR);

  • 降低报警噪音:通过AIOps的数据关联能力,确定基础设施、业务程序和业务之间的关系,不断完善算法,可以不断提高过滤警报噪音的水平减少误报;

  • 故障原因分析及预测:通过AIOps的海量数据分析能力,可以帮助识别造成问题的根本原因,并挖掘时间序列中的事件模式从而对预期行为进行检测,提供运维建议。

 

2|3应用场景

 

2|4能力分级

  • 尝试应用:开始尝试应用AI能力,还无较成熟单点应用

  • 单点应用:具备但场景AI运维能力,初步形成供内部使用的学件

  • 串联应用:有由多个单场景AI运维模块串联起来的流程化AI运维能力

  • 能力完备:主要运维场景均已实现流程化免干预AI运维能力

  • 终极阶段:有中枢AI,可以在成本、质量、效率间从容调整,达到业务不同生命周期对三个方面不同的指标要求,实现多目标下的最优或按需最优

 

2|5功能模块

posted @ 2022-11-26 00:00  智慧园区-老朱  阅读(97)  评论(0编辑  收藏  举报