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

Modern Make for modern (Rails) programmers

Modern Make for modern (Rails) programmers

Ivan Nemytchenko

August 05, 2021
Tweet

More Decks by Ivan Nemytchenko

Other Decks in Programming

Transcript

  1. Ivan Nemytchenko • rubyist since 2006 • former GitLabber •

    teacher • railshurts.com author • freelance/consulting
  2. What to expect here • What’s the problem? • The

    basics • Advanced stuff • Examples from real project • Principles
  3. Modern Developer? • Dev+Ops • Multiple stacks (Rails + JS

    for example) • Multiple projects • Multiple environments (dev, ±docker, ssh)
  4. Command line interface tools • git • ssh • rails

    • bundle • docker • docker-compose • heroku • aws • ansible • ansible-playbook • yarn • …
  5. What’s the problem? ansible-playbook -i inventory/production -- tags "deploy" app-server.yml

    --become- user=app --extra-vars=extra.txt --vault- password-file="~/.ansible/vault.txt" -vvv
  6. What’s the problem? ansible-playbook -i inventory/production -- tags "deploy" app-server.yml

    --become- user=app --extra-vars=extra.txt --vault- password-file="~/.ansible/vault.txt" -vvv Imperative, not declarative!
  7. • Imperative, not declarative • Implementation, not semantics • Have

    to remember a lot of low-level details • Outdated README-s What’s the problem?
  8. Deployment ansible-playbook -i inventory/production -- tags "deploy" app-server.yml --become- user=app

    --extra-vars=extra.txt --vault- password-file="~/.ansible/vault.txt" -vvv
  9. Principles • No instructions in Readme! • Semantics first! •

    Duplication is ok! • StackOverflow → Makefile