際際滷

際際滷Share a Scribd company logo
The Future of the PHP
    Development
    Environment
About the Speaker
 Originally from Cape Town South Africa been living and
  working in London for 6 years.


 Developing with PHP on the lamp stack since 2002.
 Currently work at Comic Relief on their scalable
  fundraising platform.


 Follow me on twitter @jeremyquinton
Red Nose Day is back 15th March 2013 so look out
                      for it
          http://www.rednoseday.com
The Future of the PHP
    Development
    Environment
This talk contains Ruby
The Past
NO PLACE LIKE

  127.0.0.1
How does a newbie install php?

http://www.php.net/manual/en/install.php
Some solutions


                         Homebrew




Package Manager on
Linux APT, YUM ETC
EcoSystem around the Lamp Stack has changed
                 drastically
                            Linux/Windows/Mac OSX

                                          Apache

                                          MySQL

                                             PHP




                                  PHP has over 150 extensions


    Cassandra           Varnish                       Memcache                 Redis

            Nginx                  ZeroMQ                          CouchDB

                    RabbitMQ                                                 MongoDB
                                                         Gearman



                               This is not a exhaustive list
The concept of a production snowflake in many ways can be applied to our
development environments - http://martinfowler.com/bliki/SnowflakeServer.html
Spot the difference
Spot the difference is similar to
        Dev/Prod Parity Concept




Keep development, staging, and production
          as similar as possible
           - http://12factor.net/
Summary of Past and Present problems

  Setting up the modern dev environment,
  which has many moving, parts isn't straightforward

  Uniqueness

  Switching between projects with different
  dependancies is difficult

  Local dev environments differ significantly from
  production
The Present: A solution to these problems

                 $ vagrant up




    @mitchellh creator and maintainer of vagrant


         http://www.vagrantup.com/
What is the Vagrant Idea/Concept?
A tool to transparently manage all the complex parts of modern development
within a virtual environment without affecting the everyday workflow of the
developer too much. - http:/.vagrantup.com




                               Provider -
   Vagrant                                                  Provisioner
                             virtualisation
Basic Vagrant Workflow
    How vagrant works
Once Configured one command to bring up your development environment.

   $ vagrant up
To access the virtual machine via ssh

   $ vagrant ssh
When you finished work for the day

  $ vagrant halt
When you done with the dev environment

  $ vagrant destroy [vn-name]
Provision the virtual environment

  $ vagrant provision
Vagrant command line options
Open source project written in Ruby, a command line tool. Supported on most major
operating systems.
How vagrant works
Vagrant instance is managed with Vagrantfile which is Ruby syntax.

28 configuration options.
Three methods to create a box 鍖le
  Three methods create a box file


Download a box file from http://www.vagrant.es

Using the instructions off http://vagrantup.com

VeeWee https://github.com/jedi4ever/veewee
The future of the php development environment
Vagrant config file continued...
Chef - a provisioner
Basic Chef Solo configuration
Quick Recap



                        Provider -
                      virtualisation

Vagrant鍖le




                      Provisioner
Visualisation of a vagrant workflow

                      Windows Developer




       VCS
                      Mac Osx Developer




     VagrantFile
                       Linux Developer

     Chef Solo
      Scripts
                     1. vagrant add box box_name package.box
                     2. vagrant up
                     3. vagrant provision




    Deployment
       tool        Staging                 Production
Multi VM Environments
Multi VM Environments
 Accurately modeling a separate web and database
 server within the same development environment.

 Modeling a cluster of machines, and how they behave
 together.

 Testing a load balancer configuration, or the effects of
 unplugging a machine.
The Future
The future of the php development environment
New Vagrant Providers
 Vagrant 1.1 - Released end of Feb




                 $ vagrant up --provider=aws
Collaboration is
  everything
Vagrant 1.1
plugin system is completely re-written
Demo
Download Virtualbox 4.1.22
http://download.virtualbox.org/virtualbox/4.1.22/

Download vagrant package or install via ruby gems
http://downloads.vagrantup.com/tags/v1.0.5

Add 33.33.33.10 vagrantdemo.com to /etc/hosts

Get the project
git clone http://www.github.com/jeremyquinton/vagrant_demo
cd vagrant_demo

vagrant up --no-provision

vagrant provision

Browse to vagrantdemo.com
Feedback
  https://joind.in/8049
Questions?
Technical resources
    http://www.vagrantup.com

    http://www.virtualbox.org

    http://www.opscode.com/chef/

    https://github.com/jedi4ever/veewee

    https://github.com/mitchellh/vagrant
