简介:CloudOps:以应用为中心的自动化运维新趋势
12月21日,在阿里云弹性计算年度峰会上,阿里云弹性计算体验与控制系统负责人田涛涛发表了主题为《高效智能的云,CloudOps让运维更简单》的演讲,深度解读了云上运维新趋势CloudOps,并详细介绍了阿里云CloudOps自动化运维套件的新产品。
阿里云弹性计算体验与控制系统负责人田涛涛
本文主要根据田涛涛的演讲整理成文,内容分为三部分:
- 从Ops in Cloud 到CloudOps;
- 以应用为中心的自动化运维;
- CloudOps(云上自动化运维)白皮书发布。
01 从Ops in Cloud 到CloudOps
1、DevOps落地实践的痛点
DevOps从提出到现在已经有12年了,很多企业已经开始践行DevOps,并且取得了非常好的成功。但是,企业在DevOps落地实践过程中遇到了不同的挑战:
◾ DevOps转型前:很多企业会发现缺乏DevOps专家;DevOps的投入初期非常重,需要组织变革与调整;内部工具能力弱,随着业务发展,很多DevOps工具已经不能够满足企业的需求。
◾ DevOps实践过程中,关注点会发生转移:组织效能方面,更加关注如何实现高效敏捷地交付;在架构设计方面,关注如何理清架构之间的依赖关系,快速地交付应用,做异地或者多活迁移;自助服务方面,越来越多的企业选择使用自助服务,根据Gartner《中国DevOps调查研究报告(2021年)》,到2025年会有75%大企业将自助服务看作DevOps应用最重要的趋势。
◾ DevOps演进趋势上,越来越多的DevOps企业都选择了使用智能化的决策能力,包括评估DevOps能力成熟度。
2、DevOps in Cloud 趋势
结合企业上云的趋势,越来越多的企业已经开始在公共云上使用DevOps,这个过程中需要做应用的云化改造和适配,同时结合云原生的工具和任务流程编排,提升交付的效率。
在进行云上DevOps的实践过程中,很多的企业完成了微服务架构的改造和分布式应用的升级,同时服务治理也越来越成熟,但这个构成带来的应用激增和依赖复杂度提升也为企业应用的可观察性和系统的稳定性带来极大的挑战。
在DevOps的云上转型过程中,很多企业也给自己的巨石应用做了服务化的改造。并且几乎所有的企业都认为,开放的API和As-Service是企业开放和服务化的核心竞争力。
3、云上运维新趋势CloudOps
基于以上这些DevOps在云上的趋势,阿里云弹性计算定义了CloudOps的模型,结合DevOps和云的双重优势可以从成本、交付速度、灵活性和系统可靠性四个维度来看:
◾ 降低成本:DevOps通过组织效能的变革、数字化工具的建设,可以大大降低成本,而云可以通过按需资源弹性以及多种资源选型和付费方式来降低资源和人力的成本。
◾ 交付效率:DevOps可以实现CI/CD,而云可以实现秒级或者分钟级的资源交付。
◾ 灵活性上:用户对于应用的研发上线周期提出了更高的要求,比如7天交付一个APP,从0到上线至应用商店;而云同样可以帮助客户完成多种多样的基础设施的资源快速交付。
◾ 可靠性上:DevOps践行了自动化的理念,而云天然提供了基础设施的高可用。
从应用高可用,到技术资源高可用,以及系统的监控和洞察能力,DevOps和云是一个非常好的组合,因此在云上提出了一个新概念CloudOps,充分结合云和DevOps的优点,实现1+1>2的效果。
02 以应用为中心的自动化运维
CloudOps的核心理念是以应用为中心,因为只有应用才是客户最关注的。
一个应用从构建到交付的整个生命周期中,客户的关注点会发生变化:首先是应用的构建交付,如何实现自动敏捷交付;交付完成后,客户会关注系统的可靠性;一个可以快速提升可用性的策略就是弹性,结合弹性以及高可用方案来完成系统架构的升级;随着应用的在线,客户也逐渐关注应用发布后的安全合规和审计工作;而当应用的规模变得更大时,客户就会关注成本,完成一个持续的迭代和升级完善的循环过程。
1、应用自动化三部曲
自动化是系统升级改造的基础,应用实现自动化包括几个大的部分,其中最主要的是:基础设施的自动化、运维自动化、服务自动化。
1. 基础设施自动化:在过去一年时间里,阿里云发布了非常多的产品来简化基础设施自动化。很多公司和企业开始实现自动化,但是它的问题是自动化模板基于客户完成运行的,今天阿里云可以让这些模板不做任何修改,直接交给我们的引擎就可以执行。同时,越来越多的企业不太愿意使用JSON或者YAML来定义自己的基础设施,而我们今天发布的新产品ROS CDK可以很好地解决这个问题。
此外,为了简化自动化的交付,还提供了资源迁移工具、镜像的自动化构建功能,客户可以像构建一个容器镜像一样构建一个ECS的镜像。同时,我们会定义镜像族系,让用户永远像使用容器镜像一样可以自动选择最新的版本,而不需要更新配置文件。
2. 运维自动化方面:我们的运维编排OOS开放了任务市场,把积累的非常多的最佳实践和工具免费发布在任务市场中,用户可以去集成使用;同时,为了构建方便的关联多种应用,我们也发布了应用管理。
3. 服务自动化方面:我们始终把客户能够自助发现问题、排查问题、解决问题作为我们最主要的努力方向。
2、新产品:ROS Resource Migration
先介绍第一个产品——ROS Resource Migration,很多人都觉得,IaC(Infrastructure as Code)非常好,但在实践过程中挑战非常大。首先写出IaC的模板非常难,它需要非常多、非常复杂的领域知识和对脚本语言的理解;另一方面,模板写完后,随着应用架构升级,需要持续的更新模板来反映最新的基础架构。
为了解决这个问题,阿里云提供了新的方案,用户可以通过阿里云的标签功能,在打完标签后,我们的ROS系统会自动分析标签的依赖关系,帮用户构建一套IaC的模板。也就是说,用户完全可以不了解IaC,也不用去写JSON和YAML,阿里云会自动化地生成模板。模板生成后,用户可以非常方便地完成在多可用区、甚至多账号、多地域的部署,会大大降低之前构建一套基础设施模板的复杂度。同时,当用户写完模板后,还可以通过智能化的模板配置和定义,保证用户模板的部署成功率。
3、新能力:ROS的云开发套件ROS CDK
最近几年,我们发现很多企业都非常希望能够拥抱CloudOps,但是他们不喜欢JSON和YAML,为此阿里云今年也发布了新能力——ROS的云开发套件ROS CDK(Cloud Development Toolkit)。
它可以使用高阶的语言(如JAVA/Python等),像写脚本一样直接生成ROS模板,然后通过ROS模板再生成用户的基础资源设施。总结起来就是可以选择自己的开发语言、自己熟悉的编程模型,高效的实现Infrastructure as Code。
4、新工具:应用管理
为了简化应用的构建,阿里云发布了应用管理。应用管理非常简单,只需要选择一个标签或者导入已有资源,可以快速构建一套应用。有了应用视角之后,它可以是跨多产品的,帮用户去做自动化的运维、监控、发布和CI/CD,大大简化了整个运维过程、降低了成本。
另外,应用里最大挑战是应用升级,包括补丁管理、操作系统配置管理等,基于应用视角,我们帮用户做应用视角的分组,极大降低使用应用的门槛。
◾ 应用可靠性能力上:在应用构建完成之后,其实最大的挑战就是可靠性能力。阿里云在基础设施上提供了强大的应用可靠性能力,比如说多地域部署、多可用区部署。
◾ 弹性容错能力方面:我们构建了智能预测,它可以根据用户过去对这些资源的使用率和操作,动态推荐需要的资源;为了透明性,我们也开放了ECS事件体系,可以模拟一台物理机宕机或者磁盘I/O hang机型基础设施的容错演练;同时提供了应用高可用服务,可以模拟流量防护、故障演练等,大大提升系统之间的容错能力。
◾ 可观测能力构建上:我们有包括云监控、SLS、ARMS、Xtrace等产品,可以提供从基础资源到应用再到日志的全链路观测,以保障系统的可靠性。
◾ 数据的备份和恢复:我们提供了极速快照能力,可以秒级的完成快照创建。它使得用户进行操作变更的时候非常安全,不用像以前一样,需要等很长时间才能做成一个快照。由于使用快照有一定成本,我们做了一个新的服务,叫做快照保留周期,用户可以将不用的快照自动地归档或删除,降低使用快照的成本。
5、安全与合规能力建设
安全&合规能力也是阿里云和弹性计算基础能力,在基础平台(如网络安全和系统审计能力)和应用安全两个方面之外,我们今天提供了更多的能力。
当用户操作安全组,有不合规的端口变更之后,系统会自动向用户发出警告,帮助监控这些不合理的变更,避免系统风险;应用安全里面,除了云安全中心以外,操作系统的管控通道安全,也是我们一直关注的重点。
很多人运维ECS的时候,喜欢用SSH/RDP来登录服务器进行操作,阿里云提供的云助手,我们开放了基本的API,像一个浏览器请求一样,用户可以直接在客户端进行主机端的操作。不少用户反馈说,这个操作不像SSH一样便捷、不友好,所以我们发布了新功能——Session Manager。
通过Session Manager,不需要用户名密码可以直接实现对主机的管控,同时可以将它集成到已有的系统里,从而完成无密钥的登录、鉴权、操作和审计等操作。
此外,今年我们还发布了新功能——高危命令拦截,当用户执行高危命令,都可以拦截到,同时把用户的操作加入到回放日志。当用户执行高危操作的时候,通过Workbench进行录屏,录屏传到OSS上,从而可以大大提升我们的安全性及可审计通道的可靠性。
应用视角里,用户非常头疼就是判断两个ECS之间的配置到底有什么差异,为什么有的机器有问题、有的机器没有问题。之前用户想分析这个问题是非常难的,通过ECS的实例配置清单,我们会把诸如Windows的注册表、配置等信息,帮用户对配置信息进行快照,快照完成之后自动分析,分析两台机器之间的差异,这样的话用户可以快速地找到这两台机器的差异,大大降低排查问题的时间。
我们一直在追求配置管理的集约化,我们发布了ECS的密钥参数管理,客户可以把应用的参数统一到Parameter Store进行管理,它原生支持了资源编排、云助手、运维编排等多个产品,这样就可以避免参数配置时没有进行集约化管理产生的问题。同时,使用Parameter Store,也支持用户做参数审计。
通过以上新能力,可以大大简化ECS操作方面的运维复杂度、提供安全的通道以及实现配置集约化管理。
03 CloudOps(云上自动化运维)白皮书发布
1、DevOps in Cloud ≠ CloudOps
在云上用DevOps是不是就是CloudOps呢?可能不是的。根据最新的2021年的DevOps报告,其实只有20%的企业在云上充分发挥了DevOps的优势,这是因为云上云下有非常大的差异。
◾ 首先,操作方式有差异。云上提供了非常多的免费自动化运维工具和集成工具,可以大大地降低用户的成本,但需要用户和已有工具做集成。
◾ 第二,从资产到资源有差异。进行管理资源的时候,在云上可能认为它是资源,在云下的话可能是资产。例如,云上管理资源的时候,更多是把原机器释放、重新拉起一台机器,这样就完成配置升级、应用升级,而不需要关心资产形态,这就是云上云下操作形式之间的差异。
◾ 第三,统一化和规模化的差异。云上规模化非常庞大,可以随时开启或者释放非常多的机器,如果有误操作,可能会给企业带来比较大的成本或技术风险。
◾ 最后,云上对于安全和审计的实时性要求非常高。
2、CloudOps主要成熟度模型与白皮书
我们认为,CloudOps不仅仅是在云上用DevOps,更多的是要求用户关注云的特点。这些特点归纳为5个维度,即自动化能力、弹性能力、可靠性能力、安全合规能力以及成本和资源量化。我们详细划分了云上DevOps的5大领域,同时我们也把每个领域定义并划分了级别,形成了CloudOps主要成熟度模型。
以自动化为例,现在比较流行的看法是希望能做到无人值守,这些都定义在CloudOps主要成熟度模型里。我们希望通过这个成熟度模型,帮助客户衡量目前在云上DevOps是否已经足够成熟,以及如何能够提升自己的成熟度。
为了更好地帮助客户理解我们的CloudOps成熟度模型,我们发布了CloudOps白皮书,阿里云弹性计算的10余位技术专家共同撰写的CARES模型,从成本管理、自动化、可靠性、弹性容量管理以及安全合规五个方面,展示了如何能够在云上找到合适的运维方式和运维工具。
3、阿里云CloudOps产品族全展示
很多人说,云计算的本质就是运维能力的自动化。过去十多年,阿里云弹性计算一直在简化运维方面做了非常多的工具和努力,旨在全方位提升云上DevOps效能,也形成了完整的CloudOps产品家族。
◾ 成本管理方面,成本优化方案和成本付费模式方案,可以大大降低用户成本。
◾ 自动化服务上,提供了免托管运维,包括运维编排、补丁管理、配置清单、参数仓库等。
◾ 批量交付方面,提供有OpenAPI和弹性伸缩这些工具,可以大大降低自动化交付的复杂度。
◾ 实例运维通道,提供了非常多的方式,用户可以通过我们的web版,也可以通过云助手和最新发布的工具做集成,从而大大降低使用自动化运维的门槛。
◾ 可靠性服务上,是所有云上用户追求的重点,我们发布了应用管理能力。
◾ 在可观测能力、自助故障排查以及事件服务上,也发布了完整套件,并且大部分服务都是免费的。
◾ 安全合规方面,包括应用环境的安全和合规审计的便捷。我们集成了很多产品,来提升整体的安全合规能力,帮助客户及时地发现并排除安全合规的风险。
从最初的上云到今天用好云、管好云的时代,阿里云弹性计算一直在致力于为客户提供丰富、安全、便捷的云上运维产品与能力,未来我们也希望与大家携手共同构建更高效、更智能的云上运维。
原文链接
本文为阿里云原创内容,未经允许不得转载。