目录
前言
DevOps
DevSecOps
GitOps
1、缺少一致性
2、使用成本高
3、鉴权分散
4、审核审计困难
5、不可变基础设施扩展难
DataOps
AIOps
总结
前言
提到运维,自然而然会联想到DevOps,大家应该还听说过DataOps、GitOps、DevSecOps、AIOps等,这么多的XXOps到底都是啥意思,他们又是因为什么而存在并发展起来的呢? 本文讲一一为大家进行解答。
DevOps
DevOps是所有Ops的大哥,后续的Ops们都属于DevOps的加强和变种。
DevOps的产生存在两方面的意义,从思维方式来讲DevOps约等于敏捷,因为DevOps的设计理念和初衷就是围绕敏捷开发的思想来建设的;从架构设计上来讲DevOps是将应用全生命周期相关工具进行平台化。 总之DevOps既是敏捷开发的思维,也是这种思维的具象化实现。
DevOps贯穿整个敏捷敏捷开发的周期,从时间维度可以拆分为以下环节,每个环节关注点也是不一样的。
DevSecOps
DevSecOps是DevOps的弟弟妹妹里最好理解的一个,正如字面意思,Security+DevOps,安全加持下的DevOps,他可以说是时代的产物,也可以说是DevOps的必然方向。
DevOps解决的是效率问题,但随着国家越来越关注互联网安全,加之安全漏洞被利用的方式也越来越多,系统架构师们发现安全问题并不只是买几台跳板机就能解决的问题,必须从需求设计、编码、测试、上线、日常维护等应用全生命周期各个阶段都要体系化的介入进去才能最大程度的保障系统的安全性,而这些周期环节与DevOps完美的契合在一起,所以就有了DevSecOps的诞生。
如图所示,可以把DevSecOps理解为DevOps在每个环节上的安全加强。
GitOps
每一种新技术的产生都是为了解决旧技术的某些痛点,GitOps也是如此。
DevOps有哪些痛点?
1、缺少一致性
以CD为例,我们是将预定的发布策略和环境变量设置到了持续部署的流水线中,只能保证在部署阶段其资源与流水线中设置是一样的,但我们不能保证经过一段时间后云资源中的情况与我们设想的一样,所以我们需要有一个唯一的声明式的配置标准,这份配置是什么样的,那么资源就是什么样的。
2、使用成本高
DevOps贯穿了应用交付全生命周期,也关联了整个周期内的所有工具,一线运维人员需要学习和登录到所有工具或相关平台去完成操作,但我们更期望有一中脚本式或者说明文件式的方式帮我们隐藏掉底层工具的复杂度。
3、鉴权分散
与上述痛点一样,工具的多样性决定了鉴权控制的分散性。
4、审核审计困难
与上述一样痛点一样,工具的多样性同样带来了审核和审计的分散性。
5、不可变基础设施扩展难
DevOps的不可变基础设施是镜像,随着业务的发展我们希望有例如“镜像+环境变量+DNS配置+告警配置”这种更丰富的不可变基础设施,在传统DevOps里很难扩展。
Git可以完美的解决DevOps中上述缺点,我们可以把更丰富的基础设施用声明式文件描述出来,任何DevOps工具的操作都通过提交Git中脚本或配置来实现,Git自带完整的鉴权、审核、操作审计体系,那么就只剩下“一致性”问题了。
解决一致性问题的思路如下:
一边从Git中拉取配置数据,一边从真实环境中采集相关真实数据,通过比对方式判断二者是否存在差异性,当存在差异时以Git中数据为准,通过声明式方式将Git中内容推送到真实环境中。
DataOps
DevOps的另一个弊端是运维数据完全依赖于运维工具,也就是说数据与工具是耦合的,以监控为例,换一套指标采集工具配套的监控语句就得做出响应修改。
DevOps发展到一定程度我们还面领着另一个问题,看似数据很多但不成体系,到底哪些是我们需要的,那些是需要沉淀的,数据间的关系是怎样的,需要我们从这些数据中进行提炼。
出于上面两点考虑,会搭建符合自身场景的运维数仓,将运维需求抽象成数据模型,模型上层构建应用场景,模型下层对接各种工具中并从中钻取关注的明细,这一数据化的过程就是DataOps。
DataOps带来革命性的意义,运维平台第一次有了输出,成为了一个DaaS服务,也为AIOps提供了数据基础。
AIOps
AIOps是目前运维体系发展方向,因为它涉及到故障自愈、容量评估、异常诊断、安全风险预判等场景,赋予了运维更智能的体验,也在效率、稳定性、成本、安全方面体现出运维更多的价值。虽然AIOps很美好,但是AIOps是建立在DataOps基础上的,一切的AI都要基于数据,数智时代,必须现有数才能有智,所以要做好DataOps是AIOps的必经之路。
总结
DevOps的出现是为了解决效率问题,GitOps的出现是为了解决一致性、审计、基础设施等问题,DevSecOps是体系化安全建设问题,AIOps是运维智能化方向,DataOps是AIOps的必经之路。