无服务器架构 - 完整参考指南[2019]


无服务器架构并不意味着在没有服务器的情况下运行代码,公司无需购买,租用或配置服务器/虚拟机来运行后端代码。这是一种无需基础架构管理即可构建和运行应用程序和服务的方法。

无服务器架构的演变
“无服务器是云平台向纯云原生代码方向发展”。
它是云平台的几次迭代的高潮。这种演变始于数据中心的物理机,并通过基础架构即服务(IaaS),平台即服务(PaaS)和容器即服务(CaaS)发展为函数即服务(FaaS)。

为何选择无服务器架构?
无服务器架构大大地帮助开发人员更多地关注其核心产品,而不是基础架构。否则,开发人员仍然会担心实施,维护,调试和监控基础架构,无论是在云中还是在现场管理它们。使用无服务器服务(如AWS Lambda,Google Cloud Functions,Firebase或Microsoft Azure函数),他们将负责物理硬件,虚拟机操作系统以及Web服务器,而您 - 作为开发人员 - 只需要担心一个事 - 你的业务代码。

切换到无服务器方便吗?
如果您要托管少量功能函数,则应考虑切换到无服务器。拥有更复杂的应用程序,无服务器架构仍然可以取胜,但您需要以不同方式构建应用程序。但是对于你现有的应用程序,切换无服务器可能会变得不切实际。这类似车辆租用和车辆共享,还是自己买一辆期初?类似拥有一件裸金属服务器?

什么是服务功能函数(FaaS)?
FaaS是无服务器架构的实现,工程师可以在其中部署单个功能或业务逻辑。它允许开发人员“动态”编写和更新一段代码,然后可以执行这些代码以回复事件,例如用户单击Web应用程序中的元素。这有助于扩展代码,是实现微服务的一种经济高效的方式。
换句话说,开发人员现在可以将服务器分成一堆可以自动和独立扩展的功能,而不是扩展单体REST服务器来处理潜在的负载。

有些人认为无服务器应该被称为服务功能(FaaS),虽然它不是一个坏名字,但无服务器是一个更广泛的概念,而不仅仅是在云中运行的短暂功能。了解原因?

FaaS的主要属性是:

  • 独立的服务器端逻辑功能
  • 短暂的(可能只持续一次调用)
  • 无状态
  • 事件触发
  • 默认可扩展
  • 由云供应商(第三方)全面管理

FaaS和PaaS之间的区别是什么?
PaaS可以轻松部署整个应用程序。PaaS提供商处理配置服务器并将您的应用程序部署到服务器。
功能函数即服务(FaaS)使您能够部署基本上是单个功能或应用程序的一部分。您可以将应用程序分解为小型自包含程序或功能,而不是您在PaaS上运行的整体应用程序。

无服务器基础设施提供商和操作指南的链接
在您的计算机上安装无服务器框架后,接下来要选择您希望无服务器服务运行的位置。从下面的列表中选择您的计算提供程序,并按照Serverless Inc.的精彩指南访问https://serverless.com/framework/docs/getting-started/

无服务器设计的五大原则
如果您决定使用无服务器方法创建整个系统(后端和前端),则以下原则适用。如果要构建其他类型的系统(用于转换文件的管道),则与前端相关的原则将不适用。

  1. 使用计算服务是按需执行代码
  2. 编写单一用途的无状态函数
  3. 设计基于推送的事件驱动管道
  4. 创建更厚,更强大的前端
  5. 拥抱第三方服务

无服务器的最佳用例

32.3%后端API
20.7%数据处理
16.9%集成第三方服务
16.5%互联网工具
5.8%物联网

但什么时候不使用无服务器?
需要定制性、灵活性、希望控制超过函数以外的事情。