BLOCKCHAIN
Crypto
A red flare silhouetted the jagged
@stauffermatt @josecanhelp
Don’t Cry When Your Dev
Dependencies Die
Slide 2
Slide 2 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Let’s talk local development.
Slide 3
Slide 3 text
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
Slide 4
Slide 4 text
Today’s topic
Slide 5
Slide 5 text
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
Slide 6
Slide 6 text
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
Slide 7
Slide 7 text
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
Slide 8
Slide 8 text
Jose Soto
• Very Helpful Human
• AKA Gaston
• Docker enthusiast
Slide 9
Slide 9 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Laravel Valet
Slide 10
Slide 10 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Laravel Valet
Slide 11
Slide 11 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Other Dependencies
Slide 12
Slide 12 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Install Locally
Slide 13
Slide 13 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Failure
Slide 14
Slide 14 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Valuable Time
Slide 15
Slide 15 text
Troubleshooting
• Modify obscure files
• Run uncertain commands
• Backup and Reformat
Slide 16
Slide 16 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Server Admin
Slide 17
Slide 17 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Slide 18
Slide 18 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Not an Intro to Docker Talk
Slide 19
Slide 19 text
What is Docker?
• Set of Products
• Virtualization
• Delivers Software
• Containers
Slide 20
Slide 20 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Parity
Slide 21
Slide 21 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 22
Slide 22 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 23
Slide 23 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 24
Slide 24 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 25
Slide 25 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 26
Slide 26 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 27
Slide 27 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 28
Slide 28 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 29
Slide 29 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Dockerized
Laravel
Slide 30
Slide 30 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
“Local” MySQL
Slide 31
Slide 31 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Shared MySQL
Slide 32
Slide 32 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Demo
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Matt’s Docker Story
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Story time: MySQL tanking
Slide 37
Slide 37 text
BLOCKCHAIN
Crypto
A red flare silhouetted the jagged
Homebrew Hell is real.
Valet won’t save you here.
Slide 38
Slide 38 text
Cattle not pets
http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/
Slide 39
Slide 39 text
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
Slide 40
Slide 40 text
Not everyone
has a Jose.
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
No content
Slide 43
Slide 43 text
EVERYONE GETS A JOSE!
Slide 44
Slide 44 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Introducing: Takeout
Slide 45
Slide 45 text
What is it?
A macOS tool for installing & managing
development environment dependencies
using Docker.
Slide 46
Slide 46 text
Side notes
• macOS-only—for now—but we ❤ Linux & Windows!
• Takeout ❤ Valet
• Valet :: PHP/Nginx/etc.
Takeout :: MySQL/Redis/etc.
Slide 47
Slide 47 text
What isn’t it?
• Complicated
• Competition to Vessel, Laradock, Homestead, or Valet
Slide 48
Slide 48 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Demo time!
Slide 49
Slide 49 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Set the stage
2. Install Takeout
$ composer global require tightenco/takeout
Slide 53
Slide 53 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Using Takeout
$ takeout enable
Slide 54
Slide 54 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Using Takeout
$ takeout list
Slide 55
Slide 55 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Using Takeout
$ takeout disable
Slide 56
Slide 56 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
Advanced Demo
Slide 57
Slide 57 text
DON’T CRY WHEN YOUR DEV DEPENDENCIES DIE
@stauffermatt @josecanhelp
What do we want from you?
Slide 58
Slide 58 text
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