我是Erlang noob,我一直在检查出Faxien + Sinan和Rebar,Erlang OTP的基本理念似乎是,在单个Erlang图像实例上安装应用程序和发行版。保持版本自包含的最佳做法是什么?有没有办法打包发布,以便您不必为要部署到的计算机修改站点?如何将所有依赖关系收集到代码库中进行管理?Erlang发布最佳实践?
也许我正在反对谷物......我来自Java背景,“没有预装但JVM”的理念看起来非常不同。
我是Erlang noob,我一直在检查出Faxien + Sinan和Rebar,Erlang OTP的基本理念似乎是,在单个Erlang图像实例上安装应用程序和发行版。保持版本自包含的最佳做法是什么?有没有办法打包发布,以便您不必为要部署到的计算机修改站点?如何将所有依赖关系收集到代码库中进行管理?Erlang发布最佳实践?
也许我正在反对谷物......我来自Java背景,“没有预装但JVM”的理念看起来非常不同。
恕我直言,这不能用几句话来回答。您应该阅读所包含文档的某些部分,尤其是“Erlang/OTP System Documentation”(otp-system-documentation-XYZpdf,其中XYZ是版本号),或者查看书籍“Erlang and OTP in Action”,因为在本书中有“服务”的“一个”示例,从第一步开始使用不同的“部分”,使用Erlang/OTP概念并最终构建“发布版”。
恕我直言,这是目前最好的书,因为它不仅引入了Erlang,而且还显示了OTP是什么以及如何将OTP用于项目。这不仅仅是一个松散样本的集合,而是一切都围绕着一个项目而建立。
我将介绍,目前对我的作品进行定期(通常为每天)版本少数情况下,对EC2的办法:我建立了我的项目,螺纹钢
make
。这将获取我的依赖关系并构建一切。git pull
和一个rebar update-deps
。根据更改的情况,我可能会重新启动节点,或者经常连接到正在运行的节点并重新加载更新的模块。它有助于启动并附加脚本作为项目的一部分。查看如何打包webmachine这样的项目可能会有帮助。
我不太了解标准的OTP发布管理系统,除了看起来像很多工作。因为这似乎与快速部署相反,我从来没有给过它认真的尝试 - 尽管我确定它对其他项目有意义。