我在 Bluemix 中看到了这两者,但它们之间有什么区别?
2 回答
Cloud Foundry 和 OpenWhisk 是两个 Bluemix Compute 模型,开发人员可以使用它们来支持应用程序的工作负载。
我将对这两种服务以及何时使用它们进行非常高级的总结......
云铸造
- IBM Bluemix 最初基于 Cloud Foundry 的开放技术。它是一个云计算平台即服务,支持从初始开发、所有测试阶段到部署的整个生命周期。
- Cloud Foundry 有一个名为cf的 CLI 程序,它是与 Bluemix 交互的主要工具(或者 Bluemix 为此提供了一个 Web GUI)。
- Cloud Foundry 介绍了包含空间的组织的概念,您可以将其视为工作空间。不同的空间通常对应于应用程序的不同生命周期阶段。
- Cloud Foundry 介绍了服务和应用程序的概念。Cloud Foundry 服务通常执行特定的功能(如数据库服务),并且应用程序通常具有绑定到它的服务及其键。
OpenWhisk
- OpenWhisk 是一种全新的 IBM Cloud 开发的分布式事件驱动计算模型。
- 它具有分布式自动扩展无服务器架构,可在事件上执行应用程序逻辑。
- OpenWhisk 还有一个名为wsk的 CLI 程序,可用于在 OpenWhisk 上运行您的代码片段或操作。
- OpenWhisk 引入了触发器、操作和规则的概念。
- 触发器是事件源发出的一类事件。
- Actions封装了要执行的实际代码,支持多种语言绑定,包括 Node.js、Swift 和封装在 Docker 容器中的任意二进制程序。操作调用开放生态系统的任何部分,包括用于分析、数据、认知或任何其他第 3 方服务的现有 Bluemix 服务。
- 规则是触发器和操作之间的关联。
Cloud Foundry 与 OpenWhisk
所以问题仍然存在:什么时候应该使用 Cloud Foundry,或者什么时候应该使用 OpenWhisk?
在我使用 OpenWhisk 的有限经验中,以下是我的想法。我喜欢将 OpenWhisk 视为一种易于实现的自动扩展架构,应用程序开发人员可以使用它,而无需太多后端开发方面的先验知识。我认为 Cloud Foundry 是软件堆栈中的一个较低级别,它可能会为您提供更多定制,但可能需要更多的技能和知识来设置它。
如果我...,我会使用 Cloud Foundry
- 是一名后端和应用程序开发人员。
- 具有创建和连接服务的经验。
- 使用 OpenWhisk 可能无法实现的所需功能。
如果我...,我会使用 OpenWhisk
- 曾是一名应用程序开发人员。
- 不想担心服务器。
- 不想学习不同的编程语言等来弄清楚如何设置我的服务器。
- 真的想专注于开发我的应用程序并让后端正常工作。
希望有帮助。
编辑:
这是我发现的一张很酷的图片,可以说明这一点:
CloudFoundry是一个PaaS(平台即服务)平台,简而言之,它托管您的应用程序运行的平台。平台的示例包括 node.js 或 JVM。
OpenWhisk是一个无服务器平台。FaaS(功能即服务)这个术语似乎也在出现。您上传代码,一旦事件发生就会执行。该事件可能是任何事件,从简单的 HTTP 请求到数据库中发生的更改。
两者的根本区别在于操作方式。PaaS 意味着,您仍在运行服务器进程。一旦事件发生,您将有一个长时间运行的进程来监听事件并执行您的逻辑。一直以来,进程都是空闲的,仍然需要 CPU 周期和内存来实际侦听事件。
在无服务器中,平台承担“监听事件”的负担。一旦事件发生,您的代码就会被实例化并执行。该代码随后被关闭,因此不再需要任何资源。这也解释了为什么 OpenWhisk 操作有 5 分钟的时间限制。它并不意味着有长期运行的动作。
免责声明:这两个平台支持的内容比我在这里描述的要多得多,我试图将其降低到两者之间最本质的区别。