Slide 1

Slide 1 text

Tuesday, January 29, 13

Slide 2

Slide 2 text

simple scaling patterns for websites some lessons learned at Tuesday, January 29, 13

Slide 3

Slide 3 text

Brandon Burton @solarce Web Operations Engineer lolcat enthusiast Tuesday, January 29, 13

Slide 4

Slide 4 text

CACHE (RULES EVERYTHING AROUND ME) Tuesday, January 29, 13

Slide 5

Slide 5 text

MEMCACHE databases ephemeral data CACHE: your data Tuesday, January 29, 13

Slide 6

Slide 6 text

ZEUS load balancer http caching varnish squid CACHE: local asset cache Tuesday, January 29, 13

Slide 7

Slide 7 text

global asset caching! 450 million users downloading updates edgecast akamai cedexis CACHE: CDN Tuesday, January 29, 13

Slide 8

Slide 8 text

SCALE OUT (many web servers) Tuesday, January 29, 13

Slide 9

Slide 9 text

we use puppet. also can use: chef cfengine SCALE OUT: config mgmt Tuesday, January 29, 13

Slide 10

Slide 10 text

SCALE OUT: web heads DISPOSABLE WEB HEADS shared nothing SEAMICRO! netapp nfs S3 Tuesday, January 29, 13

Slide 11

Slide 11 text

SCALE OUT: seamicro Deployed AMD SeaMicro for increase computing efficiency. Saved up to 75% in space and power Enables 192 vs. 64 hosts. 45U racks with 5U used by TOR and management. Eliminates TOR and reduces power. Racks are 12-15kW. Tuesday, January 29, 13

Slide 12

Slide 12 text

SCALE OUT: an diagram Tuesday, January 29, 13

Slide 13

Slide 13 text

A’SYNC JOBS (webscale boy band) Tuesday, January 29, 13

Slide 14

Slide 14 text

CELERY don’t block the webapp python django supervisord ASYNC JOBS Tuesday, January 29, 13

Slide 15

Slide 15 text

RABBITMQ celery cluster per dc config mgmt ASYNC JOBS Tuesday, January 29, 13

Slide 16

Slide 16 text

DATABASES (/dev/null is webscale) Tuesday, January 29, 13

Slide 17

Slide 17 text

Multi-Master mysql awesome DBA team DATABASES: multi-master Tuesday, January 29, 13

Slide 18

Slide 18 text

READ SLAVES mysql replication DATABASES: read slaves Tuesday, January 29, 13

Slide 19

Slide 19 text

DJANGO PLUGIN DATABASES: django plugin DATABASES = { ... 'slave': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database', 'USER': 'dbuser', 'PASSWORD': 'password', 'HOST': 'db1-lb1', 'PORT': '3306', }, } SLAVE_DATABASES = ['slave'] Tuesday, January 29, 13

Slide 20

Slide 20 text

AWESOME DBAs ARE AWESOME DATABASES: dbas Tuesday, January 29, 13

Slide 21

Slide 21 text

LOAD BALANCING Zeus ScaleBase DATABASES: load balancing Tuesday, January 29, 13

Slide 22

Slide 22 text

HARDWARE HP blades Fusion-IO HP and Kingston SSDs DATABASES: hardware Tuesday, January 29, 13

Slide 23

Slide 23 text

FUTURE PLANS (where we’re going we don’t need roads) Tuesday, January 29, 13

Slide 24

Slide 24 text

SELF SERVICE Continuous deployments Chief aka the big red button Jenkins FUTURE PLANS: self service Tuesday, January 29, 13

Slide 25

Slide 25 text

PAAS We chose ActiveState’s Stackato FUTURE PLANS: paas Tuesday, January 29, 13

Slide 26

Slide 26 text

DAT CLOUD AWS scaling web server clusters paas FUTURE PLANS: cloud Tuesday, January 29, 13

Slide 27

Slide 27 text

QUESTIONS? Tuesday, January 29, 13

Slide 28

Slide 28 text

WANT TO KNOW MORE? speaking at SCaLE 11 @solarce blog.mozilla.org/it/ Tuesday, January 29, 13

Slide 29

Slide 29 text

SLIDES http://bit.ly/ladevops-201301-ssp Tuesday, January 29, 13