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