Serverless 工程实践 | 细数 Serverless 的配套服务
作者 | 刘宇(江昱)
前言:上文说到云计算的十余年发展让整个互联网行业发生了翻天覆地的变化,Serverless 作为云计算的产物,或者说是云计算在某个时代的表现,被很多人认为是真正意义上的云计算,关于“Serverless 是什么”这个问题,其实是可以通过不同角度来分析的。
Martin Fowler 在 “Serverless Architectures” 一文中从 Serverless 组成角度给出了 Serverless 的定义,他认为 Serverless 实际上是 BaaS 与 FaaS 的组合,并针对 BaaS 和 FaaS 进行了详细的描述。
Serverless 最早用于描述那些大部分或者完全依赖于第三方(云端)应用或服务来管理服务器端逻辑和状态的应用,这些应用通常是富客户端应用(单页应用或者移动端App),建立在云服务生态之上,包括数据库(Parse、Firebase)、账号系统(Auth0、AWS Cognito)等。这些服务最早被称为 Baas(Backend as a Service,后端即服务)。
Serverless 还可以指这种情况:应用的一部分服务端逻辑依然由开发者完成,但是和传统架构不同,它运行在一个无状态的计算容器中,由事件驱动,生命周期很短(甚至只有一次调用),完全由第三方管理。这种情况被称为 FaaS(Functions as a service,函数即服务)。AWS Lambda 是目前的热门 FaaS 实现之一。
Serverless 工作流程
在实际生产中,Serverless 架构通常都是 FaaS 与 BaaS 的结合,并且具备弹性伸缩和按量付费的特性。
当开发者想要开发一个项目的时候:
通常只需要根据 FaaS 提供商所提供的 Runtime,选择一个熟悉的编程语言,然后进行项目开发、测试(图中步骤 1) 完成之后将代码上传到FaaS平台(图中步骤 2)
上传完成之后,只需要通过 API/SDK;或者一些云端的事件源(图中步骤 3) 触发上传到 FaaS 平台的函数,FaaS 平台就会根据触发的并发度等弹性执行对应的函数(图中步骤 4) 最后用户可以根据实际资源使用量进行按量付费(图中步骤 5)
Serverless 的配套服务
如图所示,通过该界面,用户可以快速地部署应用。
用户可以快速地管理云上 Serverless 相关资源,如图所示。
Serverless Workflow
Serverless 应用的可观测性
新书推荐
Serverless 工程实践系列
Serverless 工程实践系列
刘宇,公众号:ServerlessServerless 工程实践 | 从云计算到 Serverless
👇戳阅读原文,立即购买!