Running multiple Erlang applications. One or more virtual machines?

I want to run several Erlang applications, one of which is Riak, and the other is a web server. Should I run them in one of the separate Erlang virtual machines and why?

+7
virtual-machine erlang
source share
4 answers

If they don’t need to do anything with each other: None. You may need to restart the virtual machine for one of the applications, which will result in downtime for both.

+4
source share

While many recommend decoupling these subsystems, I would take the opposite approach. Erlang has a built-in strategy to run many applications on the same release . If your applications speak directly to each other, it might make sense to combine them together in a release. This will speed up calls between applications. Some argue that all of your applications now have the same fate if you need to transfer the system to an update that only one of the applications needs. This is a controversial issue with Erlang, where you distribute your applications on many sites. Also, most updates can be done by downloading hot code .

+5
source share

It is called the "separation of fate", a common design decision. The more subsystems use shared resources, the more their "fate" is connected with each other. In the event of a malfunction / failure, the greater the β€œseparation of fate”, the greater the likelihood of a systematic failure.

IF , you can have each in separate virtual machines, then I would say that it is better.

+4
source share

Using separate virtual machines, you lose many of the benefits of erlang.

-one
source share

All Articles