Vancouver PHP Users Group, 22 May 2013 Peter Gordon Table of contents. п‚— Intro п‚— TL; DR; п‚— About Moi п‚— WhatвЂ™s in it for you? п‚— Virtualization п‚— Virtual Private Servers for hosting solutions п‚— Virtualization for web development п‚— Prehistory п‚— What it solves п‚— Stupid business practices п‚— The future п‚— Q&A Intro Tl; dr; virtualization for web development is really smart, but not always used. Here is why you use it. п‚— п‚— п‚— п‚— п‚— Look at some of the technical aspects. The social benefits are even greater than the technical. Some of you may already be hip to all this This talk is for a mixed audience. So you can sell others on it. About moi п‚— The old Van PHP. п‚— Organized Several Conferences with team. п‚— Dev and Project Management work. п‚— In my spare time: Blogger, biker, train in Brazilian Jiu- jitsu; volunteer work. п‚— Thanks to David Turner for some troubleshooting on this issue: http://www.turneris.com/ WhatвЂ™s in it for me? п‚— Standardize team skills. п‚— IT policy with a high degree of similarity between development and production environments, which means fewer problems down the road. п‚— Fast & flexible team creation. п‚— Skills & tools refactored. Virtualization: The absolute basics п‚— A computer within a computer - an emulator. п‚— Very useful for web development, but glossed over as a topic. п‚— For Virtual Private Servers. п‚— For Desktop. Virtual Private Servers -for web hosting solutions п‚— Something between the palace of dedicated hosting and the sewer of shared hosting. п‚— The performance of a dedicated server on the budget of a shared host. п‚— Good hosting companies offer VPS. IMHO, bad ones donвЂ™t. VPS vs. Shared host php benchmark on index.php п‚— Dreamhost.com: ~2.0 seconds. п‚— VPS: Canadian Web Hosting co-located on Peer1: 0.00002 seconds. п‚— Or an improvement of 2*10-5 over shared hosting. п‚— Holy crap. OK, so what? п‚— Hypervisors run the LAMP stack. п‚— The LAMP is part of what you sell. п‚— You can run a mirror of your web server locally with many advantages. п‚— Normalize the whole stack. п‚— Self evident, but not so obvious. п‚— Even deploy to Amazon EC2. With a VM on the Desktop, I can do this: The prehistory вЂ“ what sucked. п‚— Manual install of stack on desktop п‚— XAMPP, MAMP, WAMP, et al. п‚— I donвЂ™t find built-in Mac server very useful for real web development. Because it is not the real stack. Demo some stuff already! п‚— Oracle VirtualBox is FOSS. п‚— Installing Gnu-Linux ISO distros is pretty much the same as installing вЂ�on the metalвЂ™. п‚— Networking options was the nut to crack. п‚— See my blog, http://superwebdeveloper.com Stupid business practices п‚— No comprehensive IT policies too often the reality. п‚— No effort to standardize working stack, beyond version control. п‚— Team management express indifference to how team members build their environments. п‚— A disconnect between dev and sysadmin roles. Better ideas with VMs п‚— Define core competency. п‚— Use real tools & avoid clunky dev environments п‚— Share standard stack, skills, techniques п‚— Be agile п‚— Support team members around network outages п‚— Work independently, Remote team development п‚— Learn & use Gnu-Linux like a boss п‚— $0 cost What VMs can do п‚— Speakers should distribute VMs п‚— Common dev environments across machines п‚— Demonstrate outside of internet or deployed service, and demo projects before delivery п‚— Security, penetration, date & Scenario testing п‚— Support old projects, clients п‚— Workaround small client shared web hosting annoyances. It got me thinkingвЂ¦ п‚— Standardized virtual dev environments provides a way to easily support team members, because no two people in a chair are alike. п‚— Hypervisors can definitely support the cause of spreading Gnu-Linux and the skill set for using it. Lost productivity & opportunity п‚— Sure, no uniform dev team practices are not a problem most of the time. п‚— Persistent problems and additional deployment issues cause FRICTION. п‚— Vendor & community вЂ“ patches. Other wisdom п‚— вЂњA separation of concernsвЂќ Stefan Priebsch, thePHP.cc. п‚— RefactoringвЂ¦ Other wisdom п‚— вЂњA grouping of Concerns.вЂќ п‚— When you standardize skill requirements, any team member can support another. п‚— You become TRULY AGILE, can create teams in an ad-hoc fashion* (*even though вЂ�AgileвЂ™ was concocted up to sell things to people and create buy-in by giving team members the illusion of control). Another reason whyвЂ¦ п‚— What if you wanted to do things that were just a leeetle bit off of the beaten path? п‚— NGINX, NoSQL, MariaDB, ApacheSOLR, LightHTTPD п‚— You will be SOL, or something like that. Or you need a budget. Or time. Or a really good excuse. Or beg your hosting company. Or a dev server. But we have a dev server. п‚— Compare to $0 cost. п‚— Code that is noisy in the logs. п‚— Security issues also apply. п‚— A lessened need for one with VMs. But we have a dev server. п‚— One dev can own several desktop machines, and needs to have common dev tools regardless of platform. п‚— Virtual appliances are easy to share or convert for use in other hypervisors. п‚— Share VM with team over .torrent protocol. Dream Big on teh internets п‚— Host without incurring costs п‚— Rapid deployment. п‚— Quick and dirty, local experiments. Do more with less п‚— Comprehensive IT policy promotes sloth! The Future: Bundling middleware with the stack for distribution. Prebuilt stacks ready for deployment. 3 ways to do it п‚— Get a Gnu-Linux distro from a vendor. п‚— Vagrant. п‚— Bitnami, Turnkey Linux. Get started with Vagrant п‚— Vagrant & Chef (Ruby). But I like to tinker under the hood a little bit more. http://vagrantup.com/ http://www.opscode.com/ Not the most technical talk on virtualization out there. п‚— I did not intend it to be. п‚— Social benefits are the real take away. п‚— Not everyone understands the power in these tools. п‚— Teams can assemble quickly, big ideas can turn on a dime. п‚— Put the growth of this area in perspective, see its potential for growth. Shameless plug at the end п‚— Twitter: @pbgswd п‚— Tech blog: http://www.superwebdeveloper.com/ п‚— For relaxation and modern social skills: http://martialartsnomad.com/ п‚— Thanks Vancouver PHP Meetup group! п‚— Supporting blog posts, talk are online. Sloth says thank you.