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

Modern Make for modern (Rails) programmers

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Modern Make for modern (Rails) programmers

Avatar for Ivan Nemytchenko

Ivan Nemytchenko

August 05, 2021

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