Elixir Deployment Options

@kofno, I deployed a couple variants of our applications to Heroku to great success before we ultimately decided to move them in-house. The decision to move in-house was unrelated to the tech stack, but more related to connecting to other internally-hosted services: LDAP, data warehouse, statsd.

While the prior versions of the applications were hosted in Heroku, we monitored via plug_statsd.

About a year ago, when I was lobbying for Elixir to be used in production, I ran some comparisons between two versions of our application (Ruby/Sinatra and Elixir/Plug) in Heroku, both on Heroku’s free tier and their high performance tier. Ours was a backend api used by another service, so I wanted to test rough real-world usage. Our Heroku dynos were ultimately served out of EC2 US-East, so I spun up an EC2 host to stress test the two implementations on the two performance tiers. Heroku performed quite well and handled our worker tasks within the primary dyno without issue.

Heroku does restart their dynos once a day at a random time. Not usually an issue, but something to be aware of. DNS CNAMEs and SSL termination are both easy to setup and update.

2 Likes