阿里云贾少天:大规模云服务器高效使用及管理最佳实践
简介:本篇内容分享了大规模云服务器高效使用及管理最佳实践。
2021年10月22日,在云栖大会的《云上运维最佳实践》分论坛,阿里云高级技术专家贾少天发表了主题为“大规模云服务器高效使用及管理最佳实践”的演讲,本篇内容根据他的演讲整理成的文章,主要通过以下三个部分来介绍大规模云服务器高效使用及管理最佳实践。
- 如何快速上云
- 如何低成本的构建大规模资源场景
- 如何高效的管理资源
01 如何快速上云
◾ 第一种,重新部署迁移。就是把原来在线下的环境在云上重新一步一步再操作一遍,这种方式不管是易用性、速度、还原度方面都不是推荐的方式。
◾ 第二种,导出镜像方式。是在你自己本地的环境按照阿里云镜像规范导出一个镜像,然后上传到阿里云使用,系统还原度可以保证,但是容易度和速度还不是最优的办法。
◾ 第三种,使用阿里云的服务器迁移中心。你只需要下载一个客户端在本地运行,然后创建一个迁移任务,服务器迁移中心产品就会帮你自动执行整个迁移工作。
◾ 首先,它是高度成熟化的产品,支持行业里各种各样镜像。
◾ 第二,高度自动化。一行命令,整个过程无人值守。我们提供API和控制台,让你去观测整个过程和结果。
◾ 第三,高度智能化。从迁移开始,到执行过程中出现任何问题,都会自动进行相关的修复工作,让整个过程更加高效顺畅。
用户也可以根据自己的场景,迁移成多形态。我们也支持增量和全量迁移,达到线上和线下完全统一的效果;用户还可以根据自己的情况,选择多种复制模式。
服务器迁移中心是一个高度自动化的产品,支持批量多实例迁移,无论是什么规模的资源迁移都可以高效的支持,如果大家后续使用阿里云过程中遇到迁移问题,强烈建议大家使用这个产品。
02 如何低成本地构建大规模资源场景
如何低成本的构建大规模服务器?这里有两个核心关键词:低成本、大规模。 我们看看到底怎么用最少的钱使用阿里云的ECS?
比如它有定时模式,当业务高峰期在早上8点,早上8点会定时去扩容。业务低峰期是晚上6点,在晚上6点定时会缩少机器;第二,可以是动态模式,当CPU超过50%时增加机器,当CPU低于40%时缩减机器;第三,手动模式,用户自己通过本地自建系统来触发伸缩活动。
除此之外,如果你想对整个过程有更全面的控制能力, 我们还提供生命周期挂钩的能力,比如伸缩组在帮你缩容资源的时候,你发现实例上还有一些日志文件需要备份,则可以通过生命周期挂钩拒绝当前的缩容行为,伸缩组可以帮助继续保留资源;还有通知能力,任何扩容缩容都可以通过钉钉、短信、邮件的方式通知给你。而且伸缩组还可以同时帮你打通实例与SLB和RDS的联通关系,帮忙用户通过这种方式快速构建高弹性的Web能力。
另外,我们还有多种交付类型。其中有成本优化模式,系统每次创建时都会以最低价格的实例进行创建,让你的成本降到最低;均衡模式可以帮你在多个可用区创建,提高系统的高可用能力等。为了满足更多的场景,弹性供应组提供了三种交付模式来满足不用需求,有持续交付的maintain模式,也就是一直帮你保持你需要的资源数量,也有一次性交付的request和instant模式,其中instant模式可以理解成RunInstances接口能力的升级版本,在原有runInstance只支持单个实例规格、单个可用区的基础上,增加了更全面的能力。
弹性供应组让交付过程更加顺畅,成功率越来越高。
如果当前业务场景基于全按量模式,或者部分按量构建。可以慢慢尝试通过部分Spot实例去替换现有的按量实例。随着Spot比例越来越高,成本也会无限趋近于最低,达到一折的效果。这个时候你肯定要问了,我如果用了这么多Spot实例,如果价格变化导致实例释放了怎么办,我的业务岂不是都会受到影响了?所以在这个基础上我们提供了更多能力来规避这个问题。
同时,我们还叠加了第二种能力,Spot自动补偿机制。如果没有开启Spot补偿机制,所有的Spot释放之后有2分钟的断崖式异常,所有业务都会受损。如果开启了补偿机制,我们的系统会自动判断,提前5分钟进行一些替换实例的创建。在这些实例还没有释放之前,完成创建出来了,自动替换掉。所以中间不会再出现断崖式异常。通过这两种方式,你就可以更加轻松的使用spot实例来承载业务场景,同时达到降低整体资源成本的效果。
除了以上的基础能力,还有一些自动化的能力。这里简单举几个例子。首先,我们提供了弹性伸缩组的伸缩规则能力,有多种类型。
◾ 普通伸缩规则。它的定义方式是,当CPU大于20%时,扩容4台ECS。这种模式一般适用当前业务变化不频繁的场景,可以类比为手动空调。
◾ 步进伸缩规则。它是普通伸缩规则基础上的增强模式,可以设置多个区间,不同区间以不同的方式应对。这样,我们可以按照自己的经验积累,判断不同的负载情况,需要扩容多少,以便承载业务压力,灵活度更高一些,可以类比为半自动空调。
◾ 目标追踪伸缩模式。一种全自动的伸缩能力,使用这个策略你只需要知道当前负载保持在什么水位上。比如CPU保持在50%,系统会自动判断增加多少机器,或者缩减多少机器。这样的话,整个过程完全不需要人工干预,更加顺畅。
如果这个过程中出现了一些突发的流量,怎么预测呢?开启预测性模式的同时,可以通过叠加现有的目标追踪模式和其他各种模式。通过预测性去保证每天的周期性,通过目标追踪模式去应对突发性的情况。通过多种模式叠加,最终达到有效稳定的效果。
接下来,和大家分享一下滚动升级功能。滚动升级主要解决日常工作中经常遇到的发布问题。我们提供滚动升级,然后就会自动帮助你做。你只需要配置好今天分几批机器。更新前机器进入备用状态,这时候不对外提供服务。更新之后退出备用状态,对外提供服务。然后,再进入下一批。你也可以判断当前是否要重试,回滚,还是继续。通过整体的过程,最终达到发布的效果。通过这种方式可以降低整体发布成本,帮助大家更方便的完成日常应用发布的工作,而不需要自己构建一套发布体系。
03 如何高效的管理资源
当你在阿里云上有了更多资源之后,下一步如何高效的管理?
◾ 成本。当有很多团队参与资源使用且资源非常多时,如何知道哪些资源花了多少钱?如何知晓每个团队资源的费用情况?
◾ 效率。如何快速对接资源,高效进行一些日常运维的工作?
◾ 安全。当有越来越多子账号时,如何控制控制之间的调用权限,保证安全?
比如你在阿里云已经购买了各种类型的资源,同时这些资源也分属于不同团队、不同环境,比如其中一个团队是北京区的信息部,这个团队团队的生产环境使用了一批资源,如果单从资源视角,是没法很清晰区分哪些是北京信息部的生产环境的,但是如果你把地区、部门、环境定义成标签,给实例打上标签,然后就可以切换到清晰的标签视角了,根据标签自动给你的资源进行了分组,即使是跨产品的情况下。可以一个标签的方式来分组,也可以多个标签的方式分组,可以以你的场景来自己定义,一个资源最多可以添加20个自定义标签。
一旦你给资源把标签打上之后,很多事情就变得容易了起来,通过标签的能力可以轻松进行分账、运维和安全控制。
本文为阿里云原创内容,未经允许不得转载。




















浙公网安备 33010602011771号