deployment - 介绍 erlang/otp生产应用程序部署

  显示原文与译文双语对照的内容
0 0

我想研制和部署Erlang/OTP应用程序投入生产VPS上。

我很熟悉开发Erlang代码在本地计算机和我的问题是关于部署。

基本上,我想知道我应该执行哪些步骤才能Erlang代码从本地计算机移到生产服务器并使其运行,我如果不包含。 可供用户。

Note : 他曾经读过相关文档 Erlang和命令行,erlang 代码模块,erlang 释放,但我还是不知道如何推行必要的任务。

但是,我想这部署一个基于Erlang软件时稍微麻烦要比在 sudo tasksel对于 LAMP

我打算做任何Erlang/OTP应用程序色度Mochiweb couchdb ( couchbeam ) 和 boss_db 作为依赖项。

所以,我新手问题有关部署所有这些东西在生产服务器上如下:

  • 我打算使用Ubuntu Server 12 .04,有没有更好的选择为Linux发行版用于Erlang/OTP在生产?
  • 所有的代码应该如何组织的? 我该把我的应用程序到/home/myapp/ dir,然后把所有的依赖项复制到/home/myapp/deps? 还是我把所有依赖到/usr/local/lib/erlang/lib呢? ( 由code:get_path( ) 返回) 。 我应该以某种方式定期更新依赖关系还是我冻结他们呢?
  • 如何让整个应用启动一旦服务器启动? 应该是某种bash脚本或什么?
  • 我知道Erlang允许热代码升级,但我怎么组织? Rails我能不能更新代码使用git 中,类似的内容是否存在Erlang世界?
时间:原作者:2个回答

0 0

而@I GIVE CRAP ANSWERS作了非常详尽的总结,我觉得不得不投入同步的使用,它能够帮助你自动执行热重新编译和重新加载模块。

你指定的简单方法是同步与升级rebar依赖项,然后在准备部署时,你可以运行 sync:go()在Erlang节点。 这将启动同步引擎,它可以监视文件系统的变化。 然后可以使用git来push到服务器。 会发现文件更改,则重新编译它们并将其加载到新梁自动同步。

然后,你可以运行 sync:stop()马上让系统播放完之前停止观看对文件系统更改( 通常不建议保持同步实时服务器上运行,只是为了防止意外重新编译如果出于某种原因源文件发生变化,这是有意的。

原作者:
...