Slide 1

Slide 1 text

Elixir Releases

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

The Way /app/*.rb /lib/*.rb Gemfile $ install requirements $ export RAILS_ENV=production $ bundle install $ bundle exec rails server

Slide 4

Slide 4 text

gjaldon/heroku-buildpack-phoenix-static HashNuke/heroku-buildpack-elixir

Slide 5

Slide 5 text

?

Slide 6

Slide 6 text

Build Run $ mix deps.get $ mix release $ _build/app start app.tar.gz: - Binaries - Erlang runtime (optional) - Sources (optional)

Slide 7

Slide 7 text

Watch Out

Slide 8

Slide 8 text

Build Run $ mix deps.get $ mix release —env=prod $ _build/app start app.tar.gz

Slide 9

Slide 9 text

$ docker run image_that_is_like_runtime build.sh

Slide 10

Slide 10 text

$ _build/app start ** (Postgrex.Error) ERROR 42P01 (undefined_table): relation "users" does not exist

Slide 11

Slide 11 text

$ mix ecto.migrate -bash: mix: command not found

Slide 12

Slide 12 text

$ _build/app migrate $ _build/app start https://github.com/bitwalker/distillery/blob/master/docs/Running%20Migrations.md

Slide 13

Slide 13 text

Configuration staging demo testing sandbox production

Slide 14

Slide 14 text

use Mix.Config config :app, App.Repo, [ database: "app", username: "user", password: "supersecret", hostname: “db-server”, port: 5432, ] {'Elixir.QualityControl.Repo', [{database,<<"app">>}, {username,<<“user">>}, {password,<<"supersecret">>}, {hostname,<<“db-server”>>}, {loggers,[]}, {port,5433}]}, config.exs sys.config

Slide 15

Slide 15 text

use Mix.Config config :app, App.Repo, [ database: "app", username: “user", password: System.get_env(“PG_PASS"), hostname: “db-server”, port: 5432, ] config.exs sys.config {'Elixir.QualityControl.Repo', [{database,<<"app">>}, {username,<<“user">>}, {password,nil}, {hostname,<<“db-server”>>}, {loggers,[]}, {port,5433}]},

Slide 16

Slide 16 text

Replace Variables on Build System {:system, ENV, default} Check In Credentials REPLACE_OS_VARS=true Build Config Layer

Slide 17

Slide 17 text

Why

Slide 18

Slide 18 text

Because it's cool?

Slide 19

Slide 19 text

Size 300 MB 50 MB

Slide 20

Slide 20 text

Resources

Slide 21

Slide 21 text

Code Reload

Slide 22

Slide 22 text

Comfortable

Slide 23

Slide 23 text

Start Early Think About Config Use Distillery