在 IBM(国际商业机器公司) 的 Serverlessconf 网站上,官方发布了 IBM Cloud Functions 的一项新功能(作为 IBM Research 的一个预览版)。我们可以使用新工具 Composer,以创建包含多个云功能的应用程序,这些应用程序会协调动作的调用与数据流。新功能比起以前使用的动作序列相比,更为灵活了。
云功能一般来说是非常简单,且专注于特定任务的,这也是人们通常将云功能称为微服务的原因。云本地应用程序通常包含了许多的微服务。微服务的实现非常简单,其技术难点在于微服务之上的流程编排层。这就是像 Kubernetes 这样的框架,与 Istio 这样的附加组件已变得非常流行的原因。开发人员现在可以使用新工具 Composer 来构建能够利用多种云功能的应用程序,但这需要更复杂、协调一致的流程来实现端到端的解决方案。
Composer 是 IBM Cloud Functions 编程模型,该模型用于将各个独立功能组合成更大的应用程序。组合模式、非正式命名程序,都是使用自动管理的计算与内存资源运行在云服务器中。Composer 是对功能服务(FaaS)计算模型的一个扩展,它支持状态计算、控制流和丰富的数据流模式。Composer 由两部分组成:第一个,是以编程方式描述组合模式的库,该库目前在 Node.js 中是可用的。第二个则是执行组合模式的运行时环境。
现在我们来看一个简单的例子。使用新的 Composer 功能,我们可以根据前一个功能的返回结果来决定调用特定的下一功能。下面的屏幕截图展示了新工具“fsh”(函数式编程壳),它以图形的方式来显示流程。
应用程序(组合模式)可以通过由运行时环境组件所执行的 JSON 来定义。除了 “if” 方式之外,目前还支持许多其他构图方法。
我所喜欢的是第二种定义应用程序的方法,因为我认为这一方法对于开发者而言更为自然。您可以将应用程序定义为 JSON 配置,也可以编写使用 Composer SDK 的 Node.js 代码,并使用构造变量,try / catch语句,循环,数据转发等等。
Node.js 代码会被编译成 JSON,并由运行时环境来执行。开发人员需要配置 Redis 数据存储以处理应用程序的状态(详情参阅:文档)。运行时环境与数据存储允许托管和运行无服务器式应用程序。
若想要了解更多信息,请查看快速入门指南。