Serverless/Faas/BaaS 等概念在这几年的技术圈中是绝对的热点词汇之一,国内外众多云厂商也纷纷推出自家的 Serverless 和函数计算产品,微信也依托腾讯云推出了基于 Serverless 和 FaaS 理念的「小程序·云开发」,对应的新型岗位也不断涌现。
如今,我们确实看到很多中小型业务在拓展新领域、开发新功能时会优先考虑使用 Serverless 产品作为后端架构基建,但却鲜有见到面向 C 端的一线大厂中,有核心业务在 Web 后端层面改为采用 Serverless 作为开发模式,这又是何缘由呢?
什么是Serverless
作为业界 Serverless 和 FaaS 领域的先锋,Amazon 的 Serverless 产品页面对 Serverless 作出了这样的定义:
无服务器是一种用于描述服务、实践和策略的方式,使您能够构建更敏捷的应用程序,从而能够更快地创新和响应变化。凭借无服务器计算,容量预置和补丁等基础设施管理任务由 AWS 处理,以便您能够专注于编写为客户服务的代码。AWS Lambda 等无服务器服务具有自动扩展、内置高可用性以及按价值付费的计费模型。Lambda 是一种事件驱动的计算服务,使您能够运行代码来响应来自 200 多个本地集成的 AWS 和 SaaS 源的事件 — 所有这些都无需管理任何服务器。
根据 Amazon 的定义及各个厂商和业务对 Serverless 的实践,我们可以进一步将 Serverless 的特点归纳如下:
- 解耦开发与运维:业务只需要关心自身的业务实现,不需要关心机器情况,也无需进行复杂的基础组件配置甚至环境搭建。
- 弹性:借助于近几年容器技术的发展,可实