The future of the php development environment

4,089 views

Published on

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

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,089
On SlideShare
0
From Embeds
0
Number of Embeds
171
Actions
Shares
0
Downloads
22
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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 http://www.rednoseday.com
  4. 4. The Future of the PHP Development Environment
  5. 5. This talk contains Ruby
  6. 6. The Past
  7. 7. NO PLACE LIKE 127.0.0.1
  8. 8. How does a newbie install php?http://www.php.net/manual/en/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 - http://martinfowler.com/bliki/SnowflakeServer.html
  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” - http://12factor.net/
  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 http://www.vagrantup.com/
  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:/.vagrantup.com 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 https://github.com/jedi4ever/veewee
  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 package.box 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.22http://download.virtualbox.org/virtualbox/4.1.22/Download vagrant package or install via ruby gemshttp://downloads.vagrantup.com/tags/v1.0.5Add 33.33.33.10 vagrantdemo.com to /etc/hostsGet the projectgit clone http://www.github.com/jeremyquinton/vagrant_democd vagrant_demovagrant up --no-provisionvagrant provisionBrowse to vagrantdemo.com
  33. 33. Feedback https://joind.in/8049
  34. 34. Questions?
  35. 35. 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
  36. 36. Image Sourceshttp://www.photosinbox.com/download/warning-sign.jpghttp://d36cz9buwru1tt.cloudfront.net/Powered-by-Amazon-Web-Services.jpghttp://aws.amazon.com/trademark-guidelines/http://cdn.hdwallpaperspics.com/uploads/2012/12/Future_City_from_Above.jpghttp://www.canvascreekteambuilding.com/uploads/8/0/1/7/8017325/997680_orig.jpghttp://forbenefitenterprise.com/wp-content/uploads/2010/03/collaboration1.jpghttp://hd.wallpaperswide.com/thumbs/snowflake-t2.jpghttp://blog.azculinary.edu//wp-content/uploads/2010/08/Chef-Meyer_7659.jpghttp://farm7.staticflickr.com/6087/6144237169_e5f225f2d0_o.jpghttp://farm8.staticflickr.com/7078/7006904747_5c746375e9_b.jpg

×