浅谈Serverless

一、引言

在过去的十多年里,云计算的发展更新换代,经历了多个阶段,传统的分类方式有三种。

IaaS

Infrastructure as a Service

基础设施即服务

指的是把基础设施(如服务器、网络、存储等)作为服务提供给客户。客户向云服务厂商申请计算资源,在上面部署自己的服务。使用IaaS,可以降低基础设施成本,客户不用自己运维物理机,而是按使用时长租赁虚拟机;可以满足扩展性,不必预先采购大批基础设施,而是通过云服务厂商快速获取机器;同时节省了采购机器、运输机器、安装机器的时间成本。


PaaS

Platform as a Service

平台即服务

指的是由云服务厂商提供操作系统的安装、监控等功能,客户只需要开发、部署自己的应用,不必接触底层的操作系统。通常,云服务厂商还提供常用的中间件,如负载均衡、数据库、消息队列、监控等,方便客户使用。

SaaS

Software as a Service

软件即服务

指的是由云服务厂商提供一个应用程序,客户可以直接运行使用。例如各种应用程序、Web服务都属于SaaS服务的范畴。

 

除了上面三种传统的分类方式,FaaS、BaaS等方式在近年来也比较流行。而Serverless这一名词,最早是在2012年,由Iron公司提出。2014年,亚马逊推出AWS Lambda,把Serverless真正带入人们的视野,被大家所熟知。之后,微软、谷歌、IBM都先后推出自己的Serverless产品。国内,阿里云、腾讯云、华为云也先后推出自己的Serverless平台。现在Serverless已经成为各大云服务厂商的标配。

二、Serverless架构

Serverless,全称是Serverless Computing,无服务器运算。但Serverless实际上并不是不需要服务器,其less的含义,是客户不用关心,不用去管理服务器的意思。它是将计算资源作为服务,而不是服务器的概念出现。

Serverless的基本理念是,让客户将精力集中于业务逻辑开发上。使用Serverless,客户不需要关注基础设施的建设管理,服务器的扩展,失败容错等问题。

Serverless将服务器管理、操作系统管理、基础软件的部署运维等工作全权托管给云服务厂商,由云服务厂商提供一个Serverless平台,相当于客户和服务器间增加了一个抽象层。客户不需要聚焦于服务器服务的管理,只需要聚焦业务逻辑的开发,把代码部署到Serverless平台上。

Serverless平台根据请求的实际情况,进行资源分配,并提供弹性伸缩能力,客户不需要关心资源够不够用的问题。

Serverless目前没有很明确的定义,云服务厂商大多采用FaaS(Function as a Service,函数即服务)和BaaS(Backend as a Service,后端即服务)的方式来提供服务。

浅谈Serverless

Serverless软件架构图

Serverless的客户,可以直接把代码部署到Serverless计算平台上,无需进行资源购买和环境部署。

Serverless计算平台提供了应用程序的执行环境,为应用程序提供高可用、弹性、可靠的计算能力。通过FaaS计算平台,开发人员可以将一个大应用拆分为一个个相对独立的业务单元,然后通过事件触发的方式,将各个业务单元串接起来,从而实现整个业务流程。通过云服务厂商提供的FaaS平台,开发人员可以快速实现业务开发。

BaaS将云端能力进行封装,屏蔽服务的复杂细节,为应用程序提供服务化的后端能力,比如对象存储、数据库、消息队列、权限管理等能力。开发人员只需要通过简单的API或SDK调用,即可使用相应的服务能力。开发者的应用程序可以使用BaaS提供的后端服务进行交互,构成完整的Serverless架构,用最简单的方式让业务快速落地。

FaaS主要支持事件触发的计算形式。通过HTTP请求,或者云服务厂商提供的组件调用,可以触发访问业务代码。Serverless平台根据客户的请求,提供负载均衡、弹性伸缩、高可用等最佳实践,将这些最佳实践对客户透明化,客户不用去关心后台资源的调度问题,降低开发和运营成本。

Serverless的主要特点:

聚焦业务

客户只需要聚焦业务逻辑,无需关注资源的管理,还可以使用云服务厂商提供的丰富的后端服务,减少开发周期。

按需弹性

业务流量有比较明显的高峰和低谷,或者业务有临时的大流量需求的时候,客户无需对资源进行预估,平台能够根据请求的实际情况,及时且稳定的负责资源的弹性伸缩,扩展性强。

按需付费

按实际资源使用量进行收费,客户不需要支付固定数额的存储或带宽,没有流量则没有费用。

可维护性高

客户无需管理服务器,由平台提供服务器的管理、故障自动识别、自动剔除等能力,降低客户的运营复杂度。

安全性高

抗攻击等工作可以交由经验丰富的云服务厂商来提供。

三、Serverless实践

Serverless已有多种应用场景,无论是后台服务,还是Rest API都可以部署到Serverless平台上。

下面介绍一下Serverless在音视频处理方面的一个用例。

