浅谈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's avatarEBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • 租游戏服务器一年多少钱

    游戏,是现代人生活中不可或缺的一部分。而随着电子竞技的兴起,越来越多的人开始选择租赁游戏服务器来搭建自己的游戏平台,但是你知道吗?租游戏服务器一年到底要花多少钱?今天我们就来揭开这…

    行业资讯 2024年4月12日
    0
  • 北京app被攻击

    近期,北京地区应用程序遭受攻击事件受到广泛关注。此次事件不仅对用户信息安全构成严重威胁,也引发人们对互联网行业安全问题的思考。那么,究竟是何种攻击方式导致了此次事件呢?受影响的用户…

    行业资讯 2024年5月8日
    0
  • 织梦官网打不开,织梦系统网站搭建教程

    5、设置权限控制:正确设置文件和目录权限可以有效防止恶意文件上传或执行。我们建议将文件权限设置为644,将目录权限设置为755,并禁用运行PHP 脚本的功能。 6、监控网站流量:通…

    行业资讯 2024年5月13日
    0
  • switch游戏墙,switch被ban怎么解决

    7.影响在线多人游戏体验。如果您的Switch 被阻止,您的在线多人游戏可能会遇到延迟、冻结和其他可能影响您的游戏体验的问题。 switch为什么会被墙? 如今,随着互联网的发展,…

    行业资讯 2024年5月13日
    0

发表回复

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