Don't Cry When Your Dev Dependencies Die

Don't Cry When Your Dev Dependencies Die

You're supposed to treat your servers like cattle, not pets. But what about your local dependencies? With Takeout, you can spin your instances of MySQL, PostgreSQL, Redis, Memcached, and more up and down without a care. Pairs perfectly with Valet.

60187fe0ab07ea5a46572a3ab05f61dd?s=128

Matt Stauffer

August 26, 2020
Tweet

Transcript

  1. BLOCKCHAIN Crypto A red flare silhouetted the jagged @stauffermatt @josecanhelp

    Don’t Cry When Your Dev Dependencies Die
  2. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Let’s

    talk local development.
  3. Tools we use daily • Some are super visible, like

    our IDE, or our database management tool • Some less so, like our shell, or our OS • Some, if effective, are nearly invisible; e.g. our local hosting environment
  4. Today’s topic

  5. How do we know which is the best? 0 25

    50 75 100 Ease of use Ease of modification Resource usage Production Parity Docker Homestead Valet
  6. Common Laravel local environments Full Docker (Vessel, Laradock, etc.) Homestead/

    Vagrant Valet + Homebrew DNS/serving/nginx PHP, core deps MySQL, Redis, etc. Packaged with Valet Managed by Valet Managed by you
  7. Common Laravel local environments Full Docker (Vessel, Laradock, etc.) Homestead/

    Vagrant DNS/serving/nginx PHP, core deps MySQL, Redis, etc. Packaged with Valet Valet + Docker (Jose-style) Packaged with Valet Managed by Valet Managed by you Managed by Valet Valet + Homebrew
  8. Jose Soto • Very Helpful Human • AKA Gaston •

    Docker enthusiast
  9. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Laravel

    Valet
  10. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Laravel

    Valet
  11. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Other

    Dependencies
  12. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Install

    Locally
  13. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Failure

  14. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Valuable

    Time
  15. Troubleshooting • Modify obscure files • Run uncertain commands •

    Backup and Reformat
  16. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Server

    Admin
  17. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp

  18. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Not

    an Intro to Docker Talk
  19. What is Docker? • Set of Products • Virtualization •

    Delivers Software • Containers
  20. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Parity

  21. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  22. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  23. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  24. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  25. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  26. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  27. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  28. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  29. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Dockerized

    Laravel
  30. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp “Local”

    MySQL
  31. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Shared

    MySQL
  32. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Demo

  33. Why Docker? • Clean Machine • Multiple versions • Difficult

    to Install Software
  34. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Matt’s

    Docker Story
  35. None
  36. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Story

    time: MySQL tanking
  37. BLOCKCHAIN Crypto A red flare silhouetted the jagged Homebrew Hell

    is real. Valet won’t save you here.
  38. Cattle not pets http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/

  39. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Jose

    saved the day $ docker run -d —p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=password \ -v mysql_data:/var/lib/mysql \ library/mysql:latest
  40. Not everyone has a Jose.

  41. None
  42. None
  43. EVERYONE GETS A JOSE!

  44. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Introducing:

    Takeout
  45. What is it? A macOS tool for installing & managing

    development environment dependencies using Docker.
  46. Side notes • macOS-only—for now—but we ❤ Linux & Windows!

    • Takeout ❤ Valet • Valet :: PHP/Nginx/etc. Takeout :: MySQL/Redis/etc.
  47. What isn’t it? • Complicated • Competition to Vessel, Laradock,

    Homestead, or Valet
  48. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Demo

    time!
  49. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Set

    the stage
  50. 1. Install Docker 2. Install Takeout 3. Use Takeout 4.

    […] 5. Profit Installing Takeout
  51. 1. Install Docker

  52. 2. Install Takeout $ composer global require tightenco/takeout

  53. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Using

    Takeout $ takeout enable
  54. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Using

    Takeout $ takeout list
  55. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Using

    Takeout $ takeout disable
  56. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp Advanced

    Demo
  57. DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE @stauffermatt @josecanhelp What

    do we want from you?
  58. What do we want from you? • Try it out!

    • Share your thoughts with us • Contribute (for Linux, for Windows, GUI, etc.): github.com/tightenco/takeout • Check out Jose's YouTube to learn more: youtube.josecanhelp.com