Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can...

36
Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss Four Kitchens Wed 2009-06-03

Transcript of Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can...

Page 1: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

Building Infrastructure You Can Scale, Monitor, and Maintain

A Presentation About Everything But MySQL

David Strauss ☛ Four Kitchens

Wed 2009-06-03

Page 2: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

This is not a presentation about queries, indexes, table engines, or my other standard fare.

Wed 2009-06-03

Page 3: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

Designing Physical Architecture

Wed 2009-06-03

Page 4: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Predicting peak traffic

Traffic over the day can be highly irregular. To plan for peak loads, design as if all traffic were as heavy as the peak hour of load in a typical month -- and then plan for some growth.

Wed 2009-06-03

Page 5: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

3%

10%

40%

50%

30%

100%

70%

20%

Analyzing hit distribution

Anonymous

Authenticated

Dynam

ic Pages

Static Content

Human

Web Craw

lerNo Special Treatment

7%

“Pay Wall” Bypass

Wed 2009-06-03

Page 6: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Throughput vs. Delivery MethodsGreen

(Static)Yellow

(Dynamic, Cacheable)Red

(Dynamic)

Content Delivery Network

Reverse Proxy Cache

Drupal + Page Cache+ memcached

Drupal + Page Cache

Drupal

●●●●●●●●●● ✖ ✖

●●●●●●● ●●●●●●● ✖

●●● ●●● ✖

●●● ●● ✖

●●● ● ●

1

Delivered by Apache without Drupal

1

1

1

More dots = More throughput Some actually can do this.2

2

10 req/s

1000 req/s

Wed 2009-06-03

Page 7: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Objective

Deliver hits using the fastest, most scalable method available.

Wed 2009-06-03

Page 8: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Layering: Less Traffic at Each Step

CDN

Load Balancer

Reverse Proxy Cache

Application Server

Database

Traffic

Your Datacenter

DNS Round Robin

Wed 2009-06-03

Page 9: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Offload from the master database

Application Server

Search

Memory Cache

SlaveDatabase

Your master database is the single greatest limitation on

scalability.

MasterDatabase

Wed 2009-06-03

Page 10: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Tools to use

Apache Solr for search. (Acquia offers hosting of this now.)

Squid or Varnish for reverse proxy caching.

Any third-party service for CDN.

Wed 2009-06-03

Page 11: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Do the math

All non-CDN traffic travels through your load balancers and reverse proxy caches. Even traffic passed through to application servers must run through the initial layers.

Load Balancer

Reverse Proxy Cache

Application Server

Traffic

What hit rate is each layer geing?How many servers share the load?

Wed 2009-06-03

Page 12: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Get a management/monitoring box

ManagementApplication

Server

Reverse Proxy Cache

Database

Load Balancer

(maybe two or three and have them specialized or

redundant)

Wed 2009-06-03

Page 13: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

Managing the Cluster

Wed 2009-06-03

Page 14: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

The problem

Application Server

Application Server

Application Server

Application Server

Application Server

Soware and Configuration

Objectives:Fast, atomic deployment and rollbackMinimize single points of failure and contentionRestart servicesIntegrate with version control systems

Wed 2009-06-03

Page 15: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Manual updates and deployment

Application Server

Application Server

Application Server

Application Server

Application Server

Human Human Human Human Human

Why not: slow deployment,non-atomic/difficult rollbacks

Wed 2009-06-03

Page 16: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Shared storage

Application Server

Application Server

Application Server

Application Server

Application Server

NFS

Why not: single point of contention and failure

Wed 2009-06-03

Page 17: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

rsync

Application Server

Application Server

Application Server

Application Server

Application Server

Synchronizedwith rsync

Why not: non-atomic, does not manage services

Wed 2009-06-03

Page 18: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Capistrano

Application Server

Application Server

Application Server

Application Server

Application Server

Deployed withCapistrano

Capistrano provides near-atomic deployment,service restarts, automated rollback, test automation, and version control integration (tagged releases).

Wed 2009-06-03

Page 19: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Multistage deployment

Application Server

Application Server

