Web Development Infrastructure - O'Reilly Media - Technology Books

88
Web Development Infrastructure David Brewer Lead Systems Developer Second Story Interactive Studios

Transcript of Web Development Infrastructure - O'Reilly Media - Technology Books

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

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

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

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

● 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

Copying servers

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

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 systemthat works

Our web development infrastructure

VMware Server

Production virtual server

Staging virtual server

Development sandboxes

Version control

AutomateIt

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

Happyclients

● 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/