华为云DevOps系列之 —— 持续运维与监控(一)运维的演进与 DevOps
【摘要】 华为云DevOps系列之 —— 持续运维与监控(一)运维的演进与 DevOps
随着容器技术的普及,越来越多的企业通过微服务框架开发应用,微服务架构的流行,给应用开发带来了灵活性、扩展性、伸缩性以及高可用性等优势,业务实现更多使用云上服务,运维也转向云上的运维服务,对于云上应用的运维也提出了新的挑战。
运维演进三阶段
- 第一阶段:黑屏,
人工运维
。人工的运维依赖,人力、效率比较低下 - 第二阶段:白屏,
自动化运维
。自动化运维最大的特点就是把脚本变成工具,然后 push 到机器上进行自动化的执行。这样可以减少人工干预,来实现自助的运维 - 第三阶段:
智能化运维
。AIOps 是一个趋势,它可以通过少量的人机交互,通过自驱动的方式来实现智能化的运维。最重要的是人机交互变少了,无屏虽不可能但是个趋势,少量的人机交互,它有自决策、自驱动
传统运维与云上运维的区别
传统运维 | 云化运维 |
---|---|
基础运维工作量大 | 注重应用运维(业务) |
用户部署各种运维工具 | 运维工具普遍化、集成化 |
难以进行基础设施弹性扩缩容 | 弹性、敏捷(弹性伸缩、按需付费) |
人工操作较多 | 自动化运维 |
- 传统运维工作量大
- 一般来说,很多企业的运维部门主要工作包括
基础运维
(针对企业IT基础设施的运维)、应用运维
(针对企业具体业务的运维) - 较大的运维部门可能还有单独的运维开发,负责为公司运维部门开发运维工具和平台
- 当用户决定上云(尤其是 IaaS 公有云),就表示用户已经把基础运维以及相关的工具平台开发工作交付给云供应商,而把
应用运维
作为整个运维部门的核心
- 一般来说,很多企业的运维部门主要工作包括
- 公共组件普遍服务化
- 在企业内部,不同业务 IT 系统都会用到很多公共组件(如数据库,消息队列等)。由于团队的技术背景不同,业务要求不同,经常会出现这些公共组件选型的不一致性,导致上线后的运维负担非常重。所以,企业内部运维部门的一个重要工作就是把这些公共组件
标准化
并最终服务化
,能够对具体业务部门完全透明。这样即可以降低运维部门自身的运维成本,又可以提高业务部门的开发效率
- 在企业内部,不同业务 IT 系统都会用到很多公共组件(如数据库,消息队列等)。由于团队的技术背景不同,业务要求不同,经常会出现这些公共组件选型的不一致性,导致上线后的运维负担非常重。所以,企业内部运维部门的一个重要工作就是把这些公共组件
云上运维挑战 —— 海量资源
- 过去
- 用户数单一
- 请求并发低
- 单体应用较多
- 资源种类少
- 服务器
- 专线
- 现在
- 海量用户
- 海量请求
- 海量容器、微服务
- 海量资源
- 物理服务器、云服务器
- 专线
- 云服务:SaaS
- 大数据服务
- AI 服务
面对海量资源管理,如何减轻运维负担?
云上运维 —— 海量场景下自动化运维要求
运维标准与规范
:制定运维标准,标准会在工具里固化监控
:泛监控,运行时,静态,数据化,可视化泛监控,不是说传统的监控,是把线上想知道的一切都数据化,最终数据不是给人看的,是给机器
去消费的,数据是我们的生产资料,不是可视化,那不是我们的目标CMDB
(Configuration Management Database):CMDB 应该放什么?一般放服务器相关的
、网络相关的
、应用相关的
这三个维度的相关信息。为自动化运维提供数据基础高效的CI/CD
:一定要具备快速的交付能力,主要体现在以下两个方面- 第一,新开发的能力能不能快速上线
- 第二,想扩容一台机器能不能快速扩出来
DevOps 概述
- DevOps 的产生和兴起是历史的必然性,最大的原因就是为新技术和新的研发工程实践的成熟度提供了基础,例如:
- 以
云计算
为代表的灵活弹性的基础设施供给能力 - 以
微服务
架构为代表的架构实现为软件的持续交付降低了风险,提升了软件架构的灵活性和交付的效率 - 以
Docker
为代表的新的软件的交付模式,简化了交付的难度,且非常适合承载微服务架构下的软件的交付 - 以
敏捷开发
为代表的研发工程实践达到了一定的成熟度,这使得流式持续交付成为了一种可能,传统的研发模式和运维管理体系已经不适合在当下这种形态下新变化、新要求的体系
- 以
- 随着劳动力成本的攀升,以前往往依靠大量人员进行投入的人员密集型的开发和维护体系已经变得不堪重负,这时就需要 Dev、Ops 进行一个双向的融合。Ops 参与研发流程,提供运维方面的建议和要求;而 Dev 介入运维活动,更好地重用IT能力,减少不成熟技术的引入
为什么需要 DevOps
- DevOps 是为了打破开发、运维和测试之间的壁垒,让软件开发最后一公里 ——
运维环节
变得更加敏捷和适应变化 开发和运维职能的紧密协作
是 DevOps 的核心思想
DevOps 下的运维系统特点
- 高可用:运维系统高可用是基础
- 高成功率:运维监控需要精准的指标,精确的操作,来保证运维动作的高成功率
- 高效率:运维系统一定要具备很高效率,快速扩容、快速部署
- 可回滚:运维操作需要具备可回滚的能力
- 自动化运维:减少人机交互,将更多的运维工作交给系统
- 应用管理:以应用为中心,实现应用的持续部署、集成、运维等
DevOps 运维目标
- 保证系统的稳定运行,达成服务的质量目标
- 运维职责
- 可用性改进
- 延迟优化:不同组件之间网络调用的延时优化
- 性能优化:运维过程中针对于业务出现的性能问题,需要针对性的提出性能优化方案,优化相关部件
- 效率优化:提高各部件资源利用率
- 变更管理:管理业务在不同环境的部署、上线
- 监控:实时监控系统的运行状态,掌握系统异常
- 紧急事务处理:定位、处理、管理故障
- 容量规划与管理:为应用、中间件、基础设施等提供选型
云上运维 —— AIOps
- AIOps(Artificial Intelligence for IT Operations,智能运维),将人工智能应用于运维领域,基于已有的运维数据(日志、监控信息、应用信息等),通过机器学习的方式来进一步解决自动化运维没办法解决的问题
- AIOps 围绕
质量保障
、成本管理
和效率提升
的基本运维场景,逐步构建智能化运维场景- 在质量保障方面,细分为异常检测、故障诊断、故障预测、故障自愈等基本场景
- 在成本管理方面,细分为指标监控,异常检测,资源优化,容量规划,性能优化等基本场景
- 在效率方面,分为智能变更、聊天机器人等基本场景
- AIOps 目标:利用大数据、机器学习和其他分析技术,通过预防预测、个性化和动态分析,直接和间接增强IT业务的相关技术能力,实现所维护产品或服务的更高质量、合理成本及高效支撑
云上运维实践
- 监控自动化、配置自动化、作业自动化、日志分析自动化
- 监控自动化:现网资源/业务性能/可用性等监控
- 配置自动化:环境参数由 CMDB 统一管理
- 作业自动化:常用操作脚本化,杜绝后台操作,操作审计
- 日志分析自动化:集成 PinPoint/ELK/OneAPM,辅助问题定位
- 60% 以上的生产事故源于
人为操作不当
,所以运维团队应极力避免对生产环境过多人为操作
华为云立体化运维解决方案
- 云性能测试服务 CPTS(Cloud Performance Test Service)
- 应用运维管理 AOM(Application Operations Management)
- 应用性能管理服务 APM(Application Performance Management)
云上运维 —— AIOps 实践
- 通过运维数据,包括百种指标监控、KPI数据、调用跟踪数据自动完成故障根因分析
- 单维度异常识别:根据历史指标数据动态生成指标基线,无需人工配置告警阈值
- 复合事件异常识别:多维护异常指标因果关联分析,识别出根源告警
- 业务根因分析:提取业务正常与异常时上下文数据特征,如资源、参数、调用结构,通过聚类分析找到问题根因
最后,欢迎大家关注我的个人微信公众号 『小小猿若尘』,获取更多IT技术、干货知识、热点资讯。同时,我在公众号中分享了精心整理的一些视频资料(包括 Python全栈教程、AI教程、前端、数据库等),大家回复相应关键词即可获取网盘视频链接,感谢大家的关注😊
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)