Image Sources
http://www.photosinbox.com/download/warning-sign.jpg

http://d36cz9buwru1tt.cloudfront.net/Powered-by-Amazon-Web-Services.jpg

http://aws.amazon.com/trademark-guidelines/

http://cdn.hdwallpaperspics.com/uploads/2012/12/Future_City_from_Above.jpg

http://www.canvascreekteambuilding.com/uploads/8/0/1/7/8017325/997680_orig.jpg

http://forbene鍖tenterprise.com/wp-content/uploads/2010/03/collaboration1.jpg

http://hd.wallpaperswide.com/thumbs/snow鍖ake-t2.jpg
http://blog.azculinary.edu//wp-content/uploads/2010/08/Chef-Meyer_7659.jpg
http://farm7.static鍖ickr.com/6087/6144237169_e5f225f2d0_o.jpg

http://farm8.staticflickr.com/7078/7006904747_5c746375e9_b.jpg
Ad

Recommended

Node.js, Vagrant, Chef, and Mathoid @ Benetech
Node.js, Vagrant, Chef, and Mathoid @ Benetech
Christopher Bumgardner
Intro to vagrant
Intro to vagrant
Mantas Klasavicius
How To Set a Vagrant Development System
How To Set a Vagrant Development System
Paul Bearne
Vagrant for Virtualized Development
Vagrant for Virtualized Development
Adam Culp
Vagrant-Overview
Vagrant-Overview
Crifkin
Vagrant 101 Workshop
Vagrant 101 Workshop
Liora Milbaum
Introduction to Vagrant
Introduction to Vagrant
Marcelo Pinheiro
It Works On My Machine: Vagrant for Software Development
It Works On My Machine: Vagrant for Software Development
Carlos Perez
Vagrant presentation
Vagrant presentation
Mahmudur Rahman
Vagrant
Vagrant
Akshay Siwal
Vagrant
Vagrant
Evans Ye
Vagrant + Docker
Vagrant + Docker
David Giordano
An Introduction to Vagrant and Docker
An Introduction to Vagrant and Docker
Scott Lowe
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
Nicolas Poggi
Vagrant up-and-running
Vagrant up-and-running
Joe Ferguson
Magento 2 Capistrano Deploy
Magento 2 Capistrano Deploy
Duke Dao
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
Sylvain Ray辿
RoR app screencast
RoR app screencast
Ashish Sharma
Vagrant
Vagrant
ProfessionalVMware
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
Hanoi MagentoMeetup
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
Js engine performance
Js engine performance
paullfc
Vagrant For DevOps
Vagrant For DevOps
Lalatendu Mohanty
Devopstore
Devopstore
Farkhad Badalov
Locally it worked! virtualizing docker
Locally it worked! virtualizing docker
Sascha Brinkmann
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Hendrik Ebbers
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
Joe Ferguson
Installing and Upgrading AtoM
Installing and Upgrading AtoM
Artefactual Systems - AtoM
Vizio interview questions and answers
Vizio interview questions and answers
selinasimpson275
Dev Environments: The Next Generation
Dev Environments: The Next Generation
Travis Thieman

More Related Content

What's hot (20)

Vagrant presentation
Vagrant presentation
Mahmudur Rahman
Vagrant
Vagrant
Akshay Siwal
Vagrant
Vagrant
Evans Ye
Vagrant + Docker
Vagrant + Docker
David Giordano
An Introduction to Vagrant and Docker
An Introduction to Vagrant and Docker
Scott Lowe
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
Nicolas Poggi
Vagrant up-and-running
Vagrant up-and-running
Joe Ferguson
Magento 2 Capistrano Deploy
Magento 2 Capistrano Deploy
Duke Dao
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
Sylvain Ray辿
RoR app screencast
RoR app screencast
Ashish Sharma
Vagrant
Vagrant
ProfessionalVMware
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
Hanoi MagentoMeetup
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
Js engine performance
Js engine performance
paullfc
Vagrant For DevOps
Vagrant For DevOps
Lalatendu Mohanty
Devopstore
Devopstore
Farkhad Badalov
Locally it worked! virtualizing docker
Locally it worked! virtualizing docker
Sascha Brinkmann
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Hendrik Ebbers
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
Joe Ferguson
Installing and Upgrading AtoM
Installing and Upgrading AtoM
Artefactual Systems - AtoM
Vagrant
Vagrant
Evans Ye
An Introduction to Vagrant and Docker
An Introduction to Vagrant and Docker
Scott Lowe
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
Nicolas Poggi
Vagrant up-and-running
Vagrant up-and-running
Joe Ferguson
Magento 2 Capistrano Deploy
Magento 2 Capistrano Deploy
Duke Dao
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
Sylvain Ray辿
RoR app screencast
RoR app screencast
Ashish Sharma
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
Hanoi MagentoMeetup
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
Js engine performance
Js engine performance
paullfc
Locally it worked! virtualizing docker
Locally it worked! virtualizing docker
Sascha Brinkmann
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Hendrik Ebbers
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
Joe Ferguson

