Deploying Elixir
summary
Advice: build releases inside a matching environment (use a Docker build container), run mix release via distillery, save artifacts to a releases directory and SCP the tarball to servers then restart the service. Treat hot code upgrades as a last resort—use rolling releases until they truly fail. Clustering is tricky: naive full-mesh yields ~N(N-1)/2 connections so practical clusters top out near 50 nodes; use libcluster/peerage or Kubernetes patterns. Deploying on Docker and Heroku* works if distribution and hot upgrades are not required.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:49Pauls story
- 6:27Preemptive multitasking
- 8:32Back to the office
- 9:15Adding Sleep to Basic
- 11:40Solving the Problem
- 13:22Getting Excited
- 13:53Concurrency
- 14:44Microservices
- 16:17Slack Check
- 17:16Deployment
- 20:04Hot Code Reloading
- 22:17Distributed Computing
- 23:28Clustering
- 24:08Releases
- 29:10Release
- 30:35Cluster
- 31:35Peerage
- 33:42Phoenix Presence
- 34:22Registry
- 35:36Summary
related talks
44mThe future of Deployment in Elixir
35mFrom Zero to Elixir Deployment
33mPanel: Deployment
49mInto Production
36mBring Back the Power of BEAM Deployments with DeployEx
47mDeploying Like a Boss: From 2 Servers to 20,000
32mContainers & Orchestration: The Elixir way
18mRaspberry Pi Cluster with the Power of Elixir
