Web Development Infrastructure David Brewer Lead Systems Developer Second Story Interactive Studios
The presentation formerly known as “Using Ubuntu, Virtualization, and Automation to Improve Your Web Development Workflow” David Brewer Lead Systems Developer Second Story Interactive Studios
I'll cover... ● Introduction and definitions ● Evolution of infrastructures ● Infrastructure tools ● A system that works
What is a development infrastructure?
Infrastructure includes... ● Hardware ● Software ● Wetware
Photo by John Tregoning
You have an infrastructure, whether or not you know it. Photo by Sam Pullara
An analogy Photos by Nick Taylor, TravOC, and Graham Richardson
Original photo by James Duncan Davidson/O'Reilly Media
“Secession or Union?” at the Gettysburg Museum and Visitor Center
Great War T ables at the National World War I Museum
Media Wall at the McCormick Tribune Freedom Museum
Bank of America Data Mirrors
National Postal Musem's Arago: http://arago.si.edu
International Quilt Study Center's Collection Explorer: http://explorer.quiltstudy.org
The National Archives Experience Digital Vaults: http://digitalvaults.org
Monticello Explorer: http://explorer.monticello.org
National Museum of American History: http://americanhistory.si.edu/militaryhistory/
Evolution of web development infrastructures
Assumptions ● Version control ● Issue tracking ● Deploy scripts ● Project not yet 'live' ● Internal and external clients
When you assume... $u = $me = Photo by Gabor Karpati
Single server
“This project doesn't have the budget for more than one server.” Screen capture from “The IT Crowd”, Channel 4
“I hope you didn't just save foobar.php because I haven't checked in my changes all day.” Screen capture from “The IT Crowd”, Channel 4
“Did I just find a bug, or did you expect that bit to be broken?” Screen capture from “The IT Crowd”, Channel 4
“The client is reviewing the site. Can you not break anything for the next week, while you add these features?” Screen capture from “The IT Crowd”, Channel 4
Single server
Single server (realistic)
DO NOT WANT
Shared dev + production
Local dev + staging + production
ColdFusion MX Perl 5.8 PHP 4 PHP 5 SQL Server 2000 MySQL 5 MySQL 4 IIS 5 Apache 2 Apache 1 Tower of Babel by Pieter Bruegel the Elderh
“Well, it worked on MY machine.” Screen capture from “The IT Crowd”, Channel 4
Dev servers + staging + production
Decouples Decouples dev project workstations installs from servers Photo by Chance Agrella. Used courtesy of Free Range Stock.
Remaining problem 1: money “You want to buy HOW many servers?” Screen capture from “The IT Crowd”, Channel 4
Remaining problem 2: time Server Setup You Sisyphus by Franz von Stuck, 1920
It ain't gonna fly. Photo by nickstone333
Infrastructure tools
How can I reduce licensing costs?
Photo by Steve Deger
Photo by Ben McLeod
Photo by William Warby
Photo by rp72
How can I reduce hardware costs?
“But, you already HAVE a server.” Screen capture from “The IT Crowd”, Channel 4
Intro to virtualization
Our selection criteria ● Free ● Works on Linux and Windows ● Reliable and easy to use ● Available in 2006
Beer photo by Afonso Lima
Beer photo by Afonso Lima
Beer photo by Afonso Lima
Copying servers
Run identical web dev setup... ... on Linux ... on Windows (... on OS X, too, but not for free.)
Eases transition to Linux
A few notes on hardware ● Get lots of RAM ● Get lots of disk space ● For servers, get SCSI
How can I reduce setup time?
Configuration management tools:
AutomateIt overview ● The big picture ● Package management ● Config file munging ● Services ● Easy to extend ● Etc, etc, etc
Tags
Fields
Master recipe
PHP installation recipe
Benefit: quick server setup
Benefit: quick server setup Video by dvpurugs (http://www.youtube.com/user/dvpurugs)
Benefit: synchronize servers
Benefit: documents your config
A system that works
Our web development infrastructure
VMware Server
Production virtual server
Staging virtual server
Development sandboxes
Version control
AutomateIt
It's affordable Photo by ajajulian
Ubuntu community Photo by rp72
Fast server provisioning Screenshot of video by dvpurugs (http://www.youtube.com/user/dvpurugs)
Sandboxes = stability Photo by Giedrius M
Servers have consistent software
Develop on platform of choice
Reliable staging servers
Happy clients
Areas for improvement ● Issue 1: requires sysadmin skills ● Issue 2: consumes lots of disk ● Issue 3: exposes weaknesses in deploy systems
Second Story Interactive Studios: http://www.secondstory.com [We're Hiring!] Ubuntu: http://www.ubuntu.com VMware Server: http://vmware.com/products/server/ AutomateIt: http://automateit.org/
Recommend
More recommend