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找到更多关于JavaScript、Node.js和CommonJS的信息。
查看英文原文:Erbix: A CommonJS-Compliant Server-Side JavaScript Hosting Platform