持续定义 SaaS 模式云数据仓库 + Serverless( 二 )


我们还可以按照组织划分 , 比如很多企业的组织比较大 , 可以按照部门来进行划分 , 使得每个部门有一个隔离的环境 , 各个部门作为一个独立的组织 , 他们需要相对独立的数据和计算资源 , 我们可以使用Serverless按需分配的这种模式 。 有了这种模式之后 , 企业无需进行容量规划 , 在初期的时候可以使用按量付费的方式 , 通过这种超大的资源池来满足各个部门的资源需求 , 避免资源的争抢 。
总的来说 , 利用Serverless在各种作业情况下Serverless都能够很好的满足需求:在单作业的情况下 , 无论是规模大小 , Serverless都可以很好的满足不同规模的作业资源需求;在多并发的情况下 , Serverless也能够满足多作业需求 , 避免出现资源的争抢情况出现;在某些我们希望能够控制作业费用的情况下 , MaxCompute也可以提供费用预估+费用控制的方式来阻断高额作业 。 通过上述的方式 , MaxCompute+Serverless可以大大提升业务敏捷性 , 加速价值实现 。
持续定义 SaaS 模式云数据仓库 + Serverless文章插图
另外 , 有一些企业结合自身日常的管理环境 , 更希望有一个相对稳定的资源池 , 因为其本身有一定的资源规划和资源治理的能力 , 这种情况下 , 我们购买一定固定规格大小的资源 , 然后按照职能或者按照组织划分隔离环境 , 利用MaxCompute提供的配额组管理能力将资源切分成多个资源组 , 在财务可预测的前提下 , 满足不同业务、不同组织的需求 。 这种模式的关键技术特点有:

  • 负载隔离 , 避免相互争抢 , 资源优先分配给关键项目和组织;
  • 作业优先级:保障关键动态作业链路查出;
  • 分时伸缩:设置白天、夜间资源分配策略 , 最大化利用资源 。

持续定义 SaaS 模式云数据仓库 + Serverless文章插图
第三种场景是关于成本与业务敏捷性的融合 。 举个例子 , 数据平台的管理者可能经常面临多种作业:一类是日常作业 , 通常把这里作业放在一个固定大小的资源中 , 成本可控、可预期;另外一类是一些关键作业 , 我们愿意花费一定的代价把它加速完成去满足业务需求 , 对于这类作业我们希望能够拿到一些额外的算力;还有一类作业是面向数据科学家的探索型作业 , 我们希望这类作业对我们的生产作业不要产生干扰 , 同时数据科学家又能利用强大的算力快速地完成业务假设和设想 , 我们可以将这类作业放在按需的资源池中;在复杂的企业中可能还会有创新类的业务 , 他们需要一个新的数据开发环境和应用创新的环境 , 我们可以新建一个数据仓库的隔离环境 , 按需分配资源 , 帮助他们快速的去验证业务假设 。
产品侧我们主要提供了两种能力给用户:
  • 按量付费Project:发起的作业使用Serverless资源 , 可以切换Project绑定的资源组;
  • 使用人员主动设定:根据需要临时指定计算资源 , 作业级别的资源路由 。

持续定义 SaaS 模式云数据仓库 + Serverless文章插图
上面的三种场景都是在日常运营中的真实场景 , 还有一个场景就是客户在使用了按量付费一段时间之后 , 业务稳定下来了 , 希望将项目放在固定的、预付费的资源池上 。 这时候就会遇到一个问题:如何进行资源的需求评估呢?毕竟之前按量付费的时候是不需要进行资源需求预估的 。 MaxCompute提供了容量规划来解决这个问题 , 其原理是利用MaxCompute提供的元数据服务(information schema)根据历史的算力消耗情况来预估项目的整体算力需求 , 其关键信息有:
  • 基于information schema按天统计近期项目作业消耗的计算单元时(算力单位:cu时);
  • 基于information schema按天统计近期项目作业消耗最高的一天 , 计算每个小时的算力需求(算力单位:cu时) 。
根据上面的信息我们就可以根据一定的规则来预测业务的算力需求 , 进行容量规划 , 关于这部分的详细内容大家可以到阿里云社区查找相应的文章进行了解 。
三、总结上文主要分享了如何利用Serverless服务来更好的进行资源管理 , 低成本地满足不同业务的资源需求 。 总的来说:
(1)按量付费的模式适合业务快速发展及变化阶段 , 配合MaxCompute的cost control管理手段 , 既能满足业务的算力需求 , 又能有效的控制成本 。 (2)对于预付费的资源 , 我们可以通过quota管理 , 切分多个计算资源 , 做相应的负载隔离、分时管理 , 利用dw+mc基线作业优先级保障关键作业SLA 。 (3)对于预付费固定资源和弹性按量付费组合的方式 , 我们可以根据作业级别选择不同的计算资源:对于突发作业 , 使用按量付费补充突发算力需求;对于周期性作业中的尖峰需求 , 也通过按量付费满足 , 从而达到资源的有效利用 , 且降低成本 。 (4)我们可以利用元数据来进行算力需求评估 , 进行容量规划 , 从而在按量付费和预付费方式之间进行转换 , 还可以利用元数据来进行资源消耗分析 , 进行资源的优化 , 降低资源高消耗的作业 , 做相应的资源治理 。