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

本文涉及的产品
简介: 本文将为您介绍现代云数据仓库的业务场景与资源使用需求,不同资源交付模式的差异化分析。并结合MaxCompute Serverless的特点及价值来讲解使用MaxCompute Serverless的最佳实践。

一、Serverless简介

下图是MaxCompute的Serverless架构,主要包括数据接入服务、多计算环境、储存服务和管理几个模块。
1.png

其中各个模块的主要特点如下:
(1)Serverless的数据接入服务
-提供Tunnel批量、流式导入,转换为MC列存格式、自动伸缩等功能,且免费;
-可以免费使用LOAD/UNLOAD命令进行OSS导入/导出。
(2)Serverless的多计算环境
-Severless计算资源池,大规模计算资源池,On-demand按需提供,按作业付费;
-独占计算资源:支持包年包月付费、Workload管理(负载隔离、优先级、分时伸缩等);
-运行环境(runtime)支持ETL/OLAP/ML等大数据分析使用场景。
(3)Serverless的存储服务
-与计算无关,独立伸缩,提供GB-EB级别的存储服务;
-按实际存储大小付费,降低成本;
-无需指定,默认面向分析优化(列压、压缩);
-支持区分/分桶/Zorder等优化手段。
(4)Serverless的管理
-开箱即用,内建了完整的管理能力,以API/sdk/web-console管理;
-平台侧无需用户运维,降低成本。
上面是对Serverless架构的一个简述,本文的重点是如何利用MaxCompute的Serverless计算资源来满足数据仓库的需求。

下图所示的是MaxCompute计算资源与管理与使用的逻辑模型。对于MaxCompute中的Project,实际上对应的是一个逻辑的数据仓库的隔离单元,我们可以根据不同的管理目标创建不同的Project,比如我们可以分别创建面向测试的Project和面向开发的Project,两个项目之间有独立的数据和权限管理体系,并不互通,达到管理的隔离作用。当然,只有这样的隔离空间还不足够,因为我们的计算任务需要绑定计算资源,我们可以将Project与付费方式绑定,根据需求,对不同的Project设置不同的计费方式,使得不同的隔离空间使用不同的计算资源。

1.png

在上述的体系之下,MaxCompute有着一些独特的特点,首先就是有一个多租户环境,我们在开通了MaxCompute可以根据不同的管理需求创建多个隔离的数据仓库空间,对于企业来说,可以购买多组逻辑上的计算资源,这种多计算资源、多隔离环境,可以更好地满足不同的场景需要。
如下图所示,理想中的Serverless资源模型要求我们很好的规划资源的利用方式才能够完美的适配我们的实际需求(图中黑线)。

1.png

但是,实际上我们的客户有不同的资源需求,有着众多的差异化需求场景,其场景主要有:
-稳定的周期性作业场景;
-业务高度增长、需求快速变化的场景;
-常规需求伴随着突发需求的场景;
-测试/开发需求的场景。
从各种场景中我们可以发现,大数据计算对计算资源的需求方式并不是一个完完全全的纯Serverless的按需分配的需求,而是不同的阶段有不同的需求,且不同类型的需求有不同的要求,其对计算资源的需求特点主要包括如下:
(1)业务敏捷性需求
-长期处于成长期,处理能力能满足业务自然增长的需要,特别是业务快速变化的阶段;
-可以是企业的初期,也可以是创新部门的创业业务;
(2)周期性峰谷差异明显
-每天、每月周期性的峰谷波动巨大,以峰值容量规划,成本和SLA难以平衡;
-需要常规算力+弹性算力,根据调度/人为指定作业资源策略;
(3)稳定的业务,关注关键任务的按SLA产出
-基线作业,与非关键作业的SLA需求不同,基线产出时间需要保障;
-非关键作业尽可能低成本处理,同时不影响关键作业;
(3)资源治理:算例需求由快速变化转变为稳定可预期
-对CU的容量规划,相互转换以及测算;
-固定资源的精细化的Workload管理。
总得来说,现实中我们的算力需求最求的目标就是在满足现实中的差异化需求的前提下,还能够达到成本最小化的目标。

二、Serverless助力业务敏捷

