阿里技术实战:数十万云服务器如何高效运维?

简介: QCon全球软件开发大会(上海站)2020的“弹性工程与运维”专题中,阿里云高级技术专家赵昱(巴梨)针对云上运维话题,分享了阿里经济体全面上云后,如何实现云上数十万台的ECS实例自动化运维的实践与经验,本文根据其演讲整理。

上云后需要运维吗?答案是:当然需要。

上云确实简化了一部分的运维工作,比如传统IT中服务器的日常运维等工作都交由云服务商来完成了。但随着云上产品种类的不断丰富和规模的不断扩大,云上资源如何高效运维正逐渐成为运维人员的挑战。

在刚刚落幕的QCon全球软件开发大会(上海站)2020的“弹性工程与运维”专题中,阿里云高级技术专家赵昱(巴梨)针对云上运维话题,分享了阿里经济体全面上云后,如何实现云上数十万台的ECS实例自动化运维的实践与经验,本文根据其演讲整理。

image.png

阿里云高级技术专家赵昱

云上运维的四大挑战

随着云计算的普及和发展,越来越多的企业选择上云。近几年,阿里经济体在全面上云,在云上运维方面与大多数企业遇到的问题类似,总结来说主要是来自以下四个方面:

image.png

第一,规模问题。传统的Human Ops和写脚本的管理方式在资源少的情况下是玩得转的,但是当规模一大就不行了。人肉管理几十台机器和几万台机器是完全不同的概念,再加上云上资源类型不断丰富,云上资源管理和运维的复杂度指数级上升。

第二,安全问题。阿里经济体上云涉及数百个业务方,涉及的运维人员非常的多,如何更好地进行权限控制、审计和审批都既复杂、又非常重要。数据和资源是公司的资产,运维权限过大、增加失误风险,权限过小、增加管理成本,如何安全地使用云账号和资源为管理者带来极大的挑战。

第三,效率问题。随着资源规模的增长,如何高效地管理运维、提升研发人员的效率,也是云上运维必须思考的问题。

第四,成本问题。业务方在成本优化方面的需求比较明显,包括资源使用人员和财务人员,希望能够提供不同维度的资源使用账单,以便为成本优化举措提供依据。

image.png

我们知道,传统方式下资源的分配有专门的资源运营团队负责,项目开发团队只负责使用资源。但是随着业务规模的不断扩大,这种管理方式基本上是不可行的,这时候需要通过分权将基础配置管理权交给业务项目组自行承担,而这种运维模式的转变对企业云上资源管理也提出了挑战。

事实上,阿里经济体云上运维也经历了人肉运维到标准化、数据化和流程化运维的过程。直到2016年,内部云上资源管理平台“宙斯运维系统”的雏形基本形成,实现了运维能力和经验的标准化、流程化和系统化。随着资源管理规模的日益庞大和需求多样化,宙斯运维系统随后又接管了云上资源的管控工作。

数十万云服务器如何高效运维?

当前,宙斯运维系统管理着阿里集团内部数百个业务方的20多种云上产品和资源,包括数十万台的ECS实例,不仅为各业务方提供了资源管理和运维能力,而且还提供了成本分析和治理能力。

image.png

图:宙斯运维平台整体架构

整体来说,宙斯运维平台包含资源管理、系统运维、应用运维、监控管理和成本分析五大模块。向上通过控制台和OpenAPI为业务方提供服务,向下依赖阿里云平台的云监控、资源编排、运维编排、标签系统、弹性伸缩、运维通道和财务系统等服务,来管理日志服务、云服务器、网络、对象存储等众多云上资源。

账号管理

image.png

因为历史原因,宙斯运维平台支持独立大账号和托管账号的两种账号模式并存。独立大账号是宙斯系统运维平台在阿里云平台的服务账号,账号下管理非常多的业务方的资源,业务方将运维功能全部托管到宙斯,因为可以减少很多前置的工作,所以独立大账号是我们推荐业务方的方法。另外,因为是服务账号,不允许业务方直接登录的,业务方只能通过白屏化入口进行操作,减少了操作失误风险。

