Deployment 如何在没有发布的情况下部署和更新erlang应用程序

Deployment 如何在没有发布的情况下部署和更新erlang应用程序,deployment,erlang,Deployment,Erlang,正确使用发布和重新连接来部署和更新erlang应用程序是困难的,有时不值得 发件人: 如果有可能以不需要的方式升级应用程序 如果需要重新连接,我建议这样做。据说分裂 很多爱立信公司使用了relups,他们花在测试relups上的时间和使用relups上的时间一样多 自己测试他们的应用程序。它们是一种可以使用的工具 在使用无法强制关闭的产品时 我想试试另一种方法。我知道有些人开发复杂的应用程序,不使用发行版。如果您是其中之一,请描述您的工作流程 您是否只需克隆主机上的存储库并运行运行make,然后

正确使用发布和重新连接来部署和更新erlang应用程序是困难的,有时不值得

发件人:

如果有可能以不需要的方式升级应用程序 如果需要重新连接,我建议这样做。据说分裂 很多爱立信公司使用了relups,他们花在测试relups上的时间和使用relups上的时间一样多 自己测试他们的应用程序。它们是一种可以使用的工具 在使用无法强制关闭的产品时

我想试试另一种方法。我知道有些人开发复杂的应用程序,不使用发行版。如果您是其中之一,请描述您的工作流程

您是否只需克隆主机上的存储库并运行运行
make
,然后启动应用程序?或者你只复制梁文件?如何重新加载更新的模块?您是否使用mochiweb的重新加载程序?等等


换句话说,在没有发布版本的情况下,如何部署和更新erlang应用程序?这种方法的优点和缺点是什么?

重新连接很复杂,但对于使用版本来说不是必需的。relup是版本的升级。如果您能够承受一些停机时间,那么您可以简单地关闭正在运行的erlang版本,升级它,然后重新启动它,而不是使用relups。重新连接允许您在不停止系统的情况下进行升级。正如您提供的报价中所提到的,只有当任何停机时间都不可接受时,才有必要这样做

我个人永远不会在不使用发行版的情况下在生产环境中运行任何erlang代码。版本允许您将所有依赖项捆绑在一起。该版本是一个自包含的应用程序。如果没有发布,我将迷失在自定义目录结构、构建过程、依赖关系管理和启动脚本的无尽迷宫中

关于处理发行版的困难,有很多人大惊小怪,但根据我的经验,情况并非如此。诚然,让一个现有的工作项目融入到一个发行版中是很棘手的,但是如果你用正确的工具从头开始使用它们,这比你自己的项目要简单得多。钢筋使大部分涉及的繁琐任务变得简单


不使用发行版的一个缺点是与其他erlang应用程序进行互操作。例如,CouchDB最初编写时并不符合OTP。因此,许多想要将其嵌入到erlang应用程序中的人都无法在不考虑其他发行版的情况下做到这一点。

谢谢你的回答,但我没有说重新升级和发布是一回事。我只是想知道避免发布是否能让事情变得更容易。好吧,我误解了你的问题。很抱歉