Building the Drupal Borg BADCamp October 23nd 2011 Thursday, - - PowerPoint PPT Presentation

building the drupal borg
SMART_READER_LITE
LIVE PREVIEW

Building the Drupal Borg BADCamp October 23nd 2011 Thursday, - - PowerPoint PPT Presentation

Building the Drupal Borg BADCamp October 23nd 2011 Thursday, January 12, 12 In The Beginning Scaling used to be far more complex. Thursday, January 12, 12 The Late 90s Ease of impleme ntation Java v1 Use-Cases Covered Thursday,


slide-1
SLIDE 1

Building the Drupal Borg

BADCamp October 23nd 2011

Thursday, January 12, 12

slide-2
SLIDE 2

In The Beginning

Scaling used to be far more complex.

Thursday, January 12, 12

slide-3
SLIDE 3

The Late 90’s

Ease of impleme ntation Use-Cases Covered

Java v1

Thursday, January 12, 12

slide-4
SLIDE 4

The Late 90’s

Ease of impleme ntation Use-Cases Covered

J2EE Java v1

Thursday, January 12, 12

slide-5
SLIDE 5

The Late 90’s

Ease of impleme ntation Use-Cases Covered

J2EE Java v1 Microsoft Stack

Thursday, January 12, 12

slide-6
SLIDE 6

The Late 90’s

Ease of impleme ntation Use-Cases Covered

J2EE LAMP Java v1 Microsoft Stack

Thursday, January 12, 12

slide-7
SLIDE 7

A Dark Time

  • All apps written from scratch
  • Network databases still immature
  • “Publishing HTML” still the goal
  • Remember the web in the 90’s?

(sorta sucked)

Thursday, January 12, 12

slide-8
SLIDE 8

LAMP Shines a Light

  • Share-nothing runtime
  • Network-connected database
  • Free and Open Source
  • Runs on any hardware

Thursday, January 12, 12

slide-9
SLIDE 9

And so we grew

And so the web grew

Thursday, January 12, 12

slide-10
SLIDE 10

“Web Scale”

  • C10k Challenge
  • Evented I/O wins
  • Nginx and Lighttpd
  • Memcache
  • Distributed reads

Thursday, January 12, 12

slide-11
SLIDE 11

But the Architecture

Thursday, January 12, 12

slide-12
SLIDE 12

By 2005...

http://www.danga.com/words/

LiveJournal Backend: Today

Roughly.

User DB Cluster 1 uc1a uc1b User DB Cluster 2 uc2a uc2b User DB Cluster 3 uc3a uc3b User DB Cluster 4 uc4a uc4b User DB Cluster 5 uc5a uc5b Memcached

mc4 mc3 mc2 mc12 ... mc1

mod_perl

web4 web3 web2 web50 ... web1

BIG-IP

bigip2 bigip1

perlbal (httpd/proxy)

proxy4 proxy3 proxy2 proxy5 proxy1

Global Database

slave1 master_a master_b slave2 ... slave5

MogileFS Database

mog_a mog_b

Mogile Trackers

tracker2 tracker1

Mogile Storage Nodes

... sto2 sto8 sto1

net.

Thursday, January 12, 12

slide-13
SLIDE 13

Infrastructure

Ease of impleme ntation Use-Cases Covered

Shared Hosting VPS HA Web Cluster Dedicated Server Custom Cluster

Thursday, January 12, 12

slide-14
SLIDE 14

Infrastructure

Ease of impleme ntation Use-Cases Covered

Shared Hosting VPS HA Web Cluster Dedicated Server Custom Cluster

Cost is a real Barrier

Thursday, January 12, 12

slide-15
SLIDE 15

Infrastructure

Ease of impleme ntation Use-Cases Covered

Shared Hosting VPS HA Web Cluster Dedicated Server Custom Cluster

Expertise is a real barrier

Thursday, January 12, 12

slide-16
SLIDE 16

The Units of Scale

Entire hardware servers is the wrong unit to scale. Tons of capacity at a chunk.

Thursday, January 12, 12

