Kratos 项目使 AWS Lambda 代码运行在多个云上

  • Hrishikesh Barua
  • 谢丽

2016 年 2 月 25 日

话题:AWS云计算DevOps

消息队列和任务处理平台提供商Iron.io宣布了 Kratos 项目,该项目使AWS Lambda函数可以运行在多个云上。Lambda 函数在 Iron.io 的容器中执行,而这些容器可以运行在任何底层基础设施上。

AWS Lambda 是一个允许开发人员运行代码响应特定事件(如上传一张图片)的服务。这些代码中的函数充当事件处理程序。当事件发生时,AWS 负责启动运行代码所需的实例,并根据需要进行扩展。开发人员完全不知道操作细节。

Kratos 项目在代码和基础设施之间另外引入了一层,旨在提供一个云平台无关的平台。该层由 Iron.io 自定义的容器构成。现有的 Lambda 函数可以运行在这些容器中。Iron.io 计划针对谷歌“云函数(Cloud Functions)”做相同的事情。Iron.io 首席执行官兼联合创始人 Chad Arimura 是这样介绍 Kratos 容器的作用的:

容器打包了所有必要的组件,使代码平台无关,用户可以控制和选择如何及在哪里运行工作负载。我们发现,这就是现代企业希望采用的应用架构方式。

Kratos 项目已经创建了工具,用于将 Lambda 函数封装和打包到容器中。据 Iron.io 首席技术官 Travis Reeder 介绍,虽然它可能不支持实际的 Lambda API,但这些函数可以使用 Kratos 端点完成相同的事情。

AWS Lambda 于 2014 年 11 月发布,支持 Java、Python 和 node.js。事件可以由各种数据源产生,如 Amazon S3(比如新增或修改一个对象)、Amazon Kinesis(比如记录流数据)和Amazon DynamoDB(比如记录表更新)。AWS 负责自动扩展运行事件处理程序代码的基础设施。Lambda 处理程序代码可以在 AWS 控制台的编辑器中编辑,也可以打包为 zip 文件上传。代码使用 AWS 特有的结构,因此,如果要运行在 AWS 之外的基础设施上就需要修改。谷歌最近宣布了一个类似的产品,名为云函数。

在 Kratos 项目中,容器会运行专有组件,那这是否会导致客户被 Iron.io 的平台锁定?对此,Arimura 解释说:

我们也可以使用 webhook(比如 SNS/PubSub)连接到所有的 AWS/ 谷歌服务,但是之后,你就可以控制在哪里运行工作负载,包括使用 vSphere 或 OpenStack 的私有数据中心。

Arimura 进一步补充道,“我们提供了导入程序,可以简化 Lambda 函数的打包和运行,但将来,我们也会包含 API 兼容性,真正实现工具重用”,从而将现有的 Lambda 函数迁移到 Kratos。Kratos 将提供一个 CLI 工具,负责打包及向 Iron.io 的平台推送和注册函数。

Kratos 尚未正式发布,欢迎感兴趣的开发人员在他们的首页上参与 Beta 测试

查看英文原文:Project Kratos Enables AWS Lambda Code to Run on Multiple Clouds

立即免费注册 AWS 账号,获得 12 个月免费套餐:点击注册

有云计算问题?立刻联系 AWS 云计算专家:立即联系

AWS云计算DevOps