我是Erlang noob,我一直在检查Faxien + Sinan和Rebar,而Erlang OTP的基本原理似乎是,在单个Erlang图像实例上安装应用程序和发行版。保持版本自包含的最佳做法是什么?有没有办法打包发布,以便您不必修改您部署到的计算机的站点?如何将所有依赖项收集到代码库中进行管理?
也许我反对这个问题......我来自Java背景,“没有预先安装但JVM”的理念似乎非常不同。
答案 0 :(得分:3)
恕我直言这是目前最好的书,因为它不仅介绍了Erlang,还展示了OTP是什么以及OTP如何用于项目。它不仅仅是一个松散样本的集合,而且所有内容都是围绕一个项目构建的。
答案 1 :(得分:1)
我将描述目前适用于我的常规(通常每天)发布到EC2上的少数实例的方法:
make
。这将获取我的依赖项并构建所有内容。git pull
和rebar update-deps
。根据更改的内容,我可能会重新启动节点,或者,我经常会附加到正在运行的节点并重新加载更新的模块。它有助于启动和附加脚本作为项目的一部分。查看像webmachine这样的项目的打包方式可能会有所帮助。
我不太了解标准的OTP发布管理系统,除了看起来很多工作。因为这似乎与快速部署相反,我从来没有认真考虑过 - 尽管我确信它对其他项目有意义。