Viewers also liked (7)

Vizio interview questions and answers
Vizio interview questions and answers
selinasimpson275
Dev Environments: The Next Generation
Dev Environments: The Next Generation
Travis Thieman
Best Practices For Using Virtualization In Development Environments
Best Practices For Using Virtualization In Development Environments
Knowledge Management Associates, LLC
Federal Cloud Computing Strategy
Federal Cloud Computing Strategy
rameshgpai
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
Splunk
Gravitant Whitepaper Cloud for Federal Govt
Gravitant Whitepaper Cloud for Federal Govt
GovCloud Network
Migrating to the Cloud: Lessons Learned from Federal Agencies
Migrating to the Cloud: Lessons Learned from Federal Agencies
VMware
Vizio interview questions and answers
Vizio interview questions and answers
selinasimpson275
Dev Environments: The Next Generation
Dev Environments: The Next Generation
Travis Thieman
Best Practices For Using Virtualization In Development Environments
Best Practices For Using Virtualization In Development Environments
Knowledge Management Associates, LLC
Federal Cloud Computing Strategy
Federal Cloud Computing Strategy
rameshgpai
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
Splunk
Gravitant Whitepaper Cloud for Federal Govt
Gravitant Whitepaper Cloud for Federal Govt
GovCloud Network
Migrating to the Cloud: Lessons Learned from Federal Agencies
Migrating to the Cloud: Lessons Learned from Federal Agencies
VMware
Ad

Similar to The future of the php development environment (20)

DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
Anthony Alvarez
Vagrant for local and team WordPress Development
Vagrant for local and team WordPress Development
Anthony Alvarez
Dev ops for developers
Dev ops for developers
Johann-Peter Hartmann
How Reconnix Is Using Docker
How Reconnix Is Using Docker
Russ Mckendrick
Develop with linux containers and docker
Develop with linux containers and docker
Fabio Fumarola
2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
Developing web apps
Developing web apps
Michael Dyrynda
Linux containers and docker
Linux containers and docker
Fabio Fumarola
DevOps for Developers
DevOps for Developers
Mayflower GmbH
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
Ricardo Amaro
Local development environment through virtualisation
Local development environment through virtualisation
Radu Barbu
Vagrant&ansible
Vagrant&ansible
Mihail Vukadinoff
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
Yusuf Hadiwinata Sutandar
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
Supporting Hyper-V 3.0 on Apache CloudStack
Supporting Hyper-V 3.0 on Apache CloudStack
Donal Lafferty
Docker module 1
Docker module 1
Liang Bo
Automated Infrastructure and Application Management
Automated Infrastructure and Application Management
Clark Everetts
PHP Dependency Management with Composer
PHP Dependency Management with Composer
Adam Englander
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
Ricardo Amaro
Docker for Java Developers
Docker for Java Developers
Imesh Gunaratne
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
Anthony Alvarez
Vagrant for local and team WordPress Development
Vagrant for local and team WordPress Development
Anthony Alvarez
How Reconnix Is Using Docker
How Reconnix Is Using Docker
Russ Mckendrick
Develop with linux containers and docker
Develop with linux containers and docker
Fabio Fumarola
2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
Linux containers and docker
Linux containers and docker
Fabio Fumarola
DevOps for Developers
DevOps for Developers
Mayflower GmbH
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
Ricardo Amaro
Local development environment through virtualisation
Local development environment through virtualisation
Radu Barbu
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
Yusuf Hadiwinata Sutandar
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
Supporting Hyper-V 3.0 on Apache CloudStack
Supporting Hyper-V 3.0 on Apache CloudStack
Donal Lafferty
Docker module 1
Docker module 1
Liang Bo
Automated Infrastructure and Application Management
Automated Infrastructure and Application Management
Clark Everetts
PHP Dependency Management with Composer
PHP Dependency Management with Composer
Adam Englander
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
Ricardo Amaro
Docker for Java Developers
Docker for Java Developers
Imesh Gunaratne
Ad

The future of the php development environment