最佳实践丨企业上云后资源容量如何规划和实施
Posted 阿里云开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最佳实践丨企业上云后资源容量如何规划和实施相关的知识,希望对你有一定的参考价值。
简介:企业上云后,云上的预算直接影响上云的优先级、进度、深度。预算投入的多少,与业务发展和资源需求的容量评估紧密相关。精准的容量评估,可以使企业上云的预算规划更科学,同时也更贴合业务发展阶段的需要。本文分享业务上云后企业该如何进行容量的规划和实施
本文作者:阿里云技术专家李雨前
摘要
随着企业数字化转型、企业IT服务云原生化快速发展,客户上云的步伐更加紧凑,随之而来云上的预算直接影响上云的优先级、上云的进度、上云的深度。预算投入的多少,与业务发展有关,另外一个关键因素就是资源需求的容量评估。
精准的容量评估,可以使企业上云的预算规划更科学,同时也更贴合业务发展阶段的需要。本文将分享企业业务上云后,如何进行容量的规划和实施。
一、为什么要进行容量规划
企业数字化转型,企业IT服务云原生化正大踏步的发展,上云的或正在上云企业,常规的预算支出中就包含数字信息化或者IT软件服务支出。这部分的预算支出,其中就包含云上资源的预算投入,其核算依据之一:云上容量规划和实施。
日常生活中,需要“容量”规划的场景是很普遍的。例如:水库储水就是一个典型的动态“容量”规划过程,需要根据上下游水环境情况做库容的调控。例如:疫情期间,景区实行游客提前预约成功后购票入园的举措,需要根据防控要求做每日游客的总人数的调控。
同理,云上的业务也会动态发展变化,云产品服务依赖的算力资源也需要相应调整。我们把算力资源的用量规划抽象为容量规划。
企业上云后进行容量规划的必要性在于,企业的业务是动态发展的,业务依赖的云上算力资源也需要相应地动态调整。过多算力资源导致资源闲置、成本浪费,过少的算力资源影响业服务响应性能、阻碍业务快速发展。那么,企业上云后,如果不进行容量规划会产生什么问题呢?
首先,可能出现成本投入和业务发展不匹配。例如,当业务呈现快速发展的态势,业务依赖的算力资源需求也呈现上升趋势,此时,如果没有容量规划,很可能业务爆发期来的时候,后端服务能力不能及时跟上,进而影响业务持续、稳定发展,甚至错失业务的黄金发展时机。
另外,互联网技术的应用极大地拉近了服务消费者和服务提供者的距离,服务提供者的服务表现跨地域的高可用、稳定性已是常态化目标。针对这个目标,一种最直接的实现方案:进行地域间的容量冗余,从而在软硬件故障或者其他应急场景下,进行流量切换实现灾备。
总结起来就是:企业上云后,业务的容量规划是刚需,并且需要持续地规划。精准的容量规划,可以帮助业务的快速发展,避免算力支持成为业务发展的瓶颈、阻碍项,同时,企业业务跨地域服务的高可用、稳定性也能得到保障。
二、业务需求转化为容量规划
容量规划是为业务服务的,脱离业务实际状况的容量规划毫无意义。根据业务特征、业务发展阶段目标,制定和业务发展相匹配的容量规划,才是合理的规划。
例如某A企业,B部门的业务需要人均一台办公电脑。目前采购的是阿里云的云桌面产品。今年预计B部门员工数量扩大10%,那么今年云桌面台数的容量规划也需要扩大10%。这个例子比较直观的好理解,实际上不同行业、不同业务特征的云上容量规划需要考虑的因素非常多。下面按通用的理解,进行拆解分析,如图1所示,自底向上逐步细分。
图1-业务驱动的容量规划
因素1:业务需求的整体发展评估
企业业务整体发展态势和评估是一切需求来源的根基,没有业务整体发展的充分评估,不可能输出合理、有效的容量规划评估。对企业来说,不会为了容量规划而规划,容量规划都是为业务发展服务的。业务整体发展评估自然就在“金字塔”的最底部。
因素2:业务需求云原生部分的发展评估
“金字塔”底部再上一层对应云原生部分的发展评估,云原生服务发展的比例直接关系到云上容量规划预算的比重。对于互联网行业,可能业务的主体都是云原生的;对于传统行业,如果只有企业管理信息化部分上云,那么云原生部分的发展评估就是很小的比重。
因素3:有限预算下,云上优先保障的需求评估
对企业来说,每一项的预算总是有限的,有限的资源服务应当优先服务关键业务的发展,从而实现投入产出比最大化的。对所有云上服务来说,存储、数据库、计算服务是基础的依赖项,一般这三块的规划和投入都是高优先级保障的。
因素4:业务云原生部分的连续性需求评估
对企业来说,在业务所有的发展阶段,业务的连续性至关重要,尤其是关键业务服务的连续性。所以,容量规划过程,需要关注、评估业务连续性在预算中的体现。例如核心业务依赖的计算资源,可以通过规划:包年包月的实例、弹性资源保障服务、资源预留服务等实现资源的确定性交付,从而保障服务的连续性。
参考资料:资源保障服务
https://help.aliyun.com/document_detail/193626.html
因素5:业务云原生部分的地域容灾需求评估
对企业来说,不同的发展阶段,业务在地域服务的优先级可能有所侧重,那么容量规划需要感知地域。同时,服务的高可用,往往依赖地域之间服务容灾能力的建设。所以,预算需要平衡地域发展的需要。
因素6:业务云原生部分需求独立规划VS综合规划
在前面5个因素基础上,容量评估越来越具体化。接下来从因素6开始,规划需要考虑具体操作的方案影响。独立规划和综合规划依赖的输入不同,输出的方案也不同。例如前面提到的面向员工办公的场景,对云桌面的需求,因为云桌面的彼此相对独立,可以独立规划,独立交付。
例如对于大型Web服务的场景,因为依赖云数据库、云存储、流量带宽等多方面服务,所以容量评估需要整体打包评估、整体交付,避免短板效应。并且在评估具体容量多少的时候,依赖的评估工具和方案也不同。对于独立的规划,一般评估相对容易给出;对于综合的规划,阿里云的容量规划服务提供了全套的解决方案。
参考资料:容量规划服务
https://www.aliyun.com/service/capacity_planning
因素7:不同云服务供应商当前折扣优惠信息评估
当业务容量规划细分到位后,明确了容量规划落地依赖的产品、工具,那么接下来需要感知折扣优惠信息。
不同的云服务供应商,在不同的地域、算力产品上的有相关的活动、折扣。评估这部分内容,可以使得花相同的预算,购买到更多更实惠的算力资源。例如阿里云推出的SavingPlan + CapacityReservation 服务,实现了成本的节约和资源的确定性交付。
因素8:规划的容量交付时间表评估
容量交付时间表评估这一步就是输出在什么时间、什么地域、交付哪些算力资源、对应的预算是多少等具体的规划方案信息。过早或者过迟的交付,都可能与业务发展不匹配,甚至容量规划最终无法落地施行。
三、容量规划映射为资源购买量
上一节我们按分层的方式对容量规划需要考虑的因素做了自底向上的描述。规划评估的本质是:满足业务在合适的时间、地点的发展需要,规划出对应时间、地点的算力需求。
如图2所示,具体的需求到算力的映射方法有很多。下面假设:企业业务未来发展所需云上服务能力是可预测的,基于可预测的值,转化为具体的资源实例购买量需求,进而形成具体的购买方案。下面介绍常用的规划容量映射为资源购买量的技术方案。
图2- 业务需求映射算力需求
方法一:线性映射--水平扩缩容
从资源视角来看,经典的评估方法是:资源实例总量 = 业务总的请求量QPS/ 单个资源实例支持的QPS。当业务发展需要更多的算力时,总的QPS会发生变化,此时需要新增扩容的的资源实例数量 = 新增的QPS/单机QPS。这种方式对应资源调度领域所说的“水平扩容”。阿里云提供的服务例如Auto Scaling 就支持自动水平扩缩容。
参考资料:弹性伸缩
https://help.aliyun.com/document_detail/25857.html
关于水平扩容更多内容可以参考K8s的HPA(Horizontal Pod Autoscaling):
https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale/
方法二:线性映射--垂直扩缩容
从资源视角来看,垂直扩容是相对水平扩容来说的。通过调整单机资源算力大小也就是调整单机支持QPS的大小(间接通过资源实例的降配来降低单资源实例支持的QPS),来调整总的资源实例数量,从而调整总的服务请求QPS。一般在精细化资源调度、业务负载混合部署场景下,会进行资源单实例的垂直扩缩容。
这种垂直扩缩有两种形态:一种是固定式的(规格调整后就不改变),例如从原来4VCPU,垂直缩容为2VCPU。然后实例按2VCPU 进行水平扩缩容;另外一种是非固定式的(短时间内单一算力资源的弹性伸缩),例如资源实例在运行过程中,进行某个维度资源的“限制”,从而实现单实例资源在特定场景下算力的调整。
对于业务方来说,看到的实例规格没有改变。典型的例如K8s的资源模型里面,如CPU资源申请,有request、limit两个参数,可以实现CPU资源的弹性burst。又例如阿里云突发性能实例,通过CPU积分来保证计算性能的实例规格,适用于平时CPU使用率低,但偶尔有突发高CPU使用率的场景。
参考资料:突发性能实例
https://help.aliyun.com/document_detail/59977.html
关于垂直扩缩容更多内容可以参考GKE的 VPA (vertical-pod-autoscaler):https://cloud.google.com/kubernetes-engine/docs/concepts/verticalpodautoscaler
方法三:非线性映射--全链路评估
大型互联网服务,典型如电商交易系统,业务场景多、业务之间存在依赖性、业务服务规模大。已经很难按应用单独评估系统容量,需要在全链路场景压力下,进行整体的容量评估。
阿里云的容量规划服务,提供了全套服务,具体包括:
- 服务规划,提供业务流量分析、数据容量分析、消息容量分析、数据库容量分析、集群容量分析;
- 服务规划后执行,提供全链路压测方案、场景流量配比以及调度方案、限流降级方案、演练方案。
全链路评估的核心价值:帮助客户探测云上系统最佳压力、极限压力、破坏压力点,并进行降级、限流保护。采用全链路评估尤其适合大规模、复杂的场景应用。
参考资料:容量规划服务
https://www.aliyun.com/service/capacity_planning
方法四:容量预测--自动调配
相对方法1、2、3,方法4 对未来容量的变化不做事前精准评估,基于系统负载均衡、系统QPS水位监控,进行自动化资源交付,包括自动水平扩容、缩容、跨规格实例交付等。例如阿里云弹性容器实例ECI支持多规格实例交付。阿里云运维编排服务OOS 提供的云上自动化运维服务,能够自动化管理和执行任务。客户可以通过模板来定义执行任务、执行顺序、执行输入和输出,然后通过执行模板来完成任务的自动化运行。OOS支持跨产品使用,您可以使用OOS管理ECS、RDS、SLB、VPC等云产品。
参考资料:弹性容器实例
https://help.aliyun.com/product/87486.html
运维编排服务
https://help.aliyun.com/document_detail/120556.html
综上,从业务需求到资源容量规划再到资源容量执行的过程,可以概括为图3所示这样的过程。
图3-需求到容量执行
四、资源购买量落地选购方案
当明确了资源购买量后,落地具体的选购方案就是如图4所示,在业务发展时间轴线上,确定性地交付算力资源。
图4-业务发展过程确定性算力资源交付
正如上一篇《三种典型场景下云上虚拟IDC(私有池)选购指南》介绍:业务资源交付有日常稳定性资源需求、日常弹性资源需求、突发资源需求。企业需要根据自身业务发展特征,具体资源需求,选择合适的资源选购方案,实现节约成本和资源确定性交付。例如:周期性资源需求、偶发资源需求、特定时期的资源需求,可以选购弹性资源保障相关产品服务。详细的容量规划到最终落地选购方案,可以直接参考该文。
企业业务上云后,需要进行资源容量规划,阿里云提供了丰富的产品能力支持业务容量精准评估、灵活选购,特别是基于资源保障服务,如弹性保障、立即生效容量预留等服务,支持资源确定性交付,有力保障业务发展的连续性。
本期最佳实践的分享就到这里了,马上我们还会推出云上私有池系列最后一篇,敬请期待~
相关阅读:
最佳实践丨云上虚拟IDC(私有池)如何为客户业务的确定性、连续性保驾护航
原文链接:https://developer.aliyun.com/article/786932?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
以上是关于最佳实践丨企业上云后资源容量如何规划和实施的主要内容,如果未能解决你的问题,请参考以下文章