什么是全栈式无服务器? - DEV


全栈式无服务器(Full Stack Serverless)是将无服务器Serverless技术与端到端全栈架构相结合,开发人员能够以过去无法实现的方式来实现云中部署与复制,并在复杂的可扩展云应用程序上进行迭代。
全栈无服务器应用程序具有以下三个特征:

  1. 松耦合的前端
  2. 基础架构即代码
  3. 无服务器技术,以最少的开发获得最大的可扩展性

由于许多无服务器技术(例如AWS Amplify,CDK和无服务器框架(以及其他))都在降低使用IAC(基础架构即代码)构建云应用程序的入门门槛,因此,新一代的传统前端开发人员可以使用他们现有的网络和移动技能,以构建传统上无法实现的应用程序类型。
当我说使用他们现有的技能时,我假设典型的前端或全栈开发人员熟悉以下内容:
  1. JavaScript,TypeScript或Python
  2. 与CLI交互
  3. 与RESTful和/或GraphQL APIS交互的基本理解

全栈式无服务器(Full Stack Serverless)应用程序可以作为端对端项目进行共享和部署,而不必担心开发人员的本地环境,因为所有基础架构都在云中运行。可以轻松部署它们、共享它们、对其进行迭代和重新使用它们。
只需数分钟即可创建和销毁后端基础架构,从而使开发人员不必担心会产生大量开发成本。因为服务是无服务器的,所以无论如何开发成本都将很低。
 
为什么使用无服务器?
全栈式无服务器(Full Stack Serverless)严重依赖Serverless理念来构建后端功能。这意味着需要考虑以下因素:
  • 开发人员的速度高于服务所有权
  • 专注于创造业务价值与重新发明轮子
  • 总拥有成本应在基本层面上理解(每次计算的报酬->变量与资本支出)
  • 代码是责任
  • 如果它可以作为服务使用,则永远不要从头开始构建
  • 无服务器函数填补了托管服务无法覆盖的空白

研究还表明,云计算正变得越来越无服务器,这意味着无服务器比无服务器更具前瞻性。

在《简化的云程序设计:关于无服务器计算的伯克利观点》中,对云计算的未来的预测是:

  • 我们期望创建新的BaaS存储服务,以扩展在无服务器计算上运行良好的应用程序类型。这样的存储将与本地块存储的性能相匹配,并具有临时性和持久性变体。与当今为其提供支持的传统x86微处理器相比,我们将看到用于无服务器计算的计算机硬件具有更多的异构性。
  • 我们期望无服务器计算比高服务器计算更安全地编程,这得益于高级编程抽象和云功能的细粒度隔离。
  • 我们看不出无服务器计算的成本应该比无服务器计算的成本高的根本原因,因此我们预测计费模型将不断发展,因此几乎任何规模的应用程序几乎都不会因使用Serverless而花费更多甚至更少计算。
  • Serverful计算的未来将是促进BaaS。事实证明,在无服务器计算之上难以编写的应用程序(例如OLTP数据库)或通信原语(例如队列)可能会作为所有云提供商提供的更丰富的服务的一部分提供。
  • 尽管无服务器云计算不会消失,但随着无服务器计算克服其当前的局限性,该部分云的相对重要性将下降。
  • 无服务器计算将成为Cloud Era的默认计算范例,在很大程度上取代Serverful计算,从而为Client-Server Era带来封闭。

在上面的论文中,他们将术语“无服务器”重新定义为:
简而言之,无服务器计算= FaaS + BaaS。
Serverless无服务器的定义不再只是作为服务函数,现在还包括后端即服务(Baas)。您还将经常看到Serverless被更多地讨论为一种哲学,策略频谱
除了无服务器技术的传统优势之外,无服务器技术比有服务器Serverful更受青睐的另一个主要原因是:
降低传统非后端开发人员的进入门槛
因为开发人员正在利用托管服务提供身份验证和数据库等功能,而不必管理基础架构,所以与传统的Serverful云计算相比,它对新开发人员的进入门槛更低。