Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The future of the php development environment


Published on

The future of the php development environment. Talk given at the PHP London UK 2013

  • Be the first to comment

The future of the php development environment

  1. 1. The Future of the PHP Development Environment
  2. 2. 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
  3. 3. Red Nose Day is back 15th March 2013 so look out for it
  4. 4. The Future of the PHP Development Environment
  5. 5. This talk contains Ruby
  6. 6. The Past
  8. 8. How does a newbie install php?
  9. 9. Some solutions HomebrewPackage Manager onLinux APT, YUM ETC
  10. 10. 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
  11. 11. The concept of a production snowflake in many ways can be applied to ourdevelopment environments -
  12. 12. Spot the difference
  13. 13. Spot the difference is similar to Dev/Prod Parity Concept“Keep development, staging, and production as similar as possible” -
  14. 14. Summary of Past and Present problems Setting up the modern dev environment, which has many moving, parts isnt straightforward Uniqueness Switching between projects with different dependancies is difficult Local dev environments differ significantly from production
  15. 15. The Present: A solution to these problems $ vagrant up @mitchellh creator and maintainer of vagrant
  16. 16. What is the Vagrant Idea/Concept?“A tool to transparently manage all the complex parts of modern developmentwithin a virtual environment without affecting the everyday workflow of thedeveloper too much.” - http:/ Provider - Vagrant Provisioner virtualisation
  17. 17. Basic Vagrant Workflow How vagrant worksOnce Configured one command to bring up your development environment. $ vagrant upTo access the virtual machine via ssh $ vagrant sshWhen you finished work for the day $ vagrant haltWhen you done with the dev environment $ vagrant destroy [vn-name]Provision the virtual environment $ vagrant provision
  18. 18. Vagrant command line optionsOpen source project written in Ruby, a command line tool. Supported on most majoroperating systems.
  19. 19. How vagrant worksVagrant instance is managed with Vagrantfile which is Ruby syntax.28 configuration options.
  20. 20. Three methods to create a box file Three methods create a box fileDownload a box file from http://www.vagrant.esUsing the instructions off http://vagrantup.comVeeWee
  21. 21. Vagrant config file continued...
  22. 22. Chef - a provisioner
  23. 23. Basic Chef Solo configuration
  24. 24. Quick Recap Provider - virtualisationVagrantfile Provisioner
  25. 25. Visualisation of a vagrant workflow Windows Developer VCS Mac Osx Developer VagrantFile Linux Developer Chef Solo Scripts 1. vagrant add box box_name 2. vagrant up 3. vagrant provision Deployment tool Staging Production
  26. 26. Multi VM Environments
  27. 27. 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.
  28. 28. The Future
  29. 29. New Vagrant Providers Vagrant 1.1 - Released end of Feb $ vagrant up --provider=aws
  30. 30. Collaboration is everything
  31. 31. Vagrant 1.1plugin system is completely re-written
  32. 32. DemoDownload Virtualbox 4.1.22 vagrant package or install via ruby gems to /etc/hostsGet the projectgit clone vagrant_demovagrant up --no-provisionvagrant provisionBrowse to
  33. 33. Feedback
  34. 34. Questions?
  35. 35. Technical resources • • • • •
  36. 36. Image Sources