Erbix:适合 CommonJS 的服务端 JavaScript 托管平台

  • Dio Synodinos
  • 侯伯薇

2010 年 12 月 25 日

话题:JavaScript架构云计算DevOps语言 & 开发

Erbix是为了在云上构建和部署 JavaScript 应用程序而提供的平台。 它的特点在于能够支持 RinjoJS、CommonJS 模块、PostgreSQL,并且提供按需而变的可伸缩的托管服务。

最近它还为 JavaScript 应用程序创建了 marketplace,在上面放置了一些教程,还有两个完全由 JavaScript 编写的新的开源应用程序。

InfoQ 与 Erbix 的 Mihai Roman 进行了一次关于他们提供的产品的小型问答。

InfoQ:你能够向我们描述一下从架构角度是如何安装 Erbix 以及如何组织应用程序的架构的吗?

Erbix 提供了 web 账户,使用它可以创建、安装或者托管服务端 JavaScript 应用程序。 用户可以注册或者只是使用 OpenID 来登录,然后就可以开始。

所有账户都是彼此独立的,无法直接共享资源。 每个账户都拥有以下资源:

  • 虚拟文件系统(用于存储 JavaScript 代码和图像之类的静态资源)
  • 专门的 PostGreSQL 数据库(用于存储应用程序的数据)
  • 一系列站点,每个站点都会描述 URL 前缀路径如何与 JS 的入口点功能相映射(我们使用 CommonJS JSGI 0.3 标准作为入口点)

每次对特定的 URL 发送请求的时候,就会载入映射的模块,并调用 JSGI 入口点功能。 其它 JavaScript 模块可以根据 CommonJS Module 1.0 规范载入。

我们可以把多个模块文件打包到一个应用程序文件夹中。 我们会把 CommonJS Packages 1.0 的规范文件(application.json)也添加到那个文件夹中,从而可以把它发布到 Erbix Marketplace,并与他人分享。

marketplace 中的应用程序可以通过两种方式安装(发布者拥有选择一种或者两种可能的权利)。

  • 把文件复制到账户中
  • 直接从 Marketplace 运行应用程序

    没有任何(JavaScript)编码经验的用户可以在几秒钟内安装并运行 Marketplace 中的应用程序。 这些应用程序所产生的所有数据都会放在该账户的 PostgreSQL 数据库中。

InfoQ:与其它现有的 JavaScript 平台——像 Node.js、Akshell 等——相比,你们提供了什么特别的功能呢?

Erbix 是基于 Ringo 这个 JavaScript 引擎构建的,选择它之前,我们经过了深思熟虑。RingoJS 对 Mozilla Rhino JavaScript 解释器进行了非常棒的封装。 而 Node.JS 则是除了 RingoJS 的另一种选择。

从技术角度,Erbix 是兼容 CommonJS 的服务端 JavaScript 托管平台。 其中没有厂商的锁定,而且你可以不做任何努力,就可以把应用放到 Erbix 平台中。 用户可以把位于私有托管的 RingoJS 或者其它服务端 JavaScript 平台上的应用导出。

和 Akshell 或者 AppJet(当前由 JGate 负责)不同的是,Erbix 提供了创建完全成熟的 web 应用程序的工具。 通过使用 SQL 控制台或者带有完全 SQL 支持的编程方式,我们可以访问专门的 PostgreSQL 数据库;这是只在 Erbix 中才具有的特性。

InfoQ:在 Erbix 中,开发、调试、测试、部署和监控应用程序的一般工作流程是怎样的呢?

你可以使用在线编辑器来创建文件和文件夹,或者可以很容易地上传。 你可以把文件夹上传到.zip 或者.tar.gz 压缩包中,也可以从中下载。 以后我们可能还会添加源代码版本控制的支持。 那样用户可以选择在 Erbix.com 在线创建应用程序,或者在他们的 IDE 中离线创建。

通过把 URL 的前缀映射到 JSGI 的入口点函数,我们也可以立即部署应用程序。

为了调试和监控的目的,系统还提供了单元测试和记录日志的模块。 我们当前正在改善这些特性和模块。

InfoQ:你认为 Erbix 更适合什么样的一般使用情况呢?

对于创建或者安装针对小型企业的应用程序,Erbix 是很棒的环境。 Erbix 对于开发者和客户都很友好: 我们为开发者提供了高生产率的工具(marketplace、JS hosting、浏览器编辑器等等),使用它们可以创建很棒的应用程序;客户很容易地就可以从 marketplace 安装应用程序,并且掌控位于自己 PostgreSQL 账户中的数据。

有了针对服务端 JavaScript 的当前状况,我们认为 Erbix 对于测试、提升和共享服务端 JavaScript 应用程序是最好的解决方案。

InfoQ:服务的当前状况如何,你将来的路线图是怎样的呢?

当前我们处于开发的 beta 测试阶段。 每个人都可以使用 OpenID 登录,并开始使用这个服务。我们运行了 www.erbix.com 站点,把它作为 Erbix 应用程序,我们只使用在线编辑器构建了两个应用程序,并且期望在下一个主要发布的时候结束 beta 测试。

我们正在着力提升平台的以下方面:

  • 文档
  • 可用性(让非技术用户可以凭直觉使用)
  • 对于自定义领域名称的 UI 支持
  • 更好的动态资源伸缩性(处理流量峰值)
  • 监控 / 统计

同时,我们团队的一部分会开发生产就绪的应用程序,它会发布到 marketplace 中,以供所有人使用和自定义。

Erbix 所提供的产品是 JavaScript Cloud 托管平台系列产品中的一种,这些平台都是在过去几个月中出现的,像InfoQ 所介绍的 Akshell 等等

你可以在 InfoQ 找到更多关于JavaScriptNode.jsCommonJS的信息。

查看英文原文:Erbix: A CommonJS-Compliant Server-Side JavaScript Hosting Platform

JavaScript架构云计算DevOps语言 & 开发