“ Ops 之前不是一个专业,它只有经验,现在是在把经验变成专业,对外提供标准化服务。”我的同事、阿里云弹性计算稳定性负责人鹿棠,他相信,这个是让运维真正走向专业化的时代。运维人员凭借着自身的技术和经验,为企业降本增效,而非人工救火队。
这是最坏的时代,不少运维人陷入了职业危机。
运维人员似乎也陷入了极致的内卷之中。最早凭几行脚本和深厚的经验就不愁就业,到如今各种学不完的运维工具,不仅需要上知业务架构和代码,还需下懂内核和硬件。随着云计算、 DevOps 等技术趋势的普及,运维人员面临着越来越多的挑战,他们从前所面临的问题和工作方式,也在重新被定义。
本文将讨论运维工作所面临的新变化新趋势,以及在云计算时代大潮下运维人员的工作边界与路径是如何被重新定义。最后分享,在如斯背景下,我们认为的一个好的运维体系应该具有什么特征。
运维面临的新趋势
回顾历史,除去早期大企业内部的少量IT运维人员,中国运维行业的兴起应该是随着互联网行业上个世纪90年代的发展而来。因此,互联网行业的运维能力代表了最领先的水平,也引领着运维领域的趋势和方向。
如今,20年过去了,互联网时代进入下半场,传统企业数字化升级深入。运维人员所面临的环境和挑战有了许多改变:
1、企业 IT 系统越发复杂,运维挑战更大,需要实现更高程度的自动化。
随着数字化升级的深入、业务的增长,企业的IT系统日趋复杂,林林总总的网络设备、服务器、中间件、以及业务系统微服务化等让IT运维人员难以从容应对,即使加班加点地维护、部署、管理也经常会因这样或那样的故障而导致业务的中断,严重影响业务的正常运行。
同时,市场竞争变得越来越激烈,企业业务迭代需提速,以抢占市场先机,互联网行业尤为明显。产品市场化或迭代的速度成为产品成功至关重要的一个条件,如何更好地支持业务的快速迭代就成了运维人员又一压力。显然,人工的运维方式难以为继,于是国内运维行业开始寻求自动化。
工欲善其事必先利其器。随着技术的发展和自动化运维工具的出现,包括事件监控预警、自动化部署、自动化编排以及自助诊断等工具,为运维效率的提升提供了可能。
2、云计算的诞生和大规模普及,带来了运维对象、运维工具甚至是技能的变化, DevOps 趋势引起关注。
一般,很多企业会把运维部门的工作分成两个层级:一是基础设施运维,主要是针对企业IT基础设施的管理,包括服务器、交换机、网络等物理资源的监控、报警、维修上线等;二是应用运维,主要是针对企业具体业务的运维,包括某些业务应用的上线下线、发布部署和扩缩容等。
从业务的维度来说,应用运维的效率提升能更直接地加快业务迭代的效率和增长速率;基础运维则是根基,自建数据中心的企业,其运维的主要工作侧重于基础设施。
云计算具有“软件(或服务)定义一切”的特点,云厂商基本承接了底层基础设施的维护与虚拟化的工作。上云之后,企业运维的主要对象则从硬件(服务器等),转向了面向服务 API 的运维,包括主机运维和应用运维,提倡自动化的部署流水线和持续交付的 DevOps 愈发受到关注。
我们会发现,技术的发展是一个不断追求将底层基础设施屏蔽、使开发人员无需关注底层资源的过程,从 Severless 、函数计算这些炙手可热的概念,也能体会一二。
早期,企业可能会是几个运维人员维护一些应用,负责“从下到上”的维护,新业务的扩展只能招聘更多运维人员。这种“堆人”的战术是不可持续的。实际上,在许多的大企业内部,许多运维工作已经开始了初步的“平台化”,即将底层的资源进行集中管理,以节约管理成本。这种“平台化”,也促进了部分企业内部公共组件的服务化、标准化。
只是,这种方式毕竟比不上云厂商的规模效应。
而平台化的对外形式即云化,可见,从企业内部也能看出,云化已是无法逆转的趋势。借用一篇文章中的说法:云计算的一个重要特征就是“开箱即用”,由云供应商提供集中化的运维管理并以服务方式交付给最终用户。这让云用户可以从很多繁琐的日常运维工作中解放出来,真正关注自身的业务发展,从而提升整个行业的运营效率。
3、人工智能与大数据兴起
到近几年,运维时兴概念不止于 DevOps ,还有各种 DataOps 与 AIOps 。这些都反映了运维领域智能化、数据化运作的需求。
智能化实际上是自动化的更高追求,可以进一步释放运维人员的时间。人工智能热潮卷到一切实现能够自动化的领域,运维领域也不例外,这必然是发力的重要方向之一。不过,在大多数企业还未完全实现大规模的自动化,甚至初步的代码化时,智能运维实际上有点遥远。
新的工作边界与实现路径
我们可以看到,环境的变化给运维带来了自动化标准化、 DevOps (开发运维一体化)和 AIOps (智能化)三个趋势,运维需要在企业运维体系中引入相关理念,甚至进行彻底的改造。而笔者认为,构筑一个面向未来的运维体系,除了关注上述新趋势,还需要关注云时代下企业运维的工作边界和实现路径的变化。
诸多时代大潮中,给运维工作带来最大冲击的,无疑是云计算的大规模普及。业务搬到云上之后,底层的运维工作变少,便引发了运维人员危机的大规模讨论。
运维人员的终极目标就是通过高效统筹IT资源帮助业务实现业务价值。运维最关心的四大方面,可以拆解为:效率提升、稳定、安全、成本优化。到了今天,运维人员追求的还是这四个方面,但在云计算时代,其工作内容的边界、实现手段及路径已发生了巨大变化。
1、持续提效,从单点自动化到标准化:原来,写 Shell 脚本、借用开源工具是常见的效率提升方式。然而,这种自动化往往是单点的、割裂的、非标准化的。有的时候,甚至两个工程师所用的脚本都是不同的,工具也不同,而且由于企业内的运维组织架构与分工不同,会存在能力重复建设或信息孤岛,对企业而言,运维效率是打折的。所以我们会说,从前的运维是一种“经验”,不够系统化。经验往往依赖个人积累。
今天, DevOps/GitOps/IaC 可编程基础设施等趋势的出现,就是想改变这种单点的、非系统化的“自动化”,云计算在屏蔽底层硬件的基础上,还提供了多种开箱即用的工具,推动了DevOps的发展。这让运维效率提升的关键词变成了代码化、标准化。运维人员需要深度结合自身企业的特点,将经验抽象化、产品化、平台化地提供给研发人员。
2、稳定可靠,更少关注底层,更多关注应用和服务:稳定本来可说是运维最为关注的“基石”。传统的运维要与物理机、网络设备打交道,还需要建设容灾、监控和告警系统来保障业务的稳定运行。如今,云计算在平台层面通过大规模的异地容灾、热迁移等技术,实现了较高的 SLA 。企业的运维人员可能只需要偶尔根据云厂商的建议,通过几个简单的 API 或者点击来避免基础设施对业务的影响。现在是需要知道自己要做什么,点点鼠标就完成,之前是建房子还需要自己找木头。
不过,业务的稳定=基础设施的稳定性*代码的稳定,运维团队释放出了更多的精力去关注应用和服务的稳定性。在去年全球运维大会上,笔者发现“技术运营”和“ BizOps ”这些概念也开始出现,都是运维的新价值方向。
运维埋头搞机器的时代已经过去,“技术运营”要求运维人员更多参与到业务当中,提升用户体验,比如考虑大促期间集群是否要扩容、带宽是否足够、压测数据如何等。 BizOps 则提倡最了解系统运行状况的应用运维工程师与需求方业务人员之间的反馈与互动,推崇的理念是"好系统是运维出来的"。
3、安全,从自行负责到责任共担:安全有很多个维度,从我们耳熟能详的漏洞防护,网络攻防,到企业常用的代码检查、权限管理、日志审计,一直到更高等级的可信计算,全链路加密等。这些在大企业里可能需要设立一个安全团队去负责。比如做日志审计的话,安全团队则需要收集每一条日志,逐一分析和匹配,同时随着业务代码迭代而迭代。高度复杂性也让很多小企业直接选择裸奔或者使用昂贵的第三方解决方案。
云则直接提供了多层次、全链路的安全,支持精细化的权限管理。比如,云上所有的操作都会留下记录,事后可以审计和追溯,这在企业内部无疑需要巨大的成本;阿里云云上专有网络为企业提供了更便捷的网络隔离与流量控制;阿里云弹性计算的最新一代云服务器全量搭载安全芯片,实现服务器的可信启动,确保零篡改;在此基础上,还通过加密计算隔离环 enclave,进一步实现数据的可用不可见,基本已经满足了金融级别的安全可信需求。
从前, IDC 时代企业自行负责 IT 安全;近几年,云安全责任共担模式在业界已经达成共识。云厂商负责云基础设施层面的安全,用户负责业务或称为虚拟化层以上的安全。用户可以在云安全市场里挑选合适的产品来保护自己的内容、平台、应用程序、系统和网络安全;同时做好权限控制,避免如删库跑路等悲剧的发生。
4、成本优化,从固定成本到 FinOps :
技术层面而言,云计算所具有的“软件定义一切”的特性,给运维和开发人员的工作方式带来了变化,其“弹性”的特征,也给企业的提供了一种降低资源闲置的“成本优化方式”。
而在商业模式方面,云计算的“租赁”模式,与传统的 IT 硬件采购不同,企业的财务需要实现从 Capex (资本性支出)到 Opex (管理支出,即运营成本)的转化。云计算有丰富的计费模式,进一步帮助企业达成IT的灵活性与低成本之间的最佳平衡。
因此,对于运维人员而言,云上运维意味着转变成本优化的思维。
随着企业将更多核心业务从数据中心迁移到云上,越来越多的企业迫切需要对云上环境进行预算制定、成本核算和成本优化。从固定的财务成本模型,转化为变化的、按需付费的云财务模型,这是一个重要的观念和技术转变。然而大多数企业尚未对云财务管理有清晰的认知和技术手段,在 FinOps 2020年调研报告中,将近一半的受访者(49%)几乎没有或没有自动化方法管理云支出。
为了帮助组织更好了解云成本和IT收益, FinOps 理念开始流行。 FinOps 是云财务管理的方式,是企业 IT 运营模式的转变,目标是提升组织对云成本的理解和更好地做决策。2020年8月, Linux 基金会宣布成立 FinOps 基金会,通过最佳实践、教育和标准推进云财务管学科。
FinOps 社区中的一位从业者分享了一个来自银行业的实践,通过对某个应用的 severless 架构改造,最终实现了月成本比本地部署降低60%。他指出,云在降成本方面的作用似乎毁誉参半,实际上这受到企业云成本优化成熟度的影响,他将其分成爬、走、跑三个阶段,当企业纯熟运用了云成本优化后,成本优化的效果是极其显著的。
目前云厂商开始逐渐加大对 FinOps 的支持,帮助企业的财务流程可以更好适应云资源的可变性和动态性。比如 AWS Cost Explorer 、阿里云费用中心,可以帮助企业更好进行成本分析和分摊。同时,企业还需要通过技术降低成本,比如通过敏捷的弹性伸缩、服务选型、云上 IaaS+ 的能力和灵活的计费模式,充分发挥云的特性。
运维体系应该具有的四大特征
综上,我们发现,在云上,硬件设备、硬件的监控和调度工作已经交由云厂商完成。企业运维的工作重心转变为企业内部运维体系的设计与构建,即需要深度结合自身企业的特点,将经验抽象化、产品化,形成一套属于自身企业的运维体系。
结前文总结的合运维自动化、 DevOps 、 AIOps 和 DataOps 等新趋势,以及云时代下运维工作边界的变化,我们认为,一个好的运维体系应该具备以下四个特征。
1、自动化标准化,体现了 DevOps 和基础设施即代码( Infrastructure as Code ,简称 IaC )等理念。
可以说, DevOps 的基础不仅仅是 IaC ,而是 everthing as code 。只有完成了代码这一步,才能做到标准化,运维平台与开发通过标准的API流畅地交流。代码化也是最终目标“智能运维 “AIOps ”或“ NoOps ”的基础。
阿里云弹性计算发布的 ECS 自动化运维套件就体现了 IaC 的理念设计,其中资源编排 ROS 和运维编排 OOS ,可以让用户通过模板的方式实现自动化的部署和批量运维操作,还支持更为方便的拖拽式操作。研究机构 Gartner 在2021年十大云计算趋势中就提到“自动化的云编排和优化”。阿里云的 ROS 和 OOS 、 AWS 的 Cloud Formation、Terraform 等,都是类似的自动化编排工具。
阿里云 ECS 自动化运维套件,对底层资源完整全面的监控,并以事件的方式开放给用户,用户可以通过 OpenAPI 或云监控订阅,方便其基于事件驱动构建自动化运维体系,这是建设自动化运维体系的重要基础。
2、具有明确的权限管理与能够快速集成的安全能力。权限的管理、操作的可追溯与可审计,能够有效地控制企业安全风险,防止删库跑路等事件的发生,并能实现事后的调查与复盘。
阿里云 ECS 自动化运维套件中的云助手,会完整记录 ECS 中的所有操作记录; ROS 和 OOS 等编排工具也支持权限管理。前文也简单提到阿里云有非常完善的安全能力,实际上,企业在阿里云上所构建的运维体系,不仅仅是利用自动化工具所搭建出来的运维体系,同时也拥有了阿里云底层的智能运维能力,这才是企业在阿里云享受的完整运维体系。
3、覆盖全面,包括自动化的性能管理与云财务管理工具等,可辅助云成本优化。
早期的运维往往聚焦在单点的自动化,运维体系追求的应该是全流程的自动化,覆盖资源和业务的全生命周期。
阿里云 ECS 自动化运维套件覆盖了云上服务器的全生命周期管理,从迁云、部署、日常运维到弹性容量调整。其中弹性伸缩服务 ESS 和弹性供应组 APG 工具针对不同场景的资源扩缩容。利用资源优化顾问可以识别出来使用率低的资源,用户可以对此资源进行调整以提升资源利用率、降低成本。
4、具备智能化、数据化的基础。完全实现智能运维,我们认为在大多数企业中还是一个理想的目标,但运维体系至少具备往智能化升级的基础(即代码化标准化),或具备部分智能化功能。在阿里云 ECS 自动化运维套件中,智能化的特性主要在管家服务中,管家服务指的是阿里云 ECS 一系列用户几乎无感的智能功能,包括故障的自动诊断与修复、资源的自动监控与分析优化,更不用说阿里云 ECS 底层的热迁移等智能运维能力。
从 IDC-host 到 Cloud-host 时代,如今则是进入了 Build-on cloud 的时代。无论是 DevOps 还是云化,都是大势所趋,身处其中的运维、开发,企业或云厂商,都无法逆转。与其感叹时代车轮太快,不如主动拥抱新技术趋势,将时代趋势内化为自身的技术红利与竞争力。从业者主动学习相关知识,作为云厂商,阿里云也希望推动 DevOps 理念在中国的落地,帮助中国企业提升数字化、自动化能力。