对于托管账号,它是在宙斯运维平台之前的存量运维账号,为了帮助业务方更好地管理这些存量账号,宙斯运维平台提供了账号托管服务,这些存量账号授予宙斯服务账号的管理员权限,因为托管账号的主子账号与集团的登录系统打通,运维人员可以直接登录来管理。

权限管理

image.png

权限管理的主要思路是进行应用分组,应用分组以角色进行权限区分,给予人相应的应用上的角色。

我们给予应用Owner、开发、运维和安全等角色,对不同的角色予以不同的权限 。Owner角色拥有应用下资源管理的上帝权限,也负责审批工作;开发人员是日常CI工作,以及日常、预发环境的测试工作;运维人员拥有线上发布审批的能力;安全人员主要负责系统运维工作,包括安全扫描、代码扫描等安全工作。

这里所有的云资源都是通过标签挂载到相应的应用上,通过这样的一个权限管理,管理员不仅可以在人的维度上可以看到有权限的应用,也可以应用维度上看到有权限的人。

资源分组

image.png

基于阿里云的标签系统,宙斯运维系统支持资源按很多个维度分类,比如按部门、环境、Region等,宙斯运维系统给创建的资源打上相应的标签来方便业务方进行资源的查找、管理和运维,通过标签管理的模式可以很好地对无序化的资源进行运维和监控、甚至是资源分账。

对于托管账号,可以通过API操作,系统通过解析离线的云监控消息通知,让业务方的标签是按照一定的规范来设置,监听到数据变化之后再同步到宙斯和CMDB中。

资源交付

image.png

对于资源交付来说,最大的挑战是云上资源是多区域、多类型部署的。阿里云平台目前有上百种资源类型,如果每个资源都通过写代码、写API的方式来进行操作,不仅复杂、效率还很低。而且,大多数的业务场景不是单字元的交付,若是挨个进行组合来操作,也非常耗时。业务方一般要求场景化交付,大多数业务场景是有一个规范化的常用范式,是可以通过场景化的交付大幅提升资源交付方式。

针对这类场景化交付的需求,一开始其实使用的是写脚本的方式来操作的,但耗费大量的精力和人力,效率比较低下。为了应对多种类型的资源分配场景,宙斯运维系统引入了Infrastructure As Code机制进行资源编排,开源的Terraform也是同样的思路。

这里,宙斯运维系统采用的是阿里云提供的ROS资源编排工具,同时引入集团审批流,将资源部署标准化、流程化。宙斯运维系统将常用场景抽象成本资源编排模板,通过模板一键按照一键按场景交付资源,通过模板这样的方式大幅提升了我们资源交付的效率,同时也降低了新资源的接入门槛。

运维管理

image.png

从运维工作类型来看,运维也是分层的。系统层面的补丁管理、安全扫描、安全防护等能力是一个平台的能力,是不需要业务方来关心,宙斯运维系统将这些能力抽象出来后提供统一的机制来管理。

应用层面,主要涉及到资源的运维和CI/CD。应用资源运维,宙斯运维系统将常用的运维动作抽象成运维编排模板,借助阿里云运维编排服务进行工作流编排,在定义常用运维场景同时支持业务方自定义运维操作,这样可以实现运维流程可积累可复制。另外,利用底层能力支持定时、告警、事件触发的运维操作,进一步提升运维操作效率。

CI/CD部分,宙斯运维系统主要使用了阿里集团的Aone(云效)系统,支持基于软件包和镜像的分批发布,同时允许自定义操作。

监控告警

image.png

从信息源的角度分类,告警和监控可以分为资源监控、应用监控以及业务监控,越往上监控和告警的准确率越高、但通用性越低。宙斯运维系统实现了多种告警处理方式,通过与监控系统的集成将告警按分组联系人分发,比如短信、钉钉等信息;对于自动化的场景,对接了弹性伸缩和运维编排来触发自动操作,实现自动化运维工作,完成自动化闭环。

诊断和修复

image.png