Application Server

Application Server

Application Server

Deployed withCapistrano

Development Integration

Deployed withCapistrano

Staging

Deployed withCapistrano

Deploymentscan be staged.

cap staging deploycap production deploy

Wed 2009-06-03

Page 20: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

But your application isn’t the only thing to manage.

Wed 2009-06-03

Page 21: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Beneath the application

Application Server

Application Server

Application Server

Application Server

Application Server

cfengine and bcfg2 are popularcluster-level system configuration tools.

Reverse Proxy Cache

DatabaseCluster-level configuration

Cluster management applies to package management, updates, and soware configuration.

Wed 2009-06-03

Page 22: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

System configuration management

Deploys and updates packages, cluster-wide or selectively.

Manages arbitrary text configuration files

Analyzes inconsistent configurations (and converges them)

Manages device classes (app. servers, database servers, etc.)

Allows confident configuration testing on a staging server.

Wed 2009-06-03

Page 23: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

All on the management box

Management {Development

Integration

Staging

Deployment Tools

Monitoring

Wed 2009-06-03

Page 24: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

Monitoring

Wed 2009-06-03

Page 25: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Types of monitoring

Failure Capacity/Load

Analyzing Downtime

Viewing Failover

Troubleshooting

Notification

Analyzing Trends

Predicting Load

Checking Results of Configuration and Soware Changes

Wed 2009-06-03

Page 26: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Everyone needs both.

Wed 2009-06-03

Page 27: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

What to use

Failure/Uptime Capacity/Load

Nagios

Hyperic

Cacti

Munin

Wed 2009-06-03

Page 28: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Nagios

Highly recommended.

Used by Four Kitchens and Tag1 Consulting for client work, Drupal.org, Wikipedia, etc.

Easy to install on CentOS 5 using EPEL packages.

Easy to install nrpe agents to monitor diverse services.

Can notify administrators on failure.

We use this on Drupal.org.

Wed 2009-06-03

Page 29: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Hyperic

I haven’t used this much, but it’s fairly popular.

More difficult to set up than Nagios.

Wed 2009-06-03

Page 30: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Cacti

Highly annoying to set up.

One instance generally collects all statistics.(No “agents” on the systems being monitored.)

Provides flexible graphs that can be customized on demand.

Optimized database for perpetual statistics collection.

We use this on Drupal.org and for client sites.

Wed 2009-06-03

Page 31: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Munin

Fairly easy to set up.

One instance generally collects all statistics.(No “agents” on the systems being monitored.)

Provides static graphs that cannot be customized.

Wed 2009-06-03

Page 32: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

Cluster Problems

Wed 2009-06-03

Page 33: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Cache/session coherency

Systems that run properly on single boxes may lose coherency when run on a networked cluster.

Some caches, like APC’s object cache, have no ability to handle network-level coherency. (APC’s opcode cache is safe to use on clusters.)

memcached, if misconfigured, can hash values inconsistently across the cluster, resulting in different servers using different memcached instances for the same keys.

Session coherency can be helped with load balancer affinity.

Wed 2009-06-03

Page 34: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Cache regeneration races

Downside to network cache coherency: synched expiration

Hard to solve

Old Cached Item

Time

Expiration

New Cached Item

{All servers regenerating the item.

Wed 2009-06-03

Page 35: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Broken replication

MySQL slave servers get out of synch, fall further behind

No means of automated recovery

Only solvable with good monitoring and recovery procedures

Can automate removal from use, but requires cluster management tools

Wed 2009-06-03

Page 36: Building Infrastructure You Can Scale, Monitor, and Maintain · Building Infrastructure You Can Scale, Monitor, and Maintain A Presentation About Everything But MySQL David Strauss

FOUR KITCHENS

Server failure

Load balancers can remove broken or overloaded application reverse proxy caches.

Reverse proxy caches like Varnish can automatically use only functional application servers.

Cluster management tools like heartbeat2 can manage service IPs on MySQL servers to automate failover.

Conclusion: Each layer intelligently monitors and uses the servers beneath it.

Wed 2009-06-03