Cloud Foundry 和 OpenWhisk 有什么区别?

What is the difference between Cloud Foundry and OpenWhisk?

我在 Bluemix 中看到了这两个,但它们之间有什么区别?

CloudFoundry is a PaaS(平台即服务) 平台,简而言之,这意味着它将您的应用程序托管到 运行 在。平台示例包括 node.js 或 JVM。

OpenWhisk 是一个 serverless 平台。 FaaS(功能即服务)一词似乎也在兴起。您上传代码,一旦事件发生就会执行。该事件可能是任何事情,从简单的 HTTP 请求到数据库中发生的更改。

两者的根本区别在于运作方式。 PaaS 意味着,您仍在 运行ning 一个服务器进程。一旦事件发生,您将有一个很长的 运行ning 进程来侦听事件并执行您的逻辑。所有其他时间,该进程处于空闲状态,仍然需要 CPU 个周期和内存来实际侦听事件。

在无服务器中,平台承担了 "listening for events" 的负担。一旦事件发生,您的代码就会被实例化并执行。该代码随后关闭,因此不再需要任何资源。这也解释了为什么 OpenWhisk 操作有 5 分钟的时间限制。这并不意味着要进行长时间的 运行ning 操作。

免责声明: 这两个平台支持的内容比我在这里描述的要多得多,我试图将其缩小到两者之间最实质性的差异。

Cloud Foundry 和 OpenWhisk 是开发人员可以用来为应用程序的工作负载提供支持的两种 Bluemix 计算模型。

我将非常高级总结这两种服务以及我何时使用它们...

Cloud Foundry

  • IBM Bluemix 最初基于 Cloud Foundry 的开放技术。它是一个云计算平台即服务,支持从初始开发到所有测试阶段再到部署的完整生命周期。
  • Cloud Foundry 有一个名为 cf 的 CLI 程序,它是与 Bluemix 交互的主要工具(或者 Bluemix 为此提供了一个 Web GUI)。
  • Cloud Foundry 引入了 Organizations 的概念,其中包含 Spaces,您可以将其视为工作区。不同的空间通常对应于应用程序的不同生命周期阶段。
  • Cloud Foundry 引入了 ServicesApplications 的概念。 Cloud Foundry 服务通常执行特定功能(如数据库服务),应用程序通常绑定服务及其密钥。

OpenWhisk

  • OpenWhisk 是 IBM Cloud 开发的全新分布式事件驱动计算模型。
  • 它有一个分布式自动扩展无服务器架构,可以在事件上执行应用程序逻辑。
  • OpenWhisk 还有一个名为 wsk 的 CLI 程序,可用于 运行 您在 OpenWhisk 上的代码片段或操作。
  • OpenWhisk 引入了TriggersActionsRules.[=74 的概念=]
  • 触发器 是由事件源发出的 class 事件。
  • Actions封装了实际要执行的代码,支持多种语言绑定,包括Node.js、Swift和封装在[=109=中的任意二进制程序] 集装箱。操作调用开放生态系统的任何部分,包括用于分析、数据、认知或任何其他第 3 方服务的现有 Bluemix 服务。
  • 规则 是触发器和操作之间的关联。

Cloud Foundry 与 OpenWhisk

所以问题仍然存在:什么时候应该使用 Cloud Foundry,或者什么时候应该使用 OpenWhisk?

根据我使用 OpenWhisk 的有限经验,以下是我的想法。我喜欢将 OpenWhisk 视为一种易于实现的自动扩展架构,应用程序开发人员无需具备太多后端开发先验知识即可使用。我认为 Cloud Foundry 是软件堆栈中的较低级别,它可以为您提供更多定制,但可能需要更多技能和知识来设置它。

我会使用 Cloud Foundry,如果我...

  • 是后端和应用程序开发人员。
  • 有一起创建和连接服务的经验。
  • 使用 OpenWhisk 可能无法实现的所需功能。

如果我...我会使用 OpenWhisk

  • 是一名应用程序开发人员。
  • 不想担心服务器。
  • 不想学习不同的编程语言等来了解如何设置我的服务器。
  • 真的想专注于开发我的应用程序并让后端正常工作。

希望对您有所帮助。

编辑:

这是我发现的一张很酷的图片来说明这一点: