什么是 Serverless 架构

本文涉及的产品
简介: 随着云服务的发展,计算资源被高度抽象化,从物理机到云服务器,再到容器服务,计算资源逐渐变得更加细腻化。

随着云服务的发展,计算资源被高度抽象化,从物理机到云服务器,再到容器服务,计算资源逐渐变得更加细腻化。

2012年,Iron.io的副总裁Ken Form在文章《Why The Future of Software and Apps is Serverless》中首次提出了无服务器的概念,并指出“即使云计算的已经逐渐的兴起,但是大家仍然在围绕着服务器转。不过,这不会持续太久,云应用正在朝着无服务器方向发展,这将对应用程序的创建和分发产生重大影响”;2019年,UC Berkeley发表论文《Cloud Programming Simplified: A Berkeley View on Serverless Computing》,在文章中,作者犀利断言“新的BaaS存储服务会被发明,以扩展在Serverless计算上能够运行更加适配的应用程序类型。这样的存储能够与本地块存储的性能相匹配,而且具有临时和持久可供选择。基于 Serverless 计算的价格将低于 Serverful 计算,至少不会高于 Serverful 计算。Serverless 计算一旦取得技术上的突破,将会导致 Serverful 服务的下滑。Serverless 将会成为云时代默认的计算范式,将会取代 Serverful 计算,因此也意味着服务器 - 客户端模式的终结。”。

Serverless架构从2012年的首次走进大众视野到2019年成为UC Berkeley对云计算领域犀利断言的主角,Serverless架构利用了7年的时间,完成了从一个“新的观点”向“万众瞩目的架构”转身,在这7年之间,Serverless架构从鲜为人知,到被商业化应用,再到头部云厂商纷纷布局Serverless架构作为云计算战略,Serverless架构逐渐的成为了人尽皆知的新的技术范式。当然,在这7年之间,Serverless不仅仅技术架构在逐渐的升级和完善,其概念也是越发的明确,其目标和方向也是逐渐的清晰明朗起来。

关于Serverless的定义,Martin Fowler在《Serverless Architectures》一文中认为Serverless实际上是BaaS与FaaS的组合。这个简单明了的定义,也逐渐的奠定了Serverless组成结构的基础。

如图所示,Martin Fowler认为,在Serverless架构中,应用的一部分服务端逻辑依然由开发者完成,但是和传统架构不同,它运行在一个无状态的计算容器中,由事件驱动、生命周期很短(甚至只有一次调用)、完全由第三方管理,这种情况称为 Functions as a service / FaaS。AWS Lambda 是目前的热门 FaaS 实现之一;除此之外,Serverless架构还要有部分依赖于第三方(云端)应用或服务来管理服务器端逻辑和状态的应用,这些应用通常是富客户端应用(单页应用或者移动端 App),建立在云服务生态之上,包括数据库(Parse、Firebase)、账号系统(Auth0、AWS Cognito)等,而这些服务最早被称为 “(Mobile) Backend as a Service”,即我们所认为“BaaS”部分。

在同样认为Serverless有FaaS与BaaS结合而成的同时,CNCF在g对Serverless架构的定义进行了进一步完善描述:Serverless是指构建和运行不需要服务器管理的应用程序概念。它描述了一种更细粒度的部署模型,其中将应用程序打包为一个或多个功能,上传到平台,然后执行、扩展和计费,以响应当时确切的需求。与此同时,在2019年UC Berkeley的文章《Cloud Programming Simplified: A Berkeley View on Serverless Computing》中也同样从Serverless架构特性的角度,对什么是Serverless也进行了补充描述和定义:简单地说,Serverless = FaaS + BaaS。在对于被认为是Serverless的服务,它必须具备弹性伸缩和按量付费的特点;在信通院云原生产业联盟所发布的《云原生发展白皮书(2020年)》中对Serverless的概念也有相关的描述:无服务器(即Serverless)是一种架构理念,其核心思想是将提供服务资源的基础设施抽象成各种服务,以 API 接口的方式供给用户按需调用,真正做到按需伸缩、按使用收费。这种架构体系结构消除了对传统的海量持续在线服务器组件的需求,降低了开发和运维的复杂性,降低运营成本并缩短了业务系统的交付周期,使得用户能够专注在价值密度更高的业务逻辑的开发上。至此,Serverless架构从结构上,行为上以及特性上的定义,就可以总结成下图的形式:

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
7天前
|
运维 安全 Serverless
Serverless架构在图像处理中的优势探讨
Serverless架构在图像处理中的优势探讨
14 1
|
4月前
|
运维 Serverless API
四大软件架构:掌握单体、分布式、微服务、Serverless 的精髓
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
|
29天前
|
敏捷开发 jenkins Serverless
Serverless 应用架构转型
【2月更文挑战第29天】
|
1月前
|
机器学习/深度学习 人工智能 Serverless
20行代码,Serverless架构下用Python轻松搞定图像分类和预测
本文将AI项目与Serverless架构进行结合,在Serverless架构下用20行Python代码搞定图像分类和预测。
111639 126
|
3月前
|
机器学习/深度学习 弹性计算 Serverless
引领未来科技发展的无服务器架构(Serverless)
无服务器架构(Serverless)是一种革命性的云计算模式,它将开发者从传统服务器管理的繁琐中解放出来,提供了更高效、灵活和可扩展的应用开发和部署方式。本文将介绍无服务器架构的概念、原理及其在各个领域的应用,并展望其对未来科技发展的巨大影响。
|
3月前
|
存储 物联网 Serverless
无服务器架构(Serverless)的革命性应用
无服务器架构是一种全新的云计算模型,它将传统的基于服务器的架构转变为以事件驱动的、按需自动化的架构。本文将探讨无服务器架构的定义、特点以及在现代应用开发中的应用。
150 2
|
4月前
|
运维 Cloud Native Serverless
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
70471 77
|
4月前
|
Cloud Native 安全 Serverless
阿里云重磅亮相信通院 2023 云原生产业大会,持续推动 Serverless 架构落地 | 报名启动
阿里云重磅亮相信通院 2023 云原生产业大会,持续推动 Serverless 架构落地 | 报名启动
|
4月前
|
Serverless 开发者 微服务
Serverless架构
Serverless架构
|
5月前
|
存储 消息中间件 Serverless
从上云到用云,Serverless 引领下一代应用架构(3)
从上云到用云,Serverless 引领下一代应用架构
429 0
从上云到用云,Serverless 引领下一代应用架构(3)

相关产品

  • 函数计算