close

无服务器

无服务器应用程序利用了现代云计算功能和抽象的优势,使您可以专注于逻辑而不是基础架构。在无服务器环境中,您可以专注于编写应用程序代码,而基础平台则负责扩展,运行时,资源分配,安全性以及其他“服务器”方面的细节。

什么是无服务器?

无服务器工作负载是“事件驱动的工作负载,与服务器基础结构通常处理的方面无关。” 诸如“要运行多少个实例”和“要使用哪种操作系统”之类的问题都由功能即服务平台(或FaaS)管理,从而使开发人员可以自由地专注于业务逻辑。

无服务器特性?

无服务器应用程序具有许多特定特征,包括:

  • 带触发器的事件驱动的代码执行
  • 平台处理所有开始,停止和缩放的琐事
  • 缩放为零,空闲时成本低至零
  • 无状态

无服务器与传统堆栈

服务即服务(FaaS)和旧图 服务即服务(FaaS)和旧图

服务即服务(FaaS)

  • 事件驱动的执行。
  • 开发人员将所有特定于服务器的任务委托给FaaS平台。
  • 开发人员仅编写平台调用的业务逻辑,从而可以随着业务需求的变化而更加灵活地扩展需求。

传统应用

  • 必须维护服务器基础结构(安装,配置,修补,升级等)。
  • 基础架构的扩展方式可能无法动态适应工作负载(浪费资源)。
  • 开发人员编写集成代码来处理消息传递平台,HTTP请求/响应等。

为什么选择Spring和Serverless?

Spring产品组合提供了强大的功能集合,可在无服务器应用程序中使用。无论是使用Spring Data访问数据,使用带有Spring Integration的企业集成模式还是使用带有Spring FrameworkProject Reactor的最新反应式编程,Spring都使开发人员从第一天开始就可以在无服务器环境中工作。

Spring还可以帮助您的功能避免供应商锁定。通过Spring Cloud Function提供的适配器,您可以在其平台上运行代码时与特定于供应商的API分离。

详细说明:Spring Cloud功能

Spring Cloud Function提供的功能使Spring开发人员可以利用无服务器或FaaS平台。

java.util.function来自核心Java的软件包是Spring Cloud Function使用的编程模型的基础。简而言之,Spring Cloud Function提供了:

  • 编程风格的选择:反应式,命令式或混合式。
  • 功能组成和适应(例如将命令性功能与反应性组合)。
  • 支持具有多个输入和输出的反应式功能,以使功能处理合并,联接和其他复杂的流操作。
  • 输入和输出的透明类型转换。
  • 特定于目标平台的部署打包功能(例如Project Riff,AWS Lambda等;请参见下文)。
  • 具有灵活签名的函数(POJO函数)-“如果看起来像一个函数,那就是一个函数”
  • Spring习惯用法和编程模型的所有其他好处。

Spring Cloud Function提供了适配器,因此您可以在最常见的FaaS服务上运行功能,包括Amazon LambdaApache OpenWhiskMicrosoft AzureProject Riff

准备开始了吗?

更多资源

在YouTube上播放“ Spring,Functions,Serverless和You”
Spring,Functions,无服务器和您
内特·舒塔(Nate Schutta)
在YouTube上播放“无服务器之春”
无服务器的Spring
戴夫·赛尔(Dave Syer)和马克·费舍尔(Mark Fisher)