ska*_*tek 16 deployment erlang production erlang-otp mochiweb
我想在VPS上开发和部署Erlang/OTP应用程序.
我非常熟悉在本地机器上开发Erlang代码,我的问题是关于部署.
基本上,我想知道我应该采取哪些步骤将Erlang代码从本地机器移动到生产服务器并使其运行,即可供用户使用.
注意:我已经阅读了一些关于Erlang和命令行,Erlang 代码模块,Erlang 版本的文档,但我仍然不确定如何执行所需的任务.
但是,我想在服务器上部署基于Erlang的软件比sudo tasksel
为LAMP做更棘手.
我计划有一个Erlang/OTP应用程序,它有Mochiweb,CouchDB(couchbeam)和boss_db作为依赖项.
所以,关于在生产服务器上部署所有内容的新手问题如下:
I G*_*ERS 10
有两种类型的依赖:内部和外部.如果你想以正确的方式(tm)这样做,那么上班需要一些时间:
首先考虑后者,外部依赖是在应用程序运行之前必须运行的其他事情.例如PostgreSQL数据库或Riak集群.对于那些人,你通常只是使用Ubuntu中的常用内容来使其正常启动.我在使用monit
这些任务方面有很好的经验:
对于内部依赖项,您需要将程序安排到Erlang VM中的应用程序中.它们彼此依赖,就像外部依赖项一样.例如,您的主应用程序可能需要在它开始之前运行一个记录器.然后你创建一个版本.一个版本复制Erlang的二进制文件和必要的库/梁/应用到释放目录,形成了自成一体的Erlang系统.它包含一个引导脚本,它告诉如何以正确的顺序启动应用程序并使它们保持运行.因此,您可以将此版本tar-ball,将其复制到服务器然后启动它.这里有一些基础知识:
http://learnyousomeerlang.com/release-is-the-word
但是也要阅读应用程序之前的章节.您也可以rebar
打电话reltool
给您建立一个版本.这就是我通常做的事情.
处理生产中的热升级可以通过几种方式完成.您可以将光束移动到机器然后进行部署,获取外壳然后调用l(Module)
以将其加载到正在运行的系统中.这适用于较小的修复程序.对于大型系统升级,您可以进行发布升级,即可在不停止服务的情况下即时升级运行系统.但是如果你的系统大部分都没有共享,那通常是不值得的.相反,您可以拥有多台计算机并按顺序升级它们.
例如,您可以升级计算机,然后使用像HAProxy这样的系统将所有请求的2%发送到新系统.然后系统地调高请求负载重量.
归档时间: |
|
查看次数: |
2491 次 |
最近记录: |