相关疑难解决方法(0)

Erlang/OTP生产应用程序部署简介

我想在VPS上开发和部署Erlang/OTP应用程序.

我非常熟悉在本地机器上开发Erlang代码,我的问题是关于部署.

基本上,我想知道我应该采取哪些步骤将Erlang代码从本地机器移动到生产服务器并使其运行,即可供用户使用.

注意:我已经阅读了一些关于Erlang和命令行,Erlang 代码模块,Erlang 版本的文档,但我仍然不确定如何执行所需的任务.

但是,我想在服务器上部署基于Erlang的软件比sudo taskselLAMP做更棘手.

我计划有一个Erlang/OTP应用程序,它有Mochiweb,CouchDB(couchbeam)和boss_db作为依赖项.

所以,关于在生产服务器上部署所有内容的新手问题如下:

  • 我打算使用Ubuntu Server 12.04; 在生产中用于Erlang/OTP的Linux发行版有什么更好的选择吗?
  • 如何组织所有代码?我应该将我的应用程序放入/ home/myapp/dir然后将所有依赖项放入/ home/myapp/deps吗?或者我应该将所有依赖项放入/ usr/local/lib/erlang/lib?(由代码返回:get_path()).我应该以某种方式定期更新依赖关系还是应该冻结它们?
  • 一旦服务器启动,如何使整个应用程序启动?它应该是某种bash脚本还是其他什么?
  • 我知道Erlang允许热代码升级,但我应该如何组织呢?在Rails上,我可以使用git更新代码,在Erlang世界中是否存在类似的东西?

deployment erlang production erlang-otp mochiweb

16
推荐指数
2
解决办法
2491
查看次数

使用Erlang/OTP构建容错的软实时Web应用程序

我想为比萨饼送货店建立一个容错的软实时网络应用程序.它应该有助于披萨店接受来自客户的电话,将它们作为订单放入系统(通过CRM网络客户端),并帮助调度员将订单分配给送货司机.

这些目标并不罕见,但我希望每周7天每天24小时提供服务,即使其具有容错能力.此外,我希望它能够非常快速地工作并且非常敏感.

下面是这种应用程序的一个非常简单的架构视图.

比萨饼送货店订单系统

问题是我不知道如何使用所有Erlang/OTP优点来使应用程序具有响应性和容错性.

这是我的问题:

  1. 应该复制哪些系统元素以提供容错,我应该如何做?我知道我可以在复制的Mnesia数据库中存储每辆车的状态(坐标,分配的订单等).这是一个正确的方法吗?
  2. 哪些数据存储服务应该是传统的基于SQL的(例如基于boss_db),哪些应该在Mnesia上完成以提供非常快速的响应?是否可以使用传统的SQL数据库将客户记录和历史记录存储在这样的容错和响应速度快的应用程序中?
  3. 我是否应该尝试将所有服务(客户,车辆状态等)的所有数据存储在RAM中,以使应用程序具有高响应性?
  4. 我应该将持久性车辆数据(id,容量等)存储在传统的SQL数据库中,并将实时数据(坐标,分配的订单,主干中的订单等)存储在Mnesia数据库中,以使应用程序更多实时响应?

architecture erlang fault-tolerance real-time erlang-otp

7
推荐指数
1
解决办法
2533
查看次数