Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deploying Elixir

Deploying Elixir

Two strategies for publishing Elixir applications to the world

Carlos Souza

August 12, 2021
Tweet

More Decks by Carlos Souza

Other Decks in Technology

Transcript

  1. Compiled vs. Interpreted No run time needed. ALL of the

    runtime needed. Some of the runtime.
  2. • Some ops work • Visibility into the build process

    • Control over the prod. artifact • Portability: “Build once, run anywhere” • NO ops 😌 • Focus on development • Watch the magic happen 󰨸 • More abstractions between source code and prod. artifact • Vendor lock-in 󰤅 Heroku Buildpacks ⛏ Containers 🐳 The 2 Strategies:
  3. Heroku Concepts: • Buildpacks ⛏ Scripts that transform source code

    into slugs. • Slugs 🐛 Production artifact made for running in Dynos. • Dynos 🦖 Lightweight-containers. Vary by type, RAM and feature$
  4. • Language versions: ◦ Erlang ◦ Elixir ◦ Node.js *

    • App config: ◦ SSL ◦ Websocket Buildpacks 󰟲 -> ⛏ -> 🐛 -> 🦖
  5. • Language versions • Build Tools • Build Processes •

    Architectures • Exact replica of a release • Portability Containers
  6. 1- Test your strategy by running a local release 🏠🚀

    2- DO NOT let your Dockerfile turn into 💩 Takeaways for using containers:
  7. • Some ops work • Visibility into the build process

    • Control over the prod. artifact • Portability: “Build once, run anywhere” • NO ops 😌 • Focus on development • Watch the magic happen 󰨸 • More abstractions between source code and prod. artifact • Vendor lock-in 󰤅 Heroku Buildpacks ⛏ Containers 🐳 The 2 Strategies: