4000-9696-28

一文讲明白DevOps、DevSecOps、GitOps、NetOps、AiOps、ItOps、NoOps

2023年09月14日 09:36供稿中心:北大青鸟总部

摘要: DevOps=Developers+Operators,也就是研发运维一体化,主要是通过自动化流程使得软件过程更加快捷和可靠。它不是一个产品,而是一种新的团队工作方式、新的技术理念。

这不一定是一个最好的时代,也不一定是一个最坏的时代,但一定是个Ops盛行的时代,在互联网圈内的你一定经常都会听到这些名词,DevOps、DevSecOps、GitOps、NetOps、ItOps、Aiops、DataOps、MLOps、NoOps,其中DevOps、DevSecOps、GitOps、NetOps、ItOps、NoOps都是属于运维领域的,因此我们今天主要也来讲这些Ops。

DevOps=Developers+Operators,也就是研发运维一体化,主要是通过自动化流程使得软件过程更加快捷和可靠。它不是一个产品,而是一种新的团队工作方式、新的技术理念。

一个软件从0到1的最终交付包含如下阶段:市场规划、产品规划、编码设计、编译构建、部署测试、发布上线、后期维护。早期的时候全由一个人完成了,随着团队的扩张,团队里有了产品经理、开发人员、测试人员、运维人员的划分,由产品经理负责需求的规划、产品交互设计,研发人员负责编码、构建包,测试人员负责功能测试和自动化测试、上线发布,运维人员负责维护线上服务的正常运行、扩容缩容,这就是敏捷开发模型,在开发过程阶段测试介入,快速验证修改问题直到基本无误后上线部署。

这一切所带来的问题是整体的交付周期变长了,团队之间沟通合作成本变高了,因此DevOps应运而生。它将整个软件开发测试运维过程变为一体化,每完成一个小的需求点便测试上线部署,快速验证需求,捕获用户,占领市场。

DevSecOps=Developers+Operators+Securitys,DevSecOps即在保证持续集成交付、敏捷开发的同时,保证业务的安全性。在DevOps的软件开发过程包含计划、编码、构建、测试、预发布、发布、运维、监控。在计划阶段执行安全性分析,确定在哪些模块容易引发安全问题;在编码阶段使用API密钥、SSH公钥等保护代码安全;在构建阶段执行静态代码扫描来发现代码中的缺陷;在测试阶段检测用户身份验证、授权、SQL注入等相关的安全问题;在预发布阶段使用安全分析工具进行全面的渗透测试、漏洞扫描;在运营运维阶段,通过一定的监控体系搭建,不断的监控系统情况,保证系统高可用、高可靠。

GitOps=Git+Operators,这是基于Git(版本控制系统,如Github、Gitlab)的基础架构和应用程序结合的方式。GitOps更多是基于云原生的一个解决方案,在GitOps中,一切可以被描述的内容(如部署策略、代码配置、监控)等都存储在Git版本控制系统中、基于云原生的容器(如Kubernetes、Docker)也使用Git命令控制,不使用原有的如kubectl的方式。对于开发人员来说,都要使用Git工具进行代码的托管、代码评审,GitOps降低了开发人员的学习成本,使用Git就可以自动创建多容器的编排了。

ITOps即IT运维全生命周期管理,在软件全生命周期中包含主机监控管理、日志管理、资产管理、事件管理等,而ITOps提供的就是把这些管理工具集成在一起的解决方案,帮助企业全方位、全链路的监控、管理。传统方式中企业一般都采购不同供应商的不同解决方案(取其优势),然后再组建个团队或找其中的某个供应商把这些解决方案都打通,但因为每个供应商的标准、技术设计都不一样,因此打通其实是很耗费成本。因此ItOps也正在上云,供应商开始通过收购或自研提供一整套的ItOps解决方案。

NetOps即网络运维,是在网络的全生命周期进行运维的解决方案。在设备入网的时候,进行批量的刷入、监控、目标版本升级,设备入网后进行业务配置、业务验证,业务上线后进行定期的批量审计、巡检,保证故障识别与解决。NetOps在DevOps环境中可以更加的灵活,通过自动化、虚拟化的方式提高解决网络问题的速度。

AiOps,即人工智能运维,通过机器学习算法自动的从海量运维数据中不断的学习,结合领域专家的指导不断训练模型,最终通过模型来分析决策,达到智能运维,在IT系统中总共会产生五类数据:机器数据、网络数据、代理数据、探针数据。机器数据是IT系统自己产生的数据,;网络数据是网络通信过程中产生的数据;代理数据则是通过在应用程序中插入代理程序,获取应用程序中函数调用次数时长、调用堆栈等数据;探针数据则是通过拨测模拟用户请求对系统进行检测获得的数据。获取数据后再结合人工智能算法,如逻辑回归、关联关系挖掘、聚类、决策树、随机森林、支持向量机、蒙特卡洛树搜索、隐式马尔科夫、多示例学习、迁移学习、卷积神经网络等,最后实现故障自动检测、自动修复、自动预测。

NoOps即无运维,完全自动化的运维。在NoOps中不再需要开发人员、运营运维人员的协同,从微服务、低代码、无服务全结合起来,开发者在软件生命周期中只需要聚焦业务开发即可,所有的维护都交由云厂商来完成。NoOps的目标就是去除在软件开发过程中所有可能出现的人为因素影响,提高交付速度、交付质量。

整个开发运维的发展趋势是从ItOps、DevOps、NetOps、AiOps、DevSecOps、GitOps、NoOps,而ItOps、NetOps、AiOps更多是运维域的解决方案,DevOps、DevSecOps、GitOps是开发运维域的解决方案,NoOps是终极解决方案。现在这些概念你都清晰了吗?


标签:
关于我们
公司简介
发展历程
青鸟荣誉
联系我们
加入我们
青鸟课程
BCVE视频特效课程
BCUI全链路UI设计
BCSP软件开发专业
BCNT网络工程师
启能职业教育基础课程
学习客户端下载
青鸟优师
青鸟云课堂
微信 公众号 咨询 顶部 首页
官方新版意见收集

*

官方新版意见收集

提交成功,感谢您的反馈。

我们会认真阅读和考虑每个用户的反馈。