那么,MaxCompute的Serverless如何满足上述的场景和需求呢?如果是一个业务快速发展、快速变化的企业,我们建议使用MaxCompute的Serverless按需使用的计算资源。从管理上来讲的话,我们可以建立不同的Project去做一些隔离的划分,比如说建立一套开发测试环境,一套生产环境。对于有些分析师来讲,他们往往随机地需要对一些明细数据做大量的探索,或做机器学习分析,往往有一些突发的算力需求,且这个算力需求的规模可能非常大,这个时候往往这些作业要和其他的环境隔离,因为他们是低频的,但是却需要对海量数据做分析。
我们还可以按照组织划分,比如很多企业的组织比较大,可以按照部门来进行划分,使得每个部门有一个隔离的环境,各个部门作为一个独立的组织,他们需要相对独立的数据和计算资源,我们可以使用Serverless按需分配的这种模式。有了这种模式之后,企业无需进行容量规划,在初期的时候可以使用按量付费的方式,通过这种超大的资源池来满足各个部门的资源需求,避免资源的争抢。
总的来说,利用Serverless在各种作业情况下Serverless都能够很好的满足需求:在单作业的情况下,无论是规模大小,Serverless都可以很好的满足不同规模的作业资源需求;在多并发的情况下,Serverless也能够满足多作业需求,避免出现资源的争抢情况出现;在某些我们希望能够控制作业费用的情况下,MaxCompute也可以提供费用预估+费用控制的方式来阻断高额作业。通过上述的方式,MaxCompute+Serverless可以大大提升业务敏捷性,加速价值实现。
1.png

另外,有一些企业结合自身日常的管理环境,更希望有一个相对稳定的资源池,因为其本身有一定的资源规划和资源治理的能力,这种情况下,我们购买一定固定规格大小的资源,然后按照职能或者按照组织划分隔离环境,利用MaxCompute提供的配额组管理能力将资源切分成多个资源组,在财务可预测的前提下,满足不同业务、不同组织的需求。这种模式的关键技术特点有:
-负载隔离,避免相互争抢,资源优先分配给关键项目和组织;
-作业优先级:保障关键动态作业链路查出;
-分时伸缩:设置白天、夜间资源分配策略,最大化利用资源。
1.png

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

1.png

上面的三种场景都是在日常运营中的真实场景,还有一个场景就是客户在使用了按量付费一段时间之后,业务稳定下来了,希望将项目放在固定的、预付费的资源池上。这时候就会遇到一个问题:如何进行资源的需求评估呢?毕竟之前按量付费的时候是不需要进行资源需求预估的。MaxCompute提供了容量规划来解决这个问题,其原理是利用MaxCompute提供的元数据服务(information schema)根据历史的算力消耗情况来预估项目的整体算力需求,其关键信息有:
-基于information schema按天统计近期项目作业消耗的计算单元时(算力单位:cu时);
-基于information schema按天统计近期项目作业消耗最高的一天,计算每个小时的算力需求(算力单位:cu时)。
根据上面的信息我们就可以根据一定的规则来预测业务的算力需求,进行容量规划,关于这部分的详细内容大家可以到阿里云社区查找相应的文章进行了解。

三、总结

上文主要分享了如何利用Serverless服务来更好的进行资源管理,低成本地满足不同业务的资源需求。总得来说:
(1)按量付费的模式适合业务快速发展及变化阶段,配合MaxCompute的cost control管理手段,既能满足业务的算力需求,又能有效的控制成本。
(2)对于预付费的资源,我们可以通过quota管理,切分多个计算资源,做相应的负载隔离、分时管理,利用dw+mc基线作业优先级保障关键作业SLA。
(3)对于预付费固定资源和弹性按量付费组合的方式,我们可以根据作业级别选择不同的计算资源:对于突发作业,使用按量付费补充突发算力需求;对于周期性作业中的尖峰需求,也通过按量付费满足,从而达到资源的有效利用,且降低成本。
(4)我们可以利用元数据来进行算力需求评估,进行容量规划,从而在按量付费和预付费方式之间进行转换,还可以利用元数据来进行资源消耗分析,进行资源的优化,降低资源高消耗的作业,做相应的资源治理。

