自动化一切是云时代运维的首要任务
极客时间编辑部
讲述:初明明大小:4.19M时长:04:35
如今,越来越多的企业开始把自己线下的数据中心和机房搬迁上公有云,“云计算是未来”已经成了大多数人的共识。这对运维人员来说,又是一次被迫提升自己的机会。因为在云时代,运维人员将变得更重要,其面临的挑战也与传统运维人员有很大差别。此前,阿里巴巴高级技术专家滕圣波在其文章中对于“云时代运维人员如何面对挑战”作出回答:既然上云势不可挡,何不顺势而为,升级应对呢?
具体如何升级?以下是滕圣波给出的方案。
运维人员可以通过学习 DevOps 实践、熟练掌握各种自动化运维工具,以及积极参与开源和云厂商的生态建设来升级成为 SRE 。
而要想实现云上运维的顺利升级,首要任务就是“自动化一切”,如果列出 Top3,应该是:监控自动化、运维操作代码化、基础设施代码化。
监控自动化
先来看监控,包括了“监”和“控”两个方面。
“监”,从横向划分,包含了事件(Event)、日志(Log)、指标(Metric)、告警(Alarm)四个维度。
对于云服务商来言,事件其实是资源的变化。
日志是客户行为和云服务内部行为的过程记录,包含时间、操作者、内容、级别等要素。
指标是资源运行时的内部属性数据,运维人员需要关心系统的健康指标数据。
告警是指对于严重级别的事件,需要立即采取人工或者自动化动作。运维人员可以根据指标设定阈值来触发一个告警,也可以在事件和日志的基础上设定报警规则,触发告警。
“监”,从纵向划分,可分为底层基础设施的“监”和上层应用的“监”。
底层基础设施的“监”,需要由云服务商来提供基础数据,云厂商的监控往往会提供针对基础设施的事件、日志、指标、告警,运维人员可以很方便的配置和接入。
上层应用的“监”,可选择的产品就很多了,例如阿里云的应用实时监控服务 ARMS 提供了针对上层应用层的事件、日志、指标、告警,用户也可以选择开源的 prometheus 或者 zabbix 来自建。
基础设施和上层应用之间的边界并不是绝对的,真正需要的往往是从下到上的全监控。
“监”的目的,是为了“控”,这里的控,具体指的是对事件和告警的处理。以短信、电话、邮件等方式通知给联系人,是最简单直接的处理方式,但这种方式显然容易被人忽略,而且延时很大。因此,SRE 应该实现自动化的事件处理。
运维操作代码化
如何实现自动化的事件处理呢?程序员可能会自然想到自己写一个 Event Consumer 程序,从云监控拉事件,然后调用资源的 API 进行处理。这个做法看上去很容易,但是对于运维人员来说,具体实现会面临多种不确定的复杂问题,这里不做详细展开。
那么,如何解决这个自动化事件问题呢?两个建议:
选择一个可以快速开发的简洁的运维语言;
选择一个可靠的事件驱动的运维平台,而不是自己从头造轮子。
在运维语言方面,脚本化的语言成为了主流,在遇到复杂的逻辑的时候,可以借助 Python、Shell,而 C、C++ 之类的语言,运维人员用起来就有点沉重了。开源的运维平台,可以选择 Ansible、Puppet、SaltStack 等等。
基础设施代码化
云基础设施包括云服务器、云存储、DNS、CDN 等,而传统的云基础设施管理总是面临着各种各样的难题,例如咨询审批流程长、响应不及时,手工安装和配置速度慢、难以版本化,易出错、遗漏配置项等等。
为了规避这些问题,一个解决方案是“基础设施代码化”,它指的是用代码的方式管理基础设施,并且维护管理它的全生命周期,包括审计的要求。代码成为了审计很好的记录,代码变更也可以追溯到人、项目组,解决了变本、追溯和变更历史的问题。
怎么实现“基础设施代码化”呢?关键是需要一个平台。开源的 Terraform 是个不错的选择,它得到了各个主流云厂商的官方支持,用户可以直接使用。不过,Terraform 要求运维人员自己准备服务器来配置安装,还要自己维护这个平台。另外,云厂商也提供了开箱即用的云服务,例如阿里云提供的资源编排服务(ROS)。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论