Web Development Infrastructure David Brewer Lead Systems Developer - - PowerPoint PPT Presentation

web development infrastructure
SMART_READER_LITE
LIVE PREVIEW

Web Development Infrastructure David Brewer Lead Systems Developer - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Web Development Infrastructure

David Brewer Lead Systems Developer Second Story Interactive Studios

slide-2
SLIDE 2

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

slide-3
SLIDE 3
  • Introduction and definitions
  • Evolution of infrastructures
  • Infrastructure tools
  • A system that works

I'll cover...

slide-4
SLIDE 4

What is a development infrastructure?

slide-5
SLIDE 5

Infrastructure includes...

  • Hardware
  • Software
  • Wetware
slide-6
SLIDE 6

Photo by John Tregoning

slide-7
SLIDE 7

Photo by Sam Pullara

You have an infrastructure, whether or not you know it.

slide-8
SLIDE 8

An analogy

Photos by Nick Taylor, TravOC, and Graham Richardson

slide-9
SLIDE 9

Original photo by James Duncan Davidson/O'Reilly Media

slide-10
SLIDE 10
slide-11
SLIDE 11

“Secession or Union?” at the Gettysburg Museum and Visitor Center

slide-12
SLIDE 12

Great War T ables at the National World War I Museum

slide-13
SLIDE 13

Media Wall at the McCormick Tribune Freedom Museum

slide-14
SLIDE 14

Bank of America Data Mirrors

slide-15
SLIDE 15

National Postal Musem's Arago: http://arago.si.edu

slide-16
SLIDE 16

International Quilt Study Center's Collection Explorer: http://explorer.quiltstudy.org

slide-17
SLIDE 17

The National Archives Experience Digital Vaults: http://digitalvaults.org

slide-18
SLIDE 18

Monticello Explorer: http://explorer.monticello.org

slide-19
SLIDE 19

National Museum of American History: http://americanhistory.si.edu/militaryhistory/

slide-20
SLIDE 20

Evolution of web development infrastructures

slide-21
SLIDE 21

Assumptions

  • Version control
  • Issue tracking
  • Deploy scripts
  • Project not yet 'live'
  • Internal and external clients
slide-22
SLIDE 22

When you assume...

$u = $me =

Photo by Gabor Karpati

slide-23
SLIDE 23

Single server

slide-24
SLIDE 24

“This project doesn't have the budget for more than

  • ne server.”

Screen capture from “The IT Crowd”, Channel 4

slide-25
SLIDE 25

“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

slide-26
SLIDE 26

“Did I just find a bug, or did you expect that bit to be broken?”

Screen capture from “The IT Crowd”, Channel 4

slide-27
SLIDE 27

“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

slide-28
SLIDE 28

Single server

slide-29
SLIDE 29

Single server (realistic)

slide-30
SLIDE 30

DO NOT WANT

slide-31
SLIDE 31

Shared dev + production

slide-32
SLIDE 32
slide-33
SLIDE 33
slide-34
SLIDE 34

Local dev + staging + production

slide-35
SLIDE 35

Tower of Babel by Pieter Bruegel the Elderh

Apache 1 Apache 2 IIS 5 PHP 4 PHP 5 Perl 5.8 ColdFusion MX MySQL 4 SQL Server 2000 MySQL 5

slide-36
SLIDE 36

“Well, it worked on MY machine.”

Screen capture from “The IT Crowd”, Channel 4

slide-37
SLIDE 37

Dev servers + staging + production

slide-38
SLIDE 38

Photo by Chance Agrella. Used courtesy of Free Range Stock.

Decouples project installs Decouples dev workstations from servers

slide-39
SLIDE 39

“You want to buy HOW many servers?”

Screen capture from “The IT Crowd”, Channel 4

Remaining problem 1: money

slide-40
SLIDE 40

Sisyphus by Franz von Stuck, 1920

You Server Setup

Remaining problem 2: time

slide-41
SLIDE 41

Photo by nickstone333

It ain't gonna fly.

slide-42
SLIDE 42

Infrastructure tools

slide-43
SLIDE 43

How can I reduce licensing costs?

slide-44
SLIDE 44

Photo by Steve Deger

slide-45
SLIDE 45

Photo by Ben McLeod

slide-46
SLIDE 46

Photo by William Warby

slide-47
SLIDE 47
slide-48
SLIDE 48

Photo by rp72

slide-49
SLIDE 49

How can I reduce hardware costs?

slide-50
SLIDE 50

“But, you already HAVE a server.”

Screen capture from “The IT Crowd”, Channel 4

slide-51
SLIDE 51

Intro to virtualization

slide-52
SLIDE 52
  • Free
  • Works on Linux and Windows
  • Reliable and easy to use
  • Available in 2006

Our selection criteria

slide-53
SLIDE 53

Beer photo by Afonso Lima

slide-54
SLIDE 54

Beer photo by Afonso Lima

slide-55
SLIDE 55

Beer photo by Afonso Lima

slide-56
SLIDE 56

Copying servers

slide-57
SLIDE 57

Run identical web dev setup... ... on Linux ... on Windows (... on OS X, too, but not for free.)

slide-58
SLIDE 58

Eases transition to Linux

slide-59
SLIDE 59
  • Get lots of RAM
  • Get lots of disk space
  • For servers, get SCSI

A few notes on hardware

slide-60
SLIDE 60

How can I reduce setup time?

slide-61
SLIDE 61

Configuration management tools:

slide-62
SLIDE 62

AutomateIt overview

  • The big picture
  • Package management
  • Config file munging
  • Services
  • Easy to extend
  • Etc, etc, etc
slide-63
SLIDE 63

Tags

slide-64
SLIDE 64

Fields

slide-65
SLIDE 65

Master recipe

slide-66
SLIDE 66

PHP installation recipe

slide-67
SLIDE 67

Benefit: quick server setup

slide-68
SLIDE 68

Benefit: quick server setup

Video by dvpurugs (http://www.youtube.com/user/dvpurugs)

slide-69
SLIDE 69

Benefit: synchronize servers

slide-70
SLIDE 70

Benefit: documents your config

slide-71
SLIDE 71

A system that works

slide-72
SLIDE 72

Our web development infrastructure

slide-73
SLIDE 73

VMware Server

slide-74
SLIDE 74

Production virtual server

slide-75
SLIDE 75

Staging virtual server

slide-76
SLIDE 76

Development sandboxes

slide-77
SLIDE 77

Version control

slide-78
SLIDE 78

AutomateIt

slide-79
SLIDE 79

It's affordable

Photo by ajajulian

slide-80
SLIDE 80

Photo by rp72

Ubuntu community

slide-81
SLIDE 81

Fast server provisioning

Screenshot of video by dvpurugs (http://www.youtube.com/user/dvpurugs)

slide-82
SLIDE 82

Photo by Giedrius M

Sandboxes = stability

slide-83
SLIDE 83

Servers have consistent software

slide-84
SLIDE 84

Develop on platform of choice

slide-85
SLIDE 85

Reliable staging servers

slide-86
SLIDE 86

Happy clients

slide-87
SLIDE 87
  • Issue 1: requires sysadmin skills
  • Issue 2: consumes lots of disk
  • Issue 3: exposes weaknesses in

deploy systems

Areas for improvement

slide-88
SLIDE 88

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/