Note the common theme: Docker makes things harder here.
Please correct me if I’m wrong, but my impression from doing a little Docker stuff recently and more Elixir/Erlang stuff is that Docker is seeking to solve a problem that just doesn’t really apply to the mature tooling of the BEAM ecosystem.
I still don’t understand why people are so wed to the idea of it, other than they want to play around on their macbooks and pretend that they’re real ops people.
(and this is a gripe specifically about Docker, not about containerization strategies in other, more thought-out environments)
I agree with you – Docker makes it hard to use Elixir/Erlang to its full potential (clustering, upgrades, etc). So I don’t use it for production, just CI.
I spin up EC2 servers with Puppet and Vagrant, then build releases and deploy them with Distillery and Edeliver. It was really, really easy to set this up. (I talked about this at Empire City Elixir last year.)
The main drawback to this approach is that it doesn’t autoscale, but this has not been a serious problem – more like a nice-to-have.
It shouldn’t be too hard to setup autoscaling, no?
Wouldn’t it just be a matter of having a server monitor system load and provision an additional node which can then connect and bootstrap itself onto the system?
The word “just” is where your explanation goes off the rails. :) I have other shit to do!
Oh, sure, sure! I meant in the general sense, not that you needed to go on and do it in your situation.