比较不同的 PaaS 平台上的 Node.js 支持

Node.js相对于其他的语言来说可能仍然是年轻的,但是它的虚拟主机却有很多的选择。在这篇文章中,我们就来看看几个“平台即服务(PaaS)”提供商。

这里不涵盖某些“基础设施即服务(IaaS)”的选择,比如 AWS 和 Joyent,尽管这些选择之中的某些PaaS和IaaS之间的界限有一点点模糊。

在这一轮中,我主要考察两个方面:部署和环境变量的配置。我还把一些有关起步,仪表板的截图和对其它的杂项操作的观察囊括了进来。在以后的文章中,我们将会运行一些基础的性能测试,然后来看看架构伸缩难易程度。

The Players ProviderDeployment methodEnvironment variablesPerformance
Nodejitsu   CLI   CLI or web interface   coming soon  
Heroku   git   CLI  
Modulus   CLI or web upload   CLI or web interface  
App Fog   CLI   CLI or web interface  
Azure   CLI or git   CLI or web interface  
dotCloud   CLI   CLI or .yml file  
Engine Yard   git   ey_config npm module  
OpenShift   git   SSH and create file  
CloudFoundry   coming soon   coming soon  
设置

我开始于一个非常简单的Express app,使用nconf可以提供多种不同的方式,让我们可以给app指定端口,监听我们的应用程序(必要时)以及一个dummy变量,我称之为SECRET。它会先寻找节点命令传递的参数,环境变量,然后从根目录的上一级到我们制定的默认位置,尝试加载的config.json文件。当加载app时,我们能知道变量从外部源加载是否正确。如果错误,加载app时将回滚到默认的SECRET。如果我可以访问app的启动日志,也就可以看到app监听在NODE_ENV上的哪个端口。

最后,我设置"engines": { "node": "v0.10.x" ...到 package.json文件中,就可以看到每个提供者如何响应。

现在没有特定的顺序..

Nodejitsu

https://www.nodejitsu.com/

一个最初的参与者仍然完全地是Node.js的解决方案,当Joyent放弃他们的no.de服务之后Joyent的Nodejitsu成为了官方合作伙伴(惭愧,那真是一个不错的域名).Nodejitsu不再是一个永久免费的中间层.但是个别的方案需要3$每月和有一个30天的免费试用期.

变量配置

根据文档你不需要设置监听端口,只要它是80或大于1024.

设置我们的SECRET来覆盖默认的是相当容易的.您可以使用CLI或web接口列表来设置变量,就像这个名单上其他几个供应商。

部署

发布你的代码到Nodejitsu云是通过一个自定义的命令行接口(CLI)应用程序,安装rpm,注册以后将自动转存到 github 指令版本库. 但整体安装过程是相当痛苦的,当提示选择一个二级域名,然后会自动添加到package.json文件,在我跑了几个测试中,部署是非常快的. 在每个部署的package.json文件的版本属性是自动递增与的,这不会麻烦我但可能会使另外一些人烦恼.

我遇到了三个小故障,第一是版本控制,在我部署时有信息输出,我展示下:

info: jitsu v0.12.10-2, node v0.10.4

然而,我被告知0.10.x不是支持价值,只有通过对比到0.8.x时我才能够获得成功.

第二,我尝试在package.json改变属性名称然后就告诉不能部署

第三.我把ENV变量给消除了,每次我都的重新部署,也许有一个方法可以避免.

Misc Notes 和 Dashboard

我喜欢Nodejitsu。任何处理自定义配置都会通过标准的package.json文件。你甚至可以定义定制的predeploy和postdeploy hooks。我对它的印象是,它能非常灵活地部署和查看日志。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19513.html