我想在 VPS 上开发 Erlang/OTP 应用程序并将其部署到生产环境中。
我非常熟悉在本地机器上开发 Erlang 代码,我的问题是关于部署的。
基本上,我想知道我应该采取哪些步骤才能将 Erlang 代码从本地机器移动到生产服务器并使其运行,即可供用户使用。
注意:我已经阅读了一些关于Erlang 和命令行、Erlang代码模块、Erlang版本的文档,但我仍然不确定如何完成所需的任务。
但是,我想在服务器上部署基于 Erlang 的软件比在LAMPsudo tasksel
上部署要复杂一些。
我计划有一个 Erlang/OTP 应用程序,它有 Mochiweb、CouchDB ( couchbeam ) 和boss_db作为依赖项。
因此,关于在生产服务器上部署所有这些东西的新手问题如下:
- 我打算使用 Ubuntu Server 12.04;在生产中用于 Erlang/OTP 的 Linux 发行版是否有更好的选择?
- 应该如何组织所有代码?我应该将我的应用程序放入 /home/myapp/ 目录,然后将所有依赖项放入 /home/myapp/deps 吗?还是应该将所有依赖项放入/usr/local/lib/erlang/lib?(由代码返回:get_path())。我应该以某种方式定期更新依赖项还是应该冻结它们?
- 服务器启动后如何使整个应用程序启动?它应该是某种 bash 脚本还是其他什么?
- 我知道 Erlang 允许热代码升级,但我应该如何组织呢?在 Rails 上我可以用 git 更新代码, Erlang 世界中是否存在类似的东西?