简介:业务上云常态化,业务在云上资源的选购、弹性交付、自助化成为大趋势。不同行业的不同客户,业务发展阶段不一样,云上资源的成本投入在业务整体成本占比也不一样,最小化成本投入、最大化业务收益始终是不同客户间的共同目标。阿里云面向全行业的用户提供了丰富的云上算力产品服务和灵活多样的售卖模式,帮助用户云上精确的资源容量预估和精细的资源交付管理,非常有利于客户节约云上购买资源的成本。本文是云上私有池系列的第二篇,将集中介绍不同场景下私有池的选购指南。

本文作者:阿里云技术专家李雨前

引言:业务上云常态化,业务在云上资源的选购、弹性交付、自助化成为大趋势。不同行业的不同客户,业务发展阶段不一样,云上资源的成本投入在业务整体成本占比也不一样,最小化成本投入最大化业务收益始终是不同客户间的共同目标。

阿里云面向全行业的用户提供了丰富的云上算力产品服务灵活多样的售卖模式,帮助用户云上精确的资源容量预估和精细的资源交付管理,非常有利于客户节约云上购买资源的成本。

本文是最佳实践--云上私有池系列的第二篇,在第一篇中,笔者重点介绍了私有池的价值和如何获取;本文集中介绍不同场景下私有池的选购指南。

先回顾下私有池是什么:当用户在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 节省计划是首选方案。有了确定性资源交付之后,资源的精细化管理等其他工作就有了基础,关于集群资源的更多知识内容,可以参考《深入集群-大型数据中心资源调度和管理》一书。

本期最佳实践的分享就到这里了,马上我们还会推出云上私有池系列第三篇——我的业务上云后容量怎么规划和实施,敬请期待~

原文链接

本文为阿里云原创内容,未经允许不得转载。

最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南的更多相关文章

  1. javascript中三种典型情况下this的含义

    this本意:基于函数的执行环境绑定. 1)一般函数内部,返回的是window(作用域链中的第二层全局作用域) function test() { return this; } alert(test( ...

  2. DHCP最佳实践(三)

    这是Windows DHCP最佳实践和技巧的最终指南. 如果您有任何最佳做法或技巧,请在下面的评论中发布它们. 在本指南(三)中,我将分享以下DHCP最佳实践和技巧. 仅在需要时才使用IP冲突检测 运 ...

  3. 哪些场景下无法获得上一页referrer信息

    哪些场景下无法获得上一页referrer信息 直接在浏览器地址栏中输入地址: 使用 location.reload() 刷新(location.href 或者  location.replace()  ...

  4. ZooKeeper的三种典型应用场景

    引言 ZooKeeper是中典型的pub/sub模式的分布式数据管理与协调框架,开发人员可以使用它进行分布式数据的发布与订阅.另外,其丰富的数据节点类型可以交叉使用,配合Watcher事件通知机制,可 ...

  5. 面向对象【day08】:反射的最佳实践(三)

    本节内容 1.伪造web框架的路由系统 2.反射函数 3.扩展导入模块 4.企业最佳实践 一.伪造web框架的路由系统 commons.py #!/usr/bin/env python # -*- c ...

  6. 最佳实践丨使用Rancher轻松管理上万资源不是梦!

    前 言 Rancher 作为一个开源的企业级 Kubernetes 集群管理平台.你可以导入现有集群,如 ACK.TKE.EKS.GKE,或者使用 RKE.RKE2.K3s 自定义部署集群. 作为业界 ...

  7. final修饰符的三种使用场景

    final有三种使用场景,各自是修饰变量.方法和类.不管哪种修饰.一旦声明为final类型.你将不能改变这个引用了,编译器会检查代码,假设你试图再次初始化,编译器会报错.以下我来详细说说每一种修饰场景 ...

  8. SparkSQL中产生笛卡尔积的几种典型场景以及处理策略

    [前言:如果你经常使用Spark SQL进行数据的处理分析,那么对笛卡尔积的危害性一定不陌生,比如大量占用集群资源导致其他任务无法正常执行,甚至导致节点宕机.那么都有哪些情况会产生笛卡尔积,以及如何事 ...

  9. mfc 类三种继承方式下的访问

    知识点 public private protected 三种继承方式 三种继承方式的区别 public 关键字意味着在其后声明的所有成员及对象都可以访问. private 关键字意味着除了该类型的创 ...

  10. 虚拟机最佳实践:单个 VM、临时存储和已上传磁盘

    大家好! 我是 Drew McDaniel,来自 Microsoft Azure虚拟机功能研发团队,我从团队成立之初就已加入. 在本博客文章中,我将分享一些最佳实践指南,帮助您充分利用您的Azure虚 ...

随机推荐

  1. dotNet8 全局异常处理

    前言 异常的处理在我们应用程序中是至关重要的,在 dotNet 中有很多异常处理的机制,比如MVC的异常筛选器, 管道中间件定义try catch捕获异常处理亦或者第三方的解决方案Hellang.Mi ...

  2. 全面解析Android之ANR日志

    不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(简称ANR)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭.本文将带你全面解析Android ...

  3. 游戏引擎中的实时渲染和在V-Ray中渲染有什么区别 2022-11-25

    游戏引擎中的实时渲染和在V-Ray中渲染有什么区别,下面我们一起来分析一下,从2个方面来具体分析实时渲染和在V-Ray中渲染种的不一样的区别. 原理区别 VRay等渲染器原理上叫做离线渲染(Offli ...

  4. MySQL连接数超出最大值报错及修改

    报错: create connection SQLException, url: jdbc:mysql://xx.xxx.x.xx:6306/hksk-cloud-mes?characterEncod ...

  5. Android记账本界面实现

    <!--activity_main.xml-->1 <?xml version="1.0" encoding="utf-8"?> 2 & ...

  6. 【已解决】org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083.

    杀死这些进程 kill -9 进程号

  7. Python连接mysql数据库和关闭数据库的方法

    1 import pymysql 2 def get_conn(): 3 """ 4 :return: 连接,游标 5 """ 6 # 创建 ...

  8. AtCoder Grand Contest 037(without F)

    AGC037 A - Dividing a String 洛谷传送门 AGC037A 分析 考虑每一段长度只可能是一或二,设 \(dp[i]\) 表示以 \(i\) 为结尾的前缀最多可以分成多少段. ...

  9. #树上启发式合并,位运算#CF570D Tree Requests

    题目 给定一个以 \(1\) 为根的 \(n\) 个结点的树,每个点上有一个字母\((a-z)\),每个点的深度定义为该节点到 \(1\) 号结点路径上的点数. 每次询问 \(a, b\) 查询以 \ ...

  10. Mac 使用 Nginx 在本地部署静态网站

    安装 安装 Brew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/i ...