The future of the php development environment

  • 3,140 views
Uploaded on

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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,140
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
18
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Future of the PHP Development Environment
  • 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. Red Nose Day is back 15th March 2013 so look out for it http://www.rednoseday.com
  • 4. The Future of the PHP Development Environment
  • 5. This talk contains Ruby
  • 6. The Past
  • 7. NO PLACE LIKE 127.0.0.1
  • 8. How does a newbie install php?http://www.php.net/manual/en/install.php
  • 9. Some solutions HomebrewPackage Manager onLinux APT, YUM ETC
  • 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. The concept of a production snowflake in many ways can be applied to ourdevelopment environments - http://martinfowler.com/bliki/SnowflakeServer.html
  • 12. Spot the difference
  • 13. Spot the difference is similar to Dev/Prod Parity Concept“Keep development, staging, and production as similar as possible” - http://12factor.net/
  • 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. The Present: A solution to these problems $ vagrant up @mitchellh creator and maintainer of vagrant http://www.vagrantup.com/
  • 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. 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. Vagrant command line optionsOpen source project written in Ruby, a command line tool. Supported on most majoroperating systems.
  • 19. How vagrant worksVagrant instance is managed with Vagrantfile which is Ruby syntax.28 configuration options.
  • 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. Vagrant config file continued...
  • 22. Chef - a provisioner
  • 23. Basic Chef Solo configuration
  • 24. Quick Recap Provider - virtualisationVagrantfile Provisioner
  • 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. Multi VM Environments
  • 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. The Future
  • 29. New Vagrant Providers Vagrant 1.1 - Released end of Feb $ vagrant up --provider=aws
  • 30. Collaboration is everything
  • 31. Vagrant 1.1plugin system is completely re-written
  • 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. Feedback https://joind.in/8049
  • 34. Questions?
  • 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. 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