9. release tarball
● *.rel
● boot script
● relup
● all compiled *.beam files required by the app
● target ERTS
● sys.config for app configuration
● vm.config for VM configuration
● shell script to set up environment and run the release
11. Relx by Erlware
● The primary tool for building releases of Erlang
applications
● Can work with Elixir applications as well with some
additional effort
● Does not auto-generate appups for hot
upgrades/downgrades
12. exrm (Elixir Release Manager) by Paul Schoenfelder (bitwalker)
● Has been the predominant tool for building releases of
Elixir applications
● Mix-only, auto-generates hot upgrades/downgrades
● Ultimately is an automation wrapper around Relx
● Does not support umbrella applications
● Now deprecated in favor of Distillery
13. Distillery by Paul Schoenfelder (bitwalker)
● Written in Elixir, with no dependencies
● Automatically determines what applications are required in the
release, even if you have dependencies which are missing an
application in their mix.exs
● Builds releases containing any combination of apps in the umbrella
● Has environments to configure releases differently
● Support to define more than one release
● Event hooks
● Custom commands
● Template overlays
● Faster than exrm
15. Heroku
● As simple as git-push
● Local development with Docker
● Release history and rollback
● No :observer but there are workarounds
16. Nanobox
● Free for open-source and personal projects
● Docker based
● Local development with docker container
● Digital Ocean, AWS and own servers integrations
● Logging
● SSL Encryption
● Mac/Windows/Linux clients
● Alerts
● Load Balancing
● Horizontal and Vertical Auto Scaling
● Health Monitoring
17. Gatling by Hashrocket
● Phoenix oriented
● Uses Distillery
● As simple as git-push
● Hot upgrades support
18. exdm by Joe Yates
● Special for exrm
● Mix tasks to deploy applications, check their status and
start and stop them
● Defines multiple stages like production, staging, ci etc.
● Latest commit on 2016.01.20
19. edeliver by Bold Poker
● Based on deliver
● Hot upgrades
● Release is built on remote host similar to production
● Can utilize Distillery, exrm and relx to build releases
● Auto versioning
● OvermindDL1: “'edeliver' has major issues for us here
(since we use both windows and linux and its windows
support was... well, crap....) so we've ignored it”
20. dicon (Digital Conveyor) by Aleksei Mogusev
● Built on Elixir
● Support configurations per target host
● No build host
● No hot upgrades
● Lack of documentation
21. Bottler by Rubén Caro
● GCE support
● Mix task to launch :observer
● Mix task to exec
● Rollback
● Still beta
● No hot upgrades
22. Ansible by RedHat
● Configuration management
● App deployment
● Manage machines in parallel
● Agentless
● Manage new remote machines instantly, without
bootstrapping any software
● Trivializing things like zero downtime rolling updates with
load balancers
24. Heroku Nanobox Gatling exdm Edeliver dicon Bottler Ansible
Environments
tricky to
implement
Multiple hosts at a
time
Launch trigger push CLI push Mix Mix tasks Mix Mix CLI
Hot upgrades
Special integrations
for cloud providers
is a
provider
AWS, DO,
custom
S3 for releases GCE
Rollback
Environment for local
development
Build host
Built on Elixir Bash Bash
Callbacks
25. Results of 2016 survey by Josh Adams at DailyDrip
Full survey: https://www.dailydrip.com/blog/elixir-users-survey-2016-results