slide-17
SLIDE 17

The Challenge

This isn’t just about scaling

  • ne website

Thursday, January 12, 12

slide-18
SLIDE 18

The Challenge

This is about scaling the web

Thursday, January 12, 12

slide-19
SLIDE 19

The Challenge

Limited developer talent limits Drupal adoption

Thursday, January 12, 12

slide-20
SLIDE 20

The Challenge

Expertise in infrastructure is even more limited

Thursday, January 12, 12

slide-21
SLIDE 21

The Challenge

Luckily infrastructure is friendly to automation

Thursday, January 12, 12

slide-22
SLIDE 22

Bring on the Borg!

Thursday, January 12, 12

slide-23
SLIDE 23

Bring on the Borg!

Thursday, January 12, 12

slide-24
SLIDE 24

A Brief History of Borg

Google / AppEngine CfEngine, Puppet, Chef Heroku

Thursday, January 12, 12

slide-25
SLIDE 25

This is how we do it

Thursday, January 12, 12

slide-26
SLIDE 26

This is how we do it

Thursday, January 12, 12

slide-27
SLIDE 27

Pantheon is the best of both worlds

Thursday, January 12, 12

slide-28
SLIDE 28

Pantheon will un-block Drupal adoption on infrastructure

Thursday, January 12, 12

slide-29
SLIDE 29

Inside Pantheon

The High Level View

Thursday, January 12, 12

slide-30
SLIDE 30

Routing Mesh

Request Varnish Firewall “Styx”

Thursday, January 12, 12

slide-31
SLIDE 31

Routing Mesh

Routing Mesh

Thursday, January 12, 12

slide-32
SLIDE 32

Routing Mesh

Routing Mesh Yggdrasil DNS

Thursday, January 12, 12

slide-33
SLIDE 33

Routing Mesh

Routing Mesh Yggdrasil DNS Cassandra

Thursday, January 12, 12

slide-34
SLIDE 34

Routing Mesh

Routing Mesh Yggdrasil DNS Cassandra

Thursday, January 12, 12

slide-35
SLIDE 35

Routing Mesh

Routing Mesh Yggdrasil DNS Cassandra

Thursday, January 12, 12

slide-36
SLIDE 36

Routing Mesh

Routing Mesh Yggdrasil

Thursday, January 12, 12

slide-37
SLIDE 37

Routing Mesh

Routing Mesh Yggdrasil DROPs Matrix

Thursday, January 12, 12

slide-38
SLIDE 38

DROPs

Provision, Isolate and Scale at the per-process level.

Thursday, January 12, 12

slide-39
SLIDE 39

DROPs

Provision, Isolate and Scale at the per-process level.

Thursday, January 12, 12

slide-40
SLIDE 40

DROPs

We can scale this too

Thursday, January 12, 12

slide-41
SLIDE 41

DROPs

We can scale this too

Thursday, January 12, 12

slide-42
SLIDE 42

DROPs

We can scale this too

Thursday, January 12, 12

slide-43
SLIDE 43

Anatomy of a DROP

Nginx PHP-FPM APC Cache

Service Bindings

Thursday, January 12, 12

slide-44
SLIDE 44

Valhalla

Twisted DAV

Dev Test Live

Thursday, January 12, 12

slide-45
SLIDE 45

Valhalla

Cassandra

Twisted DAV

Dev Test Live

Thursday, January 12, 12

slide-46
SLIDE 46

Other Service Bindings

MySQL MemCache Solr Redis? Cassandra?

Thursday, January 12, 12

slide-47
SLIDE 47

Drush Access

Custom SSH Server

drush @pantheon cc all

Thursday, January 12, 12

slide-48
SLIDE 48

Drush Access

Yggdrasil DNS Custom SSH Server

drush @pantheon cc all

Thursday, January 12, 12

slide-49
SLIDE 49

Magic On The Horizon

Thursday, January 12, 12

slide-50
SLIDE 50

Have questions? Contact Zack Rosen zack@getpantheon.com 1-415-992-7531

Thursday, January 12, 12