5 ms·
This has always been a beautiful draw of the BEAM ecosystem for me, but during my exploration of the space I found that most people were deploying BEAM applicat
by d3nj4l 4y ago
This has always been a beautiful draw of the BEAM ecosystem for me, but during my exploration of the space I found that most people were deploying BEAM applications the same way as any other, say, Rails app, and I couldn't find a "getting started" of sorts to deploy desitributed BEAM apps the way you describe. I'd be interested in resources like that, if you have any.
- linkdd 4y agoA few months ago I started a series of articles about Elixir, K8s and libcluser[0], but unfortunately I did not have time to continue it yet. If you're using K8s, what I would suggest is: - create multiple releases of your Mix project[1] with specific OTP applications in each - one Docker container per release - one K8s Deployment per release - one headless K8s Service selecting the pods for all your deployments - use libcluster for automated cluster formation Then, with node affinity/tolerations, you can control on which physical node you'll run it (if you want). If you're not using K8s, you can use an Ansible playbook to deploy each distinct release on the target host, and you can use libcluster with a static cluster configuration. This will work the same. [0] - https://medium.com/@david-delassus/elixir-and-kubernetes-a-love-story-721cc6a5c7d5 https://medium.com/@david-delassus/elixir-and-kubernetes-a-l... [1] - https://elixir-lang.org/getting-started/mix-otp/config-and-releases.html#releases https://elixir-lang.org/getting-started/mix-otp/config-and-r...
- handsaway 4y agoI've worked at two companies using Elixir/Phoenix and both of them treated it exactly like a Rails app and there was no discernable BEAM-y ness about it other than how the library worked under the hood. I asked the more senior Elixir devs if we should do something to take advantage of the platform and was met with shrugs.