- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正确使用发布和 relups 来部署和更新 erlang 应用程序很困难,有时甚至不值得。
来自 http://learnyousomeerlang.com/relups :
If it is possible to upgrade your application in ways that do not require relups, I would recommend doing so. It is said that divisions of Ericsson that do use relups spend as much time testing them as they do testing their applications themselves. They are a tool to be used when working with products that can imperatively never be shut down.
我想尝试另一种方式。我知道有些人开发复杂的应用程序并且不使用版本。如果您是其中之一,请描述您的工作流程。
您是否只是在主机上克隆存储库并运行运行 rebar get-deps compile
然后启动应用程序的 make
?或者也许你只复制梁文件?你如何重新加载更新的模块?你使用 mochiweb 的重新加载器吗?等等。
换句话说,如何在没有发布的情况下部署和更新 erlang 应用程序?这种方式有什么优缺点?
最佳答案
Relups 很复杂,但对于使用版本来说不是必需的。一个 relup 是一个版本的升级。如果您可以承受一些停机时间,而不是使用 relups,您可以简单地删除正在运行的 erlang 版本,升级它,然后重新启动它。 relup 允许您在不停止系统的情况下进行升级。正如您提供的报价所述,只有在任何停机时间都 Not Acceptable 时才需要这样做。
如果不使用发行版,我个人绝不会在生产环境中运行任何 erlang 代码。发布允许您将所有依赖项捆绑在一起。该版本是一个独立的应用程序。如果没有发布,我将迷失在自定义目录结构、构建过程、依赖管理和启动脚本的无尽迷宫中。
关于处理发布的困难有很多普遍的大惊小怪,但根据我的经验,情况并非如此。确实,让现有的工作项目适合发布可能很棘手,但如果您使用正确的工具从头开始使用它们,这比滚动您自己的更简单。 Rebar 使所涉及的大部分繁琐任务变得简单。
不使用发布的一个缺点是与其他 erlang 应用程序的互操作性。例如,CouchDB 最初并不是为了兼容 OTP 而编写的。因此,许多想要将其嵌入到他们的 erlang 应用程序中的人如果不考虑其他发行版就无法做到这一点。
关于deployment - 如何在没有发布的情况下部署和更新 erlang 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242850/
我是一名优秀的程序员,十分优秀!