更多关于大数据计算产品技术交流,可扫码加入 “MaxCompute开发者社区” 钉钉群
image.png

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
6天前
|
Web App开发 编解码 Java
B/S基层卫生健康云HIS医院管理系统源码 SaaS模式 、Springboot框架
基层卫生健康云HIS系统采用云端SaaS服务的方式提供,使用用户通过浏览器即能访问,无需关注系统的部署、维护、升级等问题,系统充分考虑了模板化、配置化、智能化、扩展化等设计方法,覆盖了基层医疗机构的主要工作流程,能够与监管系统有序对接,并能满足未来系统扩展的需要。
33 4
|
2月前
|
传感器 人工智能 数据可视化
Java智慧工地监管一体化云平台APP源码 SaaS模式
安全隐患排查 1.可在电脑端、手机端对安全隐患数据进行记录、查询 2.能够实现安全隐患发起、整改、复查的闭环管理 3.具备对安全隐患数据进行统计、可视化分析、信息推送等功能 4.包含对危险性较大的分部分项工程进行巡查记录功能
62 4
|
3月前
|
小程序 Java 数据管理
Java前后端分离架构开发的智慧校园电子班牌系统源码(SaaS模式)
.智慧校园设备管理: 设备管理主要对班级中正在使用的电子智慧班牌进行管理,基本功能包含(开关机状态、班级信息、设备型号、开关机信息、电子智慧班牌截屏信息、教师编号、设备ID、在线和离线状态、电子智慧班牌更新时间等)
40 0
|
4月前
|
人工智能 运维 监控
【Java】智慧工地管理系统源代码,支持二次开发,SaaS模式
智慧工地系统围绕工程现场人、机、料、法、环及施工过程中质量、安全、进度、成本等各项数据满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效。
46 1
|
4月前
|
传感器 人工智能 监控
java智慧工地源代码 SaaS模式云平台
伴随着技术的不断发展,信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升,智慧工地概念应运而生,庞大的建设规模催生着智慧工地的探索和研发。
44 2
|
18天前
|
人工智能 监控 安全
【Java】智慧工地管理系统源代码,支持二次开发,SaaS模式
【Java】智慧工地管理系统源代码,支持二次开发,SaaS模式
77 0
|
1月前
|
传感器 人工智能 数据可视化
Java智慧工地监管一体化云平台APP源码 SaaS模式
高支模监测:高支模立杆及倾斜角度,高支模立杆的荷载,架体的水平位移以及模板沉降情况,当检测数据超过预警值时,实时报警。
32 2
|
1月前
|
存储 安全 BI
支持多医院使用的云HIS医院信息化管理系统源码 SaaS模式
设计和开发HIS系统时需要注意医疗业务需求、数据模型设计、用户界面设计、安全和隐私保护、可扩展性和灵活性、集成和接口设计、测试和质量保证、用户培训和支持等方面的事项,以确保系统能够满足医院的需求并提供良好的使用体验。
28 0
|
1月前
|
供应链 安全 BI
SaaS模式的云医院信息管理系统源码,云HIS
系统支持现场预约、电话预约、医生预约等多种预约方式,并提供方便的取消预约操作。有效支持集中式挂号(窗口挂号)、分散式挂号(护士分诊台、医生工作站)、等多种形式方便病人挂号和缓解病人集中时挂号压力。提供灵活报表功能,开放的报表自定义系统使医院报表需求能自主定身制作。
SaaS模式的云医院信息管理系统源码,云HIS
|
2月前
|
监控 安全 物联网
智慧校园电子班牌系统源码,SaaS模式部署,支持PC端、移动客户端、电子班牌端
智慧班牌系统,支持PC端、移动客户端、电子班牌端,一方面将展示校园文化、班级文化的丰富多彩,另一方面也将成为学校和班级,教室和学生,教师和学生,以及家长和学生之间的互动媒介。通过班牌真正发挥智慧校园的优势,促进丰富的教学生活。
智慧校园电子班牌系统源码,SaaS模式部署,支持PC端、移动客户端、电子班牌端

热门文章

最新文章

  • 1
    Serverless 应用引擎产品使用之在函数计算中,数据库访问失败如何解决
    7
  • 2
    Serverless 应用引擎产品使用之在阿里云函数计算中发现没有NAC(Native Application Component)选项,且无法自己上传MOD(模块)如何解决
    8
  • 3
    Serverless 应用引擎操作报错合集之在阿里函数计算中,sd部署启动报错CAExited 报错信息“operation not permitted”如何解决
    6
  • 4
    Serverless 应用引擎操作报错合集之在阿里函数计算中,SD Controlnet Depth 运行过程中出现错误“urllib3 v2.0 only supports OpenSSL 1.1.1+”如何解决
    8
  • 5
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,laravel zip包使用示例的start.sh脚本启动时出现错误代码如何解决
    7
  • 6
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,服务器调用FC函数时出现 "[Errno -3] Temporary failure in name resolution)" 错误如何解决
    6
  • 7
    Serverless 应用引擎操作报错合集之在Serverless 应用引擎中,部署过程中遇到错误代码如何解决
    10
  • 8
    Serverless 应用引擎操作报错合集之在 Serverless 应用引擎中,遇到“没法通过 head 传递灰度标识”如何解决
    8
  • 9
    Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
    12
  • 10
    Serverless 应用引擎操作报错合集之在阿里函数计算中,云函数怎么一直报错Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'php server.php '.如何解决
    8
  • 相关产品

  • 函数计算