SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
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 file
  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
Vagrant config file continued...
Chef - a provisioner
Basic Chef Solo configuration
Quick Recap



                        Provider -
                      virtualisation

Vagrantfile




                      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
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://forbenefitenterprise.com/wp-content/uploads/2010/03/collaboration1.jpg

http://hd.wallpaperswide.com/thumbs/snowflake-t2.jpg
http://blog.azculinary.edu//wp-content/uploads/2010/08/Chef-Meyer_7659.jpg
http://farm7.staticflickr.com/6087/6144237169_e5f225f2d0_o.jpg

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

Más contenido relacionado

La actualidad más candente

Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
 
Js engine performance
Js engine performanceJs engine performance
Js engine performance
paullfc
 

La actualidad más candente (20)

Vagrant presentation
Vagrant presentationVagrant presentation
Vagrant presentation
 
Vagrant
Vagrant Vagrant
Vagrant
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant + Docker
Vagrant + DockerVagrant + Docker
Vagrant + Docker
 
An Introduction to Vagrant and Docker
An Introduction to Vagrant and DockerAn Introduction to Vagrant and Docker
An Introduction to Vagrant and Docker
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
 
Vagrant up-and-running
Vagrant up-and-runningVagrant up-and-running
Vagrant up-and-running
 
Magento 2 Capistrano Deploy
Magento 2 Capistrano DeployMagento 2 Capistrano Deploy
Magento 2 Capistrano Deploy
 
Capistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient wayCapistrano deploy Magento project in an efficient way
Capistrano deploy Magento project in an efficient way
 
RoR app screencast
RoR app screencastRoR app screencast
RoR app screencast
 
Vagrant
VagrantVagrant
Vagrant
 
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
#3 Hanoi Magento Meetup - Part 2: Scalable Magento Development With Containers
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
 
Js engine performance
Js engine performanceJs engine performance
Js engine performance
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Devopstore
DevopstoreDevopstore
Devopstore
 
Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing docker
 
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding APIDevoxx UK 2013: Sandboxing with the Vagrant-Binding API
Devoxx UK 2013: Sandboxing with the Vagrant-Binding API
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Installing and Upgrading AtoM
Installing and Upgrading AtoMInstalling and Upgrading AtoM
Installing and Upgrading AtoM
 

Destacado

Vizio interview questions and answers
Vizio interview questions and answersVizio interview questions and answers
Vizio interview questions and answers
selinasimpson275
 

Destacado (7)

Vizio interview questions and answers
Vizio interview questions and answersVizio interview questions and answers
Vizio interview questions and answers
 
Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next Generation
 
Best Practices For Using Virtualization In Development Environments
Best Practices For Using Virtualization In Development EnvironmentsBest Practices For Using Virtualization In Development Environments
Best Practices For Using Virtualization In Development Environments
 
Federal Cloud Computing Strategy
Federal Cloud Computing StrategyFederal Cloud Computing Strategy
Federal Cloud Computing Strategy
 
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
Virtual Gov Day - Application Delivery Breakout - Northrop Grumman Informatio...
 
Gravitant Whitepaper Cloud for Federal Govt
Gravitant Whitepaper Cloud for Federal GovtGravitant Whitepaper Cloud for Federal Govt
Gravitant Whitepaper Cloud for Federal Govt
 
Migrating to the Cloud: Lessons Learned from Federal Agencies
Migrating to the Cloud: Lessons Learned from Federal AgenciesMigrating to the Cloud: Lessons Learned from Federal Agencies
Migrating to the Cloud: Lessons Learned from Federal Agencies
 

Similar a The future of the php development environment

2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
Ricardo Amaro
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb 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 CloudStackSupporting Hyper-V 3.0 on Apache CloudStack
Supporting Hyper-V 3.0 on Apache CloudStack
Donal Lafferty
 
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
Ricardo Amaro
 

Similar a 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 AlvarezDevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
DevOps Camp 2017 NYC Local Development using Vagrant by Anthony Alvarez
 
Vagrant for local and team WordPress Development
Vagrant for local and team WordPress DevelopmentVagrant for local and team WordPress Development
Vagrant for local and team WordPress Development
 
Dev ops for developers
Dev ops for developersDev ops for developers
Dev ops for developers
 
How Reconnix Is Using Docker
How Reconnix Is Using DockerHow Reconnix Is Using Docker
How Reconnix Is Using Docker
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Developing web apps
Developing web appsDeveloping web apps
Developing web apps
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
DevOps for Developers
DevOps for DevelopersDevOps for Developers
DevOps for Developers
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
 
Local development environment through virtualisation
Local development environment through virtualisationLocal development environment through virtualisation
Local development environment through virtualisation
 
Vagrant&ansible
Vagrant&ansibleVagrant&ansible
Vagrant&ansible
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
 
Supporting Hyper-V 3.0 on Apache CloudStack
Supporting Hyper-V 3.0 on Apache CloudStackSupporting Hyper-V 3.0 on Apache CloudStack
Supporting Hyper-V 3.0 on Apache CloudStack
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
 
Drupalcamp es 2013 drupal with lxc docker and vagrant
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 

The future of the php development environment