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

简介: 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年至今参与并主导了运维编排服务的研发,担任研发负责人的角色。在云计算及云上运维有丰富的经验。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
运维 应用服务中间件 nginx
自动化运维:使用Ansible进行服务器配置管理
【7月更文挑战第31天】在现代IT基础设施的管理中,自动化已成为提高效率和准确性的关键。本文将介绍如何使用Ansible——一种流行的开源自动化工具——来简化和自动化服务器的配置管理任务。通过实际代码示例,我们将探索如何编写Ansible Playbook来自动部署软件、管理配置以及执行系统更新,从而减少手动操作的需求并提升运维效率。
49 1
|
21天前
|
缓存 运维 监控
运维之道:从故障响应到系统优化的实战之旅
在信息技术飞速发展的今天,高效、可靠的系统运维已成为企业IT部门的核心任务。本文将通过一系列真实案例分析,深入探讨运维团队如何从日常的故障响应出发,逐步过渡到系统性能的深度优化。我们将一起探索运维的最佳实践,包括自动化工具的应用、性能监控的重要性以及如何构建一个弹性和高可用性的系统架构。文章旨在为读者提供一套完整的运维解决方案,帮助他们在面对复杂多变的技术环境时,能够迅速定位问题并实施有效的解决策略。
103 0
|
19天前
|
人工智能 运维 Cloud Native
实战基于阿里云的AIGC在运维领域的探索
传统运维模式已难以应对日益复杂的海量数据和业务需求,效率低下,故障难解。而人工智能的崛起,特别是AIGC技术的出现,为运维领域带来了新的机遇。AIGC能够自动生成运维脚本、分析海量数据,预测潜在故障,甚至提供解决方案,为运维工作注入智能化力量,推动运维向更高效、更智能的方向发展。
16242 18
实战基于阿里云的AIGC在运维领域的探索
|
23天前
|
弹性计算 固态存储 大数据
阿里服务器租用多少钱一年?阿里云租用收费标准价格表(2024年更新)
阿里云服务器租用费用在2024年有多项优惠。轻量应用服务器2核2G3M带宽年费82元,折合每月6.8元;新老用户可享99元一年的2核2G3M带宽ECS经济型e实例;2核4G5M带宽的企业级ECS u1实例则为199元一年。4核16G10M带宽服务器月费70元,3个月210元;8核32G10M带宽服务器月费160元,3个月480元。此外,GPU服务器如gn6v与gn6i等也有大幅折扣。云服务器ECS实例规格多样,覆盖从经济型到高性能的各种需求,并提供不同类型的云盘选择。具体价格与配置详情请参考阿里云官网获取最新信息。
108 6
阿里服务器租用多少钱一年?阿里云租用收费标准价格表(2024年更新)
|
10天前
|
运维 Linux Apache
【一键变身超人!】Puppet 自动化运维神器 —— 让你的服务器听话如婴儿,轻松管理资源不是梦!
【8月更文挑战第9天】随着云计算与容器化技术的发展,自动化运维已成为现代IT基础设施的核心部分。Puppet是一款强大的自动化工具,用于配置管理,确保系统保持预期状态。通过易于理解的配置文件定义资源及其依赖关系,Puppet实现了“基础设施即代码”的理念。本文简要介绍了Puppet的安装配置方法及示例,包括Puppet Agent与Master的安装、基本配置步骤和一个简单的Apache HTTP Server管理示例,展示了Puppet在实际应用中的强大功能与灵活性。
23 9
|
8天前
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
20 3
|
8天前
|
运维 安全 网络安全
运维笔记:基于阿里云跨地域服务器通信
运维笔记:基于阿里云跨地域服务器通信
35 1
|
16天前
|
运维 应用服务中间件 持续交付
自动化运维之宝:Ansible在服务器管理中的应用
【8月更文挑战第4天】本文深入探讨了Ansible这一自动化运维工具的实际应用,通过具体案例展示了其在服务器配置、软件部署和系统管理中的强大功能。文章不仅介绍了Ansible的基本操作,还提供了代码示例和实践技巧,旨在帮助读者有效提升运维效率。
41 6
|
18天前
|
运维 监控 网络安全
自动化运维:使用Python脚本实现服务器批量管理
【8月更文挑战第2天】在现代IT运维领域,效率和准确性是衡量工作质量的关键指标。手动管理大量服务器不仅耗时且容易出错,因此自动化运维工具的开发变得至关重要。本文将介绍如何利用Python编写一个简单的自动化脚本,实现对多台服务器的批量管理,包括自动更新、配置同步以及日志收集等功能。通过实际案例展示,我们能够看到自动化运维如何提升工作效率并减少人为错误。
|
20天前
|
SQL 缓存 前端开发
PHP性能优化实战:从代码到服务器的全方位攻略
【7月更文挑战第30天】在Web开发的世界里,PHP以其灵活性和易用性赢得了广泛的赞誉。然而,随着应用规模的扩大,性能问题逐渐浮现。本文将深入探讨PHP的性能优化策略,不仅涉及代码层面的精细调整,还包括服务器配置的优化技巧。我们将一起探索如何通过减少资源消耗、优化数据库交互以及利用缓存技术来提升PHP应用的性能表现。无论你是PHP新手还是资深开发者,这篇文章都将为你提供实用的优化建议,帮助你打造更快、更稳定的PHP应用。
32 4

相关产品

  • 云服务器 ECS