随着使用的资源和业务越来越多,内部业务方关于ECS实例、网络等问题的咨询量逐渐增多,为了提升问题的解决效率,同时运维平台也需要有自证清白的能力。于是,我们通过与阿里云内部ECS、网络、操作系统等团队进行共建,利用历史数据形成了案例库、知识库,再加上专家经验,我们沉淀了诊断和修复的能力,通过一键诊断帮业务方快速定位具体问题。对于一些常见的问题,抽象出常用的修复脚本,提供一键修复能力。

以ECS实例为例,通过实例的监控诊断定位出问题根因,同时我们提供出手动修复方案,同时我们也提供了使用运维编排一键自动修复能力,这个过程支持打快照回滚。通过这部分的建设,让我们日常值班的服务量大幅降低。

成本管理

成本管理的目标主要是成本优化,有很多业务方申请了很多云服务器资源,使用中发现其实一些机器是没怎么用或是CPU利用率比较低,这就造成了资源的浪费。宙斯运维系统通过成本管理的建设,将成本管理的意识传递给到业务方,并推动业务方来完成成本优化。

成本管理的思路里,我们主要是在事前的卡点和事中的分账能力来实现。首先,在资源申请时做审批卡点,如果申请的资源规格特别高就会给出一些提示,询问资源申请是否合理;然后,在资源使用过程中,利用标签和应用分组的分账能力,把资源使用费用分摊到相应的部门和项目组,周期性地向业务方提供账单,财务根据部门的账单做分析,可以判断哪些项目是入不敷出的,同时也推动业务方自己去优化资源的使用。比如,是否切换到弹性伸缩上来优化成本,调整资源配置规格进行优化等等,从成本的角度推动业务方来做优化。

总结

image.png

本文主要介绍了阿里经济体上云过程中宙斯运维系统如何高效管理云上资源的经验,总结来说是通过标准化、流程化、自动化和数据化的方式来实现的,希望能给云上运维面临同样问题的运维人员一些参考。

讲师简介:

赵昱(巴梨),阿里云高级技术专家。2014年加入阿里云,先后从事阿里云云邮箱、RAM、操作审计、ECS等云服务的研发,2018年至今参与并主导了运维编排服务的研发,担任研发负责人的角色。在云计算及云上运维有丰富的经验。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
24天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
22天前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
23天前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
1月前
|
运维 安全 Ubuntu
自动化运维:使用Ansible进行服务器配置管理
在现代IT基础设施中,自动化运维是确保高效、稳定和安全服务的关键。本文将深入介绍如何使用Ansible这一开源工具来简化服务器配置管理工作,从基础安装到高级应用,我们将一步步展示如何通过Ansible Playbooks实现自动化部署和维护,旨在帮助读者构建更加灵活和可扩展的运维体系。
43 7
|
1月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。
|
1月前
|
边缘计算 运维 Cloud Native
云原生技术的崛起:重新定义软件开发与运维
云原生技术的崛起:重新定义软件开发与运维
|
1月前
|
运维 监控 应用服务中间件
自动化运维的利器:Ansible实战应用
【10月更文挑战第41天】在现代IT运维领域,自动化已成为提高效率、减少错误的关键。Ansible作为一种简单而强大的自动化工具,正被越来越多的企业采纳。本文将通过实际案例,展示如何使用Ansible简化日常运维任务,包括配置管理和批量部署等,旨在为读者提供一种清晰、易懂的自动化解决方案。
28 1
|
1月前
|
运维 监控 安全
运维自动化:提升效率与可靠性的关键技术
在信息技术飞速发展的今天,企业对IT系统的稳定性和高效性要求越来越高。运维自动化作为实现这一目标的重要手段,通过软件工具来模拟、执行和管理IT运维任务,不仅大幅提高了工作效率,还显著增强了系统的可靠性。本文将探讨运维自动化的概念、实施步骤以及面临的挑战,旨在为读者提供一份关于如何有效实施运维自动化的指南。
|
1月前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
65 4

相关产品

  • 云服务器 ECS