本文作者:阿里云技术专家李雨前
引言:
业务上云常态化,业务在云上资源的选购、弹性交付、自助化成为大趋势。不同行业的不同客户,业务发展阶段不一样,云上资源的成本投入在业务整体成本占比也不一样,最小化成本投入、最大化业务收益始终是不同客户间的共同目标。
阿里云面向全行业的用户提供了丰富的云上算力产品服务和灵活多样的售卖模式,帮助用户云上精确的资源容量预估和精细的资源交付管理,非常有利于客户节约云上购买资源的成本。
本文是最佳实践--云上私有池系列的第二篇,在第一篇中,笔者重点介绍了私有池的价值和如何获取;本文集中介绍不同场景下私有池的选购指南。
先回顾下私有池是什么:当用户在ECS 控制台,“资源保障”服务标签页下,购买“弹性保障”或者“容量预定”等产品后,就获得了云上一个确定性计算资源(CPU和Memory)预留,并且是专属分配使用的资源池。一个私有池的服务有两个阶段:私有池预留和私有池资源交付。
私有池具备资源库存确定性、资源调度交付灵活性的价值,能够为客户业务确定性、连续性发展保驾护航。那么,对不同的客户来说,选购最合适的私有池,可以实现资源成本和业务发展的相匹配。
我们知道,云上客户来自各行各业,通过行业数字化解决方案、数字化产品服务实现产业的自身价值,背后依托云平台提供各种算力服务。算力服务最终会反映在资源需求量的变化上。我们将资源需求量变化特征抽象为图1所示,分为日常稳定性需求、日常弹性需求、突发需求三种类型。
图1-资源需要量特征
如图1所示,资源确定性的需求集中反映在“日常弹性需求”和“突发需求”。其中,“日常弹性”需求又可以细分为“周期性的”短期资源需求和“非周期性的”短期资源需求(偶发的和特殊时期的)。总结起来,需要确定性交付的场景集中在:
- “周期性”的短期资源需求
- “偶发的”大量资源需求
- “特殊时期的”资源需求
下面就三种场景的确定性资源选购分别做介绍。
周期性的短期资源需求
如图2所示,资源需求表现出明显的周期性和规律性。这种实例数量随时间的变化特征,比较符合游戏、在线教育场景资源需求。例如下班后、周末时段,实例数量上涨,平时实例数量较小。
游戏场景:XX游戏每周六固定时间开新服,大量用户涌入并注册,资源需求激增;在线教育场景:XX在线教育公司,在线教学的课表暑期集中在固定的时间,开课时候,产生大量的资源诉求,课程结束后资源就可以释放。
图2-周期性短期资源需求
确定性交付方案
针对周期性的短期资源需求,下面从资源实例持有时间长短和多云平台进行分类介绍。每一种分类下面细分多种购买方案,并展示相关优势和劣势。
方案1
长期持有
这个方案的核心是一次性、提前把周期性需要的资源购买下来。如表1所示:
表1-长期持有
方案2
短期持有
这个方案的核心是只在周期时间段内,需要资源的时候确保资源确定性交付。如表2所示:
表2-短期持有
针对周期性短期资源需求,购买“弹性保障”是需要预收取一定费用的,相比其他的购买方式成本投入是怎么样的呢?下面做进一步分析。
举例:假设用户有一个确定的资源需求:北京地域,实例规格ecs.g6.xlarge,1台,一个月内预计累计使用时长为12天,一个月内其他的时段资源可以释放。业务上要求:随时需要资源的时候,资源一定是100%成功交付出来。此时,确保资源确定性交付,用户有4种选购和对应的计费方式,如下表3所示:
表3-4种方式费用对比
方式1:“包月”的一个月,总费用1 = 该实例包月价格 * 1
方式2:”包年“的一个月,
总费用2 = 该实例包年的月均价格 * 时长(本案例月数1)
方式3:0预付RI 预留一个月,
总费用3 = 该实例一个月的RI费用
方式4:弹性保证预留一个月,总费用4 = 保障包预定费用+实例开启实际时长产生的费用(40% * 30 = 12 天,本案例1个月只有40%的时间会使用);如果直接包月购买,那么需要支付一个月的价格。
说明:确定规格的某个实例费用对比如下:
包年的月均价 < 包月的月价 < 按量的累计的月价
因此,在相同配置条件下,以上四种不同的选购方式费用关系是:总费用1 > 总费用2 > 总费用3> 总费用4
这个时候,在相同的配置下,“弹性保障+12天”开启的按量小时总成本最优。
四种方式持有时间和成本的关系抽象为图3所示:
图3-各种方式成本和时长的比较
注意:这里的价格是一个示意图,因为实例的不同配置,最终的价格是有差异的,并且实例的价格也会因为市场变化而有调整。上面示意图3重在表述“比较信息”:当使用时长小于40%的时候,弹性保障相对来说是节省成本的。当使用时长超过40%的时候,弹性保障相比包月已经不划算了。
方案3
混合周期持有
这个方案的特点:业务对资源精细化的管理。例如大数据计算处理,每天晚上固定的购买实例,或者大促活动期间大量购买实例,这些场景下算力任务表现出“等级特性”:其中主任务有严格交付时间限制(资源需优先保证),非主任务可以延迟交付(依赖Spot 竞价实例的资源来处理)。可选的购买方案如表4所示:
表4-混合周期持有
方案4
多云组合
这个方案的特点:当一个云平台出现特定商品临时断供,转为其他云平台进行实例购买。
表5-多云组合
偶发的大量资源需求
偶发大量资源需求表现出不可预测性、突发性,如图4所示。例如互联网或者To C 服务的客户,一些热点事件引发大量服务请求,临时需要大量资源来应对。
图4-偶发大量资源需求
确定性交付方案
既然是偶发的大量资源需求,一种可行的解决方案:保险性质的服务。阿里云的弹性保障就是在2019新冠疫情背景下催生出来的产品服务。用户只需要预交付一定的费用(费用和资源诉求量、保障的时间、开启的次数有关),之后按照协议,用户在有突发资源诉求的时候,就可以获取确定性的资源交付。相关购买方案如表6所示。
表6-偶发资源购买方案
特殊时期的资源需求
如图5所示,特殊时期的资源需求表现出计划性、可预测性。例如双11、春节、法定长假期等,需要资源保障,确保服务有序进行。
图5-特殊时期的资源需求
确定性交付方案
特殊时期的资源需求,一般不建议长期持有的购买方式,原因是短时资源需要,付出长期的成本,不划算。相关可选购买方案如表7所示。
表7-特殊时期资源选购方案
组合推荐
上面集中从单一视角“确定性”资源交付部分来分析多种购买方案。实际客户“整体的”资源需求(业务负载)也是表现一定的特征的,如图6所示,我们抽象为共振型、平稳型、突刺型、混布型四类。
图6-业务负载特征分类
针对业务负载的四种分类特征,相应的购买推荐如图7所示 :
图7-组合推荐
总结
针对“确定性”资源交付诉求的场景,阿里云提供了多种选购方案,例如弹性保障、立即生效容量预定、延迟生效容量预定等产品服务,特别是如电商618、双11以及其他可预测的短期资源需求的这种场景,弹性保障或者延迟生效容量预定是首选方案。而周期性的资源诉求场景,需要确定性交付的,立即生效容量预定结合SavingPlan 节省计划是首选方案。有了确定性资源交付之后,资源的精细化管理等其他工作就有了基础,关于集群资源的更多知识内容,可以参考《深入集群-大型数据中心资源调度和管理》一书。
本期最佳实践的分享就到这里了,马上我们还会推出云上私有池系列第三篇——我的业务上云后容量怎么规划和实施,敬请期待~