12月10日,2021云上架构与运维峰会上,阿里云发布了业界首部《云上自动化运维白皮书》(简称“CloudOps白皮书”),并在其中提出了CloudOps成熟度模型。
阿里云资深技术专家、弹性计算体验与控制系统负责人田涛涛在会上进行了《CloudOps:自动化运维的新思路》的演讲,阐述他对未来云上运维与DevOps发展趋势的看法。以下是他的演讲实录:
云与DevOps需要更加紧密地结合
◾ DevOps的新趋势
DevOps从提出到广泛使用已经超过10年了,近几年,我们能看到DevOps的一些趋势:
1、DevOps的范围和内容随着公共云平台的兴起有了非常大的变化,不再需要像传统运维一样自行管理基础设施,术业有专攻,DevOps和SRE使企业能够以更高的变化率构建和发布应用程序。
2、随着微服务改造和服务治理的深入以及云原生理念的深入,我们看到了垂直化和规范化带来的好处是快速交付,越来越多的企业架构有着服务化的设计,意味着服务的主题从内部延伸到更大的范围,这样应用数量激增无疑给运维带来了前所未有的挑战,在极度复杂的网状应用结构下,可观测性的实时性和准确性是个巨大的挑战,同时因为某些不受关注的应用产生了远大于预期的爆炸半径。
3、过去的几年,自动化已经是DevOps中最重要的策略,但是随着企业应用的变化和越来越快、越来越敏捷的组织和应用交付形态,包括从传统的单体或者产品思路,到今天的开放化背景下,API化和AS Service化对自动化的要求更加迫切。
开放性带了巨大挑战,从之前的点对点支持,到了单点的一个基础设施平台需要对接众多的内外的客户,各团队能够独立、快速地排查出问题将使得组织更敏捷,因此自助服务已经成为一个重要的趋势,只有自助化服务才能实现服务边际成本充分的降低。而自助服务能力恰好也是云计算最重要的能力。
◾ 云可以进一步发挥DevOps的优势
上述三个DevOps所面临的趋势和挑战,都可以通过充分利用云,得到很好的回应与解决。如何解决我们先按下不表,但这也许并非是一种巧合,因为DevOps和云计算有非常多的共同点。
DevOps带来的主要优点是降低成本、提升交付的效率、提升灵活性、提升交付质量的可靠性四大方面。在这四个方面云计算也具有非常大的优势。
l 降低成本: DevOps可以减少组织之间的沟通协作成本,提升自动化程度;而云能帮助降低企业的硬件采购支持和基础资源运维的投入,同时提供更多更方便的选型形态。
l 提升交付速度: DevOps的敏捷组织和自动化构建可以极大提升交付速度,对于应用需要的大量资源,云平台就是一个巨大的资源池,可以按需创建释放,通过结合云和DevOps可以极大的提升从资源到应用的构建速度。
l 提升灵活性: DevOps文化天然在灵活性上有着巨大的优势,让企业运营人员更加关注业务创新,而云计算能够快速自助的交付资源适应运营的需求。
l 增强系统的可靠性: 通过系统建设以及标准化和工具化建设,DevOps对于系统可靠性的帮助是巨大的, 通过工具和平台建设避免和降低人为问题和故障,同时高效的组织融合可以减少内部的不必要沟通。而云平台的首要责任就是可靠性和可用性,云天然提供了高可用的基础设施,以及工具和服务化能力,可以大大降低系统成本,创建更具弹性、安全性和标准化的系统。
DevOps和云的助力企业更好的实现降本增效。
◾ DevOps进化的下一站:CloudOps
从传统的研发到运维的模式到DevOps,极大改善了从组织文化到应用交付部署的效率,对于系统交付和运维是巨大的进步,方便企业更加专注业务创新。
如今,随着越来越多的企业使用了云资源,将基础设施的运维责任主体委托给了云厂商,我们认为一个新的时代已经到来,就是以云为中心的DevOps,将重新定义DevOps。通过充分的结合云计算和DevOps的优势和能力,我们定义了一个新的词汇:CloudOps,着重强调如何在云平台上更好的践行DevOps,再次实现运维的进化。
CloudOps是传统IT运维和DevOps的延展,通过云原生架构实现运维的再进化,充分帮助企业降低IT运维成本、提升交付速度和系统灵活敏捷度、增强系统可靠性,构建更加安全可信开放的业务平台。
CloudOps成熟度模型
报告显示,目前几乎所有企业都十分认可公共云带来的产品和服务和能力,并且大部分的企业已经在公共云中使用DevOps,但是,只有很少一部分的企业认为自己真的发挥了云的潜力。
我们认为,云需要正确管理才能实现最佳性能与收益,为此,云也提供了大量的自动化和自助服务能力帮助企业,在实践CloudOps的过程中,我们需要思考下面的问题:
1、云提供了大量的自动化工具和自助服务能力,如何更好地使用这些工具来实现自动化?
2、云平台天然提供了足够的弹性能力,如何利用弹性能力?
3、云上的高可靠性和可用性应该如何来实现?
4、云上的网络管理和安全和可审计能力挑战远大于线下,应该如何管理?
5、云资源如果不做好成本管理、阈值设计和资源量化管理将带来巨大的浪费,应该如何优化?
结合上面提到的几个部分的挑战。我们归纳CloudOps的5个建设与衡量维度:
◾ 自动化能力
DevOps最核心的一个能力是自动化能力,同样,自动化能力是云最核心的能力,为了提升自动化能力和可编程能力,云平台暴露了大量的开放API,同时也提供了大量的自动化产品和能力。借助于云平台的提供的自动化能力,企业可以减少寻找更多的DevOps专家,充分的使用云平台的自动化能力。
云平台提供的主要的自动化能力包括3大部分:
首先是Infrastructure as Code能力,借助于IaC工具和开放的OpenAPI可以快速自动化的实现重复部署和部署脚本的版本化管理,尽量使用标准化的策略减少环境差异,同时实现应用交付和操作审计。为了更好的支持自动化,阿里云也构建了类似资源编排、Terrform等多种形态来编排基础资源。
完成了基础资源和应用交付之后,日常运维主要是对存量资源进行操作。随着越来越多的任务使用自动化模式,运维任务复杂度越来越大,需要将复杂的任务解构,通过组合更多的原子性任务完成运维自动化,越来越多的企业开始使用Pipeline(Ops) as Code的能力。通过将执行任务的上下文清晰梳理和可视化依赖关系;让各个Job单元原子化,可以高效的完成单元任务并降低单个任务的复杂度;通过任务抽象进行功能的维护和扩展。
除了前面提到的基础设施自动化和基础资源的自动化运维,云平台将大量的资源可编程化,通过OpenAPI暴露了大量的其他辅助能力对资源全生命周期管理。但是随着业务系统的复杂度提升,平台需要暴露更多的能力,例如通过事件体系将底层资源的变化实时发送出来,提升透明度;通过监控体系暴露出来更多的metrics;在应用出现问题之后,通过简单的自助诊断服务可以简化问题发现时间,借助于我们的管控运维通道云助手甚至可以一键修复问题。
弹性能力是云计算的最重要的能力之一,通过超大规模的资源池配置能力,快速实现分钟级的资源需求供给,满足不同规模场景的弹性需求,借助于灵活的弹性能力可以充分的帮助企业降低成本、提升可用性。在云上使用弹性能力可以整体提升企业业务的灵活性和稳定性。
◾ 弹性能力
弹性能力按照业务需求可以分为2个方向,一个是垂直的弹性能力,一个是水平的弹性能力。
垂直弹性适合于应用不太能水平扩容的场景,常见的如单体应用、独立应用、有状态应用的场景下,需要快速升级或降低配置以应对业务变化。
水平弹性比较适合于分布式应用、无状态应用,通过控制台、API和我们的自动化工具可以实现分钟级的扩容数千台计算资源。
为了降低使用弹性伸缩的成本。弹性伸缩支持通过设定不同模式来自动化实现资源的弹性伸缩,甚至根据历史记录智能预测资源需求量。
◾ 可靠性能力
云平台提供了从数据中心、硬件、数据、自助服务等多个层次的可靠性构建能力。
云计算的超大规模的数据中心,以及多可用区支持,让用户可用基于云以低成本、高扩展、高可靠性快速的构建同城容灾、异地容灾等高可用方案,规划和部署应用时需要优先做好容灾架构的设计和部署,提升可靠性。
在数据可靠性上,云平台的规模红利也有天然的优势。这不仅体现在存储的多副本和数据可靠性极高的SLA保障上,云平台还以服务化的方式向用户暴露了OpenAPI,用户可利用云厂商提供的快照、镜像等能力,实现数据备份容灾的高可靠性能力建设。
可观测性能力最近几年是DevOps中非常受关注的特点,为了支持不同层次的用户需求,云平台通常会提供以下几大类监控服务能力:云资源监控、应用层APM、用户业务层监控。
除了在基础设施、数据上的容错能力外,云服务厂商通常也会提供应用服务的容错能力,帮助用户构建具备弹性、容错能力的分布式系统。例如通过安全组采用一些断网演练通过AHAS(Application High Availability Service),可以通过流量防护、故障演练、多活容灾、开关预案等实现应用的自动化流量控制、业务降级与预案执行。
◾ 安全与合规能力
根据Flexera 2021 state of cloud report ,81%的企业最关心的是云上安全,排第一位,75%的企业非常关注云上合规。所以安全和合规是云上重中之重的话题。
云平台提供了众多策略、控制和技术,共同帮助用户确保数据、基础设施和应用安全,保护云计算环境免受外部和内部网络安全威胁和漏洞的影响。
安全合规能力上,云平台负责基础设施和产品安全可信可审计,包括身份和访问控制和管理、监控和运营,从而为客户提供高可用和高安全的云服务。客户需要适当的配置和利用平台和产品的能力,构建自己的云上应用。
网络是所有云服务的唯一入口,网络攻击是种类最多、危害最大,也是最难防护的风险之一。云计算平台会提供一套成熟的网络安全架构,以应对来自互联网的各种威胁。可以通过安全组、子网ACL以及路由策略来保障内网之间的通讯和隔离,通过云安全中心提供的云防火墙应用防火墙、DDOS防护等保障系统的网络安全能力。
操作审计和追踪是安全生命周期的重要组成部分,可以识别潜在安全配置错误、威胁或意外行为,也用于支持质量流程、法律或合规义务,还可以用于威胁识别和响应工作。通过类似日志审计服务提供了审计和更改跟踪功能,方便快速追溯变更范围和源头。
传统的运维通道需要借助SSH取得密钥进行管理,并开放相应的网络端口,密钥管理不当以及网络端口暴露都会对云上资源带来很大的安全隐患。原生的阿里云云上自动化运维通道——云助手,可以帮助客户安全、高效的运维云上资源。
◾ 成本与资源量化管理
云服务相比IDC的最大特点之一是使用资源而非持有资产。在云上不仅可以快速的创建和释放资源,相比IDC也可大大的降低使用成本。同样根据Flexera 2021 state of cloud report,云上客户第二关注的就是云上成本支出和管理。
以云服务器为例,它的资源成本主要由计算、存储、网络三大部分构成。在云上,计费方式直接决定资源的定价,选择合适的计费方式可以直接节省成本。如相比使用按量计费,选择抢占式实例最高可节省90%的成本;同时,不同产品提供丰富的规格和计费方式,选择合适的规格能有效的降低资源成本;同样通过提升资源的利用率也能够比较大的节省开支。
为了实现成本优化和资源量化,我们也提供了一系列的产品,从成本分析、资源优化、资源规格、资源使用洞察和自动化工具可以充分的帮助企业降低不必要的云上资源支出。
◾ CloudOps成熟的模型全景
云上运维是一个从简单到复杂,从成长到成熟的过程管理,以降低成本提高效率为核心目标。在现实中,根据使用者的上云状态、使用规模等,其云上运维的思路都不尽相同。我们结合常用的成熟度的模型将CloudOps的成熟度模型分为5个等级。
为了方便大家更好的理解和应用刚刚我所阐述的成熟度模型的详细内容,我们制作了云上自动化运维(CloudOps) 白皮书的第一版,大家可以在这本《云上自动化运维(CloudOps) 白皮书》中看到完整内容。
云平台的责任是构建坚实可靠的基础设施,以及围绕着技术设施构建的全套运维服务和能力(其中绝大部分都是免费的)。除非企业愿意将自己做成云平台,否则在这上面的投资都是某种程度的浪费。
今天,我们一直强调唯快不破,软件研发到交付正在发生剧烈的变化。从单体巨石应用到分布式和微服务架构,从自动化到可观测性,传统的运维需要进化到新的思路,企业应该是更少地关注基础设施和基础资源,更多的回归到应用本身。
我们相信,拥抱云原生的企业,将用新的工具与思路快速完成应用的开发与运维,需要云平台与企业一起共建、持续进化,应云而生、应运而生。