Virtualized development - Sunshine PHP

Preview:

DESCRIPTION

 

Citation preview

VIRTUALIZED DEVELOPMENT

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

SETTING UP DEV ENVIRONMENTS

TRICKY

TIME CONSUMING

EVERYTHING STILL BREAKS

NEED TO AUTOMATE

SHELL SCRIPTS ARE NOT A SOLUTION

BRAINFUCK

CHEF OR PUPPET

PUPPET

RECIPES DESCRIBING A SERVER

PUPPET EXAMPLE

$php = ["php5","php5-xdebug"]

package { $php: ensure => "installed" }

PUPPET EXAMPLE

$php = ["php5","php5-xdebug"]

package { $php: ensure => "installed" }

package { "apache2":

ensure => present,

}

PUPPET EXAMPLE

$php = ["php5","php5-xdebug"]

package { $php: ensure => "installed" }

package { "apache2":

ensure => present,

}

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"

}

WHAT TO USE LOCALLY

NEED A VM?

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

IMPROVE DEVELOPMENT

MADE DEVELOPERS VERY HAPPY

MADE HIRING VERY EASY

MADE COMPLICATED DEVELOPMENT EASY

NO LOCAL MACHINE MESSING UP 

SETUP NOW

INSTALL VAGRANT

GIT CLONE REPO

VAGRANT UP

  PREDICTABLE, STABLE AND MANAGEABLE

VAGRANT

BASEBOX

PORT FORWARDING

SHARED FOLDERS

NO NEED TO DEPLOY

FEELS LOCAL

VAGRANT SSH

LOCAL CLOUD

VERSION CONTROL

SHARE VMS

DEMO!!!

THANKS

Recommended