Post on 20-May-2015
VIRTUALIZEDDEVELOPMENT
Juozas Kaziukėnas // juokaz.com // @juokaz
Juozas Kaziukėnas, Lithuanian
You can call me Joe
More info http://juokaz.com
LOCAL DEV SETUP IS HARD
MIRROR PRODUCTION
IF THINGS WORK LOCALLY, THEY WILL WORK IN
PRODUCTION*
REPLICATING BUGS
DATABASE SLICE
TIME CONSUMING
EVERYTHING STILL BREAKS
NEED TO ISOLATE
NEED TO AUTOMATE
THE COOLEST THING I LEARNED LAST YEAR
BECAUSE I'M LAZY
VAGRANT
VAGRANT
Noun
A person without a settled home or regular work who wanders from place to place and lives by
begging.
TOOL TO BUILD A LOCAL CLOUD
BUILDING VMS
RUBYGEM FOR MANAGING VIRTUAL MACHINES
BASEBOX
PORT FORWARDING
SHARED FOLDERS
NO NEED TO DEPLOY
FEELS LOCAL
SETUP NOW
INSTALL VAGRANT
GIT CLONE REPO
VERSION CONTROL
SHARE VMS
VAGRANT UP
PREDICTABLE, STABLE AND MANAGEABLE
VAGRANT SSH
LOCAL CLOUD
CONFIGURING THE MACHINE
SHELL SCRIPTS ARE NOT A SOLUTION
BRAINFUCK
CHEF OR PUPPET
PUPPET
RECIPES DESCRIBING A SERVER
PUPPET EXAMPLE
package { "apache2":
ensure => present,
}
PUPPET EXAMPLE
package { "apache2":
ensure => present,
}
$php = ["php5","php5-xdebug"]
package { $php: ensure => "installed" }
PUPPET EXAMPLE
package { "apache2":
ensure => present,
}
$php = ["php5","php5-xdebug"]
package { $php: ensure => "installed" }
service { "apache2":
ensure => running,
enable => true,
require => Package['apache2'],
subscribe => [File["/etc/apache2/mods-enabled/rewrite.load"],
File["/etc/apache2/sites-available/default"]],
}
PUPPET EXAMPLE
file { "/etc/apache2/sites-available/default":
ensure => present,
source => "/vagrant/manifests/default",
}
PUPPET EXAMPLE
file { "/etc/apache2/sites-available/default":
ensure => present,
source => "/vagrant/manifests/default",
}
exec { "install_phpunit":
command => "/usr/bin/pear install pear.phpunit.de/PHPUnit",
require => [Package['php-pear'],
Exec['/usr/bin/pear config-set auto_discover 1']],
creates => "/usr/bin/phpunit"
}
IMPROVE DEVELOPMENT
MADE DEVELOPERS VERY HAPPY
MADE HIRING VERY EASY
MADE COMPLICATED DEVELOPMENT EASY
NO LOCAL MACHINE MESSING UP
THANKS!Juozas Kaziukėnas
@juokaz