本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地。Serverless是DLI将计算能力服务化和产品化关键技术,与传统IAAS和PAAS技术不同,DLI运用Serverless技术向客户提供了一种高效易用易扩展的计算框架,使得客户更能聚焦业务,避免牵扯集群运维的细枝末节。本文将从以下几点解读Serverless技术:
1. serverless计算简介
2. 云计算架构演进—从IaaS到Serverless
3. Serverless计算应用场景与潜力
4. DLI Serverless 计算
serverless计算简介图 Serverless与传统云计算比较
无服务器计算(Serverless)是一种新型的云计算范式,在业界也被称为FaaS(函数即服务),它有别于传统的IaaS(基础设施即服务)和PaaS(平台即服务)技术,旨在帮助开发者摆脱减少甚至免去底层基础架构管理上的诸多烦扰。Serverless计算服务允许客户在不构建一个复杂的基础设施的情况下开发,运行和管理应用程序。在2014年10月先由hook.io提供给业界,接着AWS推出Lambda,2016年Google Cloud Functions,Microsoft Azure Functions对外提供服务,接下来IBM的OpenWhisk并开源。目前华为云也提供类似FaaS产品FunctionStage,而DLI服务也向用户提供Serverless Spark产品。
图 Serverless成本优势
Serverless计算并非旨在实现真正意义上的“无服务器”,而是指企业将后端基础结构的维护交由可靠云服务公司,云服务公司以服务的方式为开发者提供所需各类功能等,加快企业产品研发和发布周期,同时增强服务的扩展性。
Serverless计算免去后端基础服务的诸多事宜,开发者可以专注在产品代码,不需要维护任何的服务器。服务器由云服务商提供,服务扩容的便捷性、灵活性大大提升。Serverless应用程序运行应用的服务默认提供高可用、容错高。无服务器计算,相比传统服务性价比高,企业只需要支付所使用的部分,没有任何与无服务器计算相关的成本,尤其是应用程序使用随时间变化大的企业是非常划算的。
云计算架构演进—从IaaS到Serverless云服务第一阶段的云主要解决硬件资源(网络,计算,存储)的运维和供给问题,也就是 IaaS 云,可以理解成基于硬件资源的共享经济。IaaS 云的交付的主要是资源,接口以及控制台也是面向资源的,尽量以模拟物理机房环境来降低应用的迁移成本。而云发展到当前阶段来看,出现了两种需求:
真正的按需计算
原来云的按需计算只是虚拟机维度的,按时间计费以及弹性伸缩,并不能正真做到按需计算,计算和内存资源都是预申请规划的,和服务的请求并发数并没有明确的关系,哪怕一段时间一个请求没有,资源还是依然占用。而 Serverless计算可以做到按请求计费,不需要为等待付费,可以做到更高效的资源利用率。
面向应用
本质上用户对云的期望是应用的运行环境,并且最好是只让用户关心业务逻辑,而不需要关心,或者尽量少关心技术逻辑(比如监控,性能,弹性,高可用,日志追踪等)。这也是云原生应用(Cloud Native Application)这个概念提出的背景。
随着两种需求日益强烈,Serverless计算模式孕育而生。它给出的方案就是应用只需要把包含自己业务逻辑的功能模块提交给云,其他的事情由云来完成。这样,云相当于直接接管了业务逻辑模块,然后其他的技术功能直接由云来提供,不依赖开发者在自己应用中引入标准化框架来实现。
Serverless计算应用场景与潜力Serverless计算敏捷灵活,适用门槛低,综合成本低的优势,特别适合以下几个场景:
视频,图片以及流式事件处理
其本质上是需要一种通用的,可自定义的,工作流应用。当前的工作流一般都是针对具体场景的,尚无支持自定义逻辑并且适用于各种类型事件的分布式工作流。而基于 Serverless计算有可能诞生这样一种工作流。通过与Flink,Spark Streaming这样的流式大数据处理平台结合,Serverless计算模型将充分发挥其价值。
事件驱动以及响应式架构