正确使用版本和relups来部署和更新erlang应用程序很困难,有时也不值得.
来自http://learnyousomeerlang.com/relups:
如果可以以不需要重新启动的方式升级您的应用程序,我建议您这样做.据说,使用relups的爱立信部门花费了大量时间来测试它们,就像测试应用程序本身一样.它们是在使用绝对不会被关闭的产品时使用的工具.
我想尝试另一种方式.我知道有些人开发复杂的应用程序而不使用版本.如果您是其中之一,请描述您的工作流程.
您是否只是在主机上克隆存储库并运行make哪个运行rebar get-deps compile然后启动应用程序?或者你可能只复制光束文件?你如何重新加载更新的模块?你使用mochiweb的重载器吗?等等.
换句话说,如何在没有发布的情况下部署和更新erlang应用程序?这种方式的利弊是什么?
Relup很复杂,但对于使用版本不是必需的.一个relup是一个升级版本.如果您可以承担一些停机时间,而不是使用relups,您可以简单地取消正在运行的erlang版本,升级它,然后再次启动它.Relup允许您在不停止系统的情况下进行升级.正如您提供的报价所述,只有在任何停机时间不可接受时才需要这样做.
我个人永远不会在没有使用版本的情况下在生产环境中运行任何erlang代码.版本允许您将所有依赖项捆绑在一起.该版本是一个独立的应用程序.如果没有发布,我将迷失在自定义目录结构,构建进程,依赖关系管理和启动脚本的无尽迷宫中.
关于处理发布的难度有很多大惊小怪,但根据我的经验,事实并非如此.确实让现有的工作项目适合发布可能会很棘手,但如果你使用正确的工具从头开始使用它们,那么它比滚动你自己的工具更简单.Rebar使大多数繁琐的任务变得简单.
不使用版本的缺点是与其他erlang应用程序进行互操作.例如,CouchDB最初并未编写为符合OTP标准.因此,许多想要将其嵌入到erlang应用程序中的人如果不考虑其他发行版就无法这样做.
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |