Web Development Infrastructure
David BrewerLead Systems DeveloperSecond Story Interactive Studios
The presentation formerly known as “Using Ubuntu, Virtualization, and Automation to Improve Your Web Development Workflow”
David BrewerLead Systems DeveloperSecond Story Interactive Studios
● Introduction and definitions
● Evolution of infrastructures
● Infrastructure tools
● A system that works
I'll cover...
What is a development infrastructure?
Infrastructure includes...
● Hardware
● Software
● Wetware
Photo by John Tregoning
Photo by Sam Pullara
You have an infrastructure, whether or not you know it.
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 Tables 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 ofweb 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
“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 (realistic)
Shared dev + production
Local dev + staging + production
Tower of Babel by Pieter Bruegel the Elderh
Apache 1Apache 2
IIS 5
PHP 4PHP 5
Perl 5.8
ColdFusion MX
MySQL 4
SQL Server 2000
MySQL 5
“Well, it worked onMY machine.”
Screen capture from “The IT Crowd”, Channel 4
Dev servers + staging + production
Photo by Chance Agrella. Used courtesy of Free Range Stock.
Decouples projectinstalls
Decouples dev workstations from servers
“You want to buy HOW many servers?”
Screen capture from “The IT Crowd”, Channel 4
Remaining problem 1: money
Sisyphus by Franz von Stuck, 1920
You
Server Setup
Remaining problem 2: time
Photo by nickstone333
It ain't gonna fly.
Infrastructure tools
How can I reduce licensing costs?
Photo by Steve Deger
Photo by Ben McLeod
Photo by William Warby
How can I reduce hardware costs?
“But, you already HAVE a server.”
Screen capture from “The IT Crowd”, Channel 4
Intro to virtualization
● Free
● Works on Linux and Windows
● Reliable and easy to use
● Available in 2006
Our selection criteria
Beer photo by Afonso Lima
Beer photo by Afonso Lima
Beer photo by Afonso Lima
Run identical web dev setup...
... on Linux
... on Windows
(... on OS X, too, but not for free.)
Eases transition to Linux
● Get lots of RAM
● Get lots of disk space
● For servers, get SCSI
A few notes on hardware
How can I reducesetup time?
Configuration management tools:
AutomateIt overview
● The big picture
● Package management
● Config file munging
● Services
● Easy to extend
● Etc, etc, etc
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 systemthat works
Our web development infrastructure
Production virtual server
Staging virtual server
Development sandboxes
It's affordable
Photo by ajajulian
Photo by rp72
Ubuntu community
Fast server provisioning
Screenshot of video by dvpurugs (http://www.youtube.com/user/dvpurugs)
Photo by Giedrius M
Sandboxes =stability
Servers have consistent software
Develop on platform of choice
Reliable staging servers
● Issue 1: requires sysadmin skills
● Issue 2: consumes lots of disk
● Issue 3: exposes weaknesses in deploy systems
Areas for improvement
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/