Apigee 现在支持 Node.js 并开源了 Volos

  • Abel Avram
  • 孙镜涛

2013 年 11 月 18 日

话题:技术管理开源安全架构

Apigee Edge 现在支持 Node.js 并且已经开源了Volos,一个包含了一组 API 管理模块的项目。

Apigee 于最近增加了 Node.js 和 NPM 模块支持,用户能够使用它们构建新的 API、移动应用后端、mashups 和复合服务。我们采访了 Apigee 的首席架构师 Greg Brail 以便于更深入地了解开发者能够在 Apigee 平台上使用 Node.js 完成哪些工作。

InfoQ:针对 Edge 平台进行编程的时候用户究竟能够使用 JavaScript/Node.js 做哪些事情?

GB: 非常明确,目前你能够编写 Node.js Web 应用(使用标准的“http”和“https”模块)并将它们部署到 Apigee Edge 上,或者在我们的云中,或者在你自己的数据中心中。部署的应用能够访问一个完整的 Node.js 环境,能够使用托管在 NPM 中的绝大部分模块。我们的环境可能依然存在一些不兼容的地方——例如,并不支持依赖于本地 C 或者 C++ 代码的模块。

因为这些脚本运行在 Edge 内部,就像我们已有的 API 代理那样,所以它们支持 Edge 的各种部署能力,例如通过同样的 UI 和 API 将不同的版本部署到不同虚拟环境中的能力,跨多个地理区划自动部署的能力。我们会收集所有由 Edge 传入 Node.js 程序的 API 调用数据,所以你能够分析流量,甚至可以从定制数据中产生自定义报表。

另外,你能够将 Node.js 脚本和我们已有的策略类库结合起来,包括安全策略(例如 OAuth)、流量管理(例如限额和峰值限制)、安全威胁检查等内容。

InfoQ:我注意到你还支持一些Objective-CJava.NETRubyJavaScript SDK。用户能够使用它们在Edge平台上构建同样的功能么,就像Node.js可以实现的那样?这之间有什么区别?

GB: Edge 平台始终都包含一个运行时,它能够运行使用我们自己的配置模式定义的 API 代理,现在它还将包含另一个运行时,该运行时能够执行使用 Node.js 构建的 HTTP 服务器。另一方面,SDK 是 Edge 提供的各种 API 的客户端,以便于客户端可以直接使用它们。例如,SDK 让开发者能够构建针对多种移动平台的应用,或者构建其他应用,它们使用 Edge 作为后端实现数据存储和推通知等功能。

也就是说,Edge 是一个服务器,而 Node.js 能力是一种将代码部署到服务器上的新方式。服务器还包含一群 API 可以为现代应用提供关键功能,客户端则可以很容易地通过 SDK 访问这些 API。

Apigee 还开源了Volos,这是一组为 API OAuth 2.0 授权、密钥验证、限额管理和缓存提供支持的 Node.js 模块。Volos 能够独自地运行,或者它能够被设置为与Apigee Edge通信从而获得开发者、应用和 API 管理方面的支持,或者 Volos 应用可以被直接部署到 Apigee 平台上。

比较 Volos 与 Edge,Brail 说:

Volos 的设计目的之一就是为了利用 Edge 的许多功能。例如,Volos 中的 OAuth 和限额模块能够在本地运行,但是它们还可以与 Edge 通信,这意味着它按照这种方式使用 OAuth 能力。当然,如果你将一个 Volos 应用程序部署到 Edge 上运行,那么它可以直接使用那些能力。所以,它不一定是一个二选一 / 或者的情况。

也就是说,Edge 在精细化管理方面拥有很多深度的能力,不仅能够管理开发者、应用程序和所有集合,还能够支持分布式限额和深度分析等棘手的事情。

关于 Apigee 对 Volos 将来的计划,Brail 说:

我们计划向 Volos 中添加更多的模块,让它成为在 Node.js 中构建产品质量的 API 最好的工具集。当然,我们将确保 Edge 是运行这些应用的最优方案,确保这些应用在 Edge 上运行的时候它们能够利用 Edge 产品的所有能力和服务性。

此外,Apigee 也为 API 的构建和管理提供了支持,这些 API 在新的或者已经存在的后端或数据服务和客户端之间。

查看英文原文Apigee Now Supports Node.js and Open Sources Volos

技术管理开源安全架构