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