Serverless 与传统堆栈
函数即服务 (FaaS)
- 事件驱动执行。
- 开发人员将所有特定于服务器的任务委派给 FaaS 平台。
- 开发人员仅编写由平台调用的业务逻辑,从而随着业务需求的变化,可以进行更具弹性的需求演变。
传统应用程序
- 必须维护服务器基础设施(安装、配置、打补丁、升级等)。
- 基础设施的扩展方式可能对工作负载不够动态(浪费资源)。
- 开发人员编写集成代码来处理消息传递平台、HTTP 请求/响应等。
Serverless 工作负载是“事件驱动的工作负载,不关心通常由服务器基础设施处理的方面”。 诸如“运行多少个实例”和“使用什么操作系统”之类的顾虑都由函数即服务平台(或 FaaS)管理,从而使开发人员可以自由地专注于业务逻辑。
Serverless 应用程序具有许多特定特性,包括
Spring 产品组合提供了一系列强大的功能,可在 Serverless 应用程序中使用。 无论是使用 Spring Data 访问数据、使用 Spring Integration 使用企业集成模式,还是使用 Spring Framework 和 Project Reactor 使用最新的响应式编程,Spring 都可以让开发人员从第一天起就能在 Serverless 环境中高效工作。
Spring 还可以帮助您的函数避免供应商锁定。 Spring Cloud Function 提供的适配器可让您在他们的平台上运行代码时,与供应商特定的 API 解耦。
Spring Cloud Function 提供的功能可让 Spring 开发人员利用 Serverless 或 FaaS 平台。
核心 Java 中的 java.util.function
包是 Spring Cloud Function 使用的编程模型的基础。 简而言之,Spring Cloud Function 提供
Spring Cloud Function 提供适配器,以便您可以在最常见的 FaaS 服务上运行您的函数,包括 Amazon Lambda、Apache OpenWhisk、Microsoft Azure 和 Project Riff。