在视频应用的场景下,用户上传的音视频文件总量大,上传频率有高峰和低谷,对音视频处理系统的实时性和并发能力都有较高的要求。同时,一份视频文件通常需要进行不同清晰度的处理,以满足不同场景下的用户需求。

传统的方式,客户要实现音视频处理的能力,需要完成基础资源的购买和部署,自行实现音视频文件的存储、转码计算能力的开发,需要实现访问控制,负载均衡,监控管理等各个方面的内容,还需要预留足够多的计算资源,以满足高峰时期的计算需求。

浅谈Serverless

使用Serverless平台,客户可以将系统设计如下:

浅谈Serverless

在Serverless平台中,客户可以编写自定义的业务逻辑,对音视频文件进行逻辑处理。

客户可以使用云服务厂商提供的对象存储能力,存储音视频文件。同时,配置对象存储的触发器,当音视频文件被上传、更新、删除时,将自动触发客户的应用程序,完成相应的逻辑处理,包括视频的各分辨率转码、音频转码、视频截图、视频转动图等功能。客户也可以使用接口直接触发相应的业务功能。

客户可以使用Serverless平台提供的日志管理、监控告警等能力,不需要额外关注旁路功能的建设。甚至,客户可以进一步使用平台提供的音视频处理能力,不需要关心具体的音视频处理算法,业务代码本身只需要提供简单的逻辑处理能力。

客户可以把音视频处理的结果存储到对象存储服务中,方便其用户对媒体资源的访问。

浅谈Serverless

使用Serverless平台提供的能力,客户将业务逻辑中与业务不相关的工作剥离出去,由云平台厂商来完成,客户只需要关注核心的业务逻辑,可以显著提升开发效率,快速迭代上线。

四、Serverless问题

Serverless架构是目前比较热门的一种架构方式,但是并不是所有的服务都适合使用Serverless。现阶段,Serverless仍面临着很多挑战,我们需要对其进行权衡。

无状态性

要想服务实现弹性伸缩,客户程序需要是无状态的,Serverless不能保证本地数据的持久性,因此不能够使用本地存储的数据。

业务轻量化

要实现彻底的自动扩缩容,需要使应用程序微服务化,把巨型应用拆分成更细粒度的函数来做到轻量化,需要业务做比较大的改造。

启动时延

FaaS在启动的时候可能需要完成初始化,会带来请求的延迟。如果一个应用程序分发和启动耗时很高,就无法做到快速响应,无法跟上业务流量的变化,就不适合使用Serverless。

多客户问题

不同客户的多个软件实例可能在同一台云服务器上运行,可能出现系统健壮性和性能等方面的问题。

排障问题

在Serverless平台进行调试,客户需要频繁的进行程序部署,为程序调试带来一定的难度。同时,Serverless模式下,客户不需要关心服务器,意味着客户看不到服务器了,那么如果系统出现异常,客户不能登录服务器进行排障,只能通过云服务商提供的排查诊断工具,对问题诊断带来一定的难度。

五、小结

随着云计算的发展,技术分工更加明确,基础设施及平台统一由云服务厂商来提供并管理。Serverless架构让我们不需要关注基础设施和平台的运维,只需要专注于业务的研发,专注于产品的实现,专注于核心竞争力的提升。

随着技术的飞速发展,随着Serverless存在的不足被逐个击破,相信Serverless在未来还有无限可能。

浅谈Serverless

文章作者:蔡馥晗

排版设计:王蔚棋

手绘插画:岳   媛

浅谈Serverless

求分享

求点赞

浅谈Serverless

求在看

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/32944.html

(0)
EBCloud的头像EBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • dns污染域名,dns污染怎么修复

    DNS 重复是互联网行业的一个主要问题。它可能会影响您的网络访问速度或阻止您访问某些网站。那么什么是DNS 翻转污点呢?如何检查自己是否受到影响并解决问题?本文将向您介绍相关内容,…

    行业资讯 2024年5月14日
    0
  • 如果steam被墙,macbooksteam

    您是否也遇到过macsteam被屏蔽的问题?您可能不知道macsteam是什么,但它是很多Mac用户必备的软件。那么为什么会出现这样的问题呢?是因为功能太强大而有人不满意吗?如果您…

    行业资讯 2024年5月16日
    0
  • 合肥建设网站制作哪个好,合肥建设网点

    如果您想建设专业网站,选择合肥建设网是明智的选择。我们提供全方位的网站设计服务,让您的网站更具吸引力和竞争力。那么为什么选择合肥建设网?它有什么好处?关于网站设计如何联系你们?设计…

    行业资讯 2024年4月3日
    0
  • 如何维护合金装备服务器?

    如何维护合金装备服务器?网络安全加速行业的发展已经成为当下的热门话题,随着科技的不断进步,网络安全问题也变得越来越突出。而在这个行业中,合金装备服务器扮演着重要的角色。那么什么是网…

    行业资讯 2024年4月5日
    0

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注