152
Redundant Array of Inexpensive Datacenters Charles Valentine and Chris Graf June 2013

[@IndeedEng] Redundant Array of Inexpensive Datacenters

Embed Size (px)

DESCRIPTION

Video available: http://youtu.be/hOsA5UpPUSU Learn how Indeed built one of the fastest and most reliable websites in the world. Indeed Operations ensures indeed.com is always available and always fast for the jobseeker. Operations leaders Charles Valentine and Chris Graf will share how we configure and provision multiple datacenters around the world to provide a massively scalable platform for connecting job seekers with jobs. Charles and Chris will detail a simple and inexpensive method to build a platform that provides DNS-based global load balancing and failover, provider portability, and disposable datacenters. Speakers: Charles Valentine (VP of Technology Services at Indeed) leads the Operations, IT, and Security teams. Prior to joining Indeed in 2011, Charles served as VP Technology Services at The Knot. Chris Graf has managed operations at Indeed since 2011. In that time, Indeed's traffic has grown by more than 300%. Prior to Indeed, Chris managed Web operations in the online gaming industry.

Citation preview

Page 1: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Redundant Array ofInexpensive Datacenters

Charles Valentine and Chris GrafJune 2013

Page 2: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Overview

Charles ValentineVP, Technology Services

Page 3: [@IndeedEng] Redundant Array of Inexpensive Datacenters

I helppeopleget jobs.

Page 4: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed

● 100 million unique visitors per month● Over 50 countries and 26 languages● 3 Billion job searches per month

Page 5: [@IndeedEng] Redundant Array of Inexpensive Datacenters
Page 6: [@IndeedEng] Redundant Array of Inexpensive Datacenters
Page 7: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed Ops● Assist development in designing new products● Engineer scalable systems to support applications● Monitor applications● Fix systems when they break

Page 8: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed Lingo

Datacenter = Point of Presence

Page 9: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Each Presence is Full Stack

● Applications● Services● Read/Write Data systems● Communications● Monitoring

We need serious processing power in each datacenter!

Page 10: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Applications per Datacenter

● Over 40 Java-based web applications● Over 90 Java-based services

Page 11: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Data Systems

● MySQL databases● Mongo databases● Memcached instances● LSM Trees● Search indexes● Numerous other data stores

Page 12: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Goals

● Fast● Reliable● Inexpensive

Page 13: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Triple Constraint

Fast

Reliable

Inexpensive

Page 14: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Traditional Method

Fast

Reliable

Inexpensive

Page 15: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed Method

Fast

Reliable

Inexpensive

Page 16: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Fast

Speed is a product feature● Server Time● Client Time

Page 17: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Monthly Job Searches

Page 18: [@IndeedEng] Redundant Array of Inexpensive Datacenters

1 ms, 3 Billion Times/Month

1 ms = 34 job seeker days per month

Page 19: [@IndeedEng] Redundant Array of Inexpensive Datacenters

20 ms, 3 Billion Times/Month

20 ms = 22 jobseeker months

Page 20: [@IndeedEng] Redundant Array of Inexpensive Datacenters

100 ms, 3 Billion Times/Month

100 ms = 9.5 jobseeker years

Page 21: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Reliable

Reliability is a product feature

Page 22: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Impact of Downtime

8,000Disappointed Job Seekers every minute

Page 23: [@IndeedEng] Redundant Array of Inexpensive Datacenters

People get hired on Indeed

7 seconds

Page 24: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Availability

● Jobseekers can find jobs● Less focus on mitigating failure● More focus on recovering quickly

Page 25: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Availability is Good for Job Seekers

9's

Page 26: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Good

99.9% availability => down for 525 minutes

At peak 4,500 jobseekers don't get a job

Page 27: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Better

99.99% availability => down for 52 minutes

At peak 450 jobseekers don't get a job

Page 28: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Almost Best

99.999% uptime => down for 5 minutes

At peak 45 jobseekers don't get a job

Page 29: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed is Always there for Job Seekers

Availability > 99.999%

Less than 5 minutes downtime per year

Page 30: [@IndeedEng] Redundant Array of Inexpensive Datacenters

How It WorksChris Graf

Operations Manager

Page 31: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Maximize Availability

Beyond 99.999%No downtime, scheduled or otherwise

Page 32: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Maximize Performance

Optimize page load times to the millisecond

Page 33: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Minimize Cost

Minimize cost while meeting performance and availability goals

Page 34: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Hosting Models

● Traditional Colocation● The Cloud● Managed Hosting

Page 35: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Traditional Colocation

● You buy the servers, network gear, cables...● You send people to set it up● You send people to fix stuff when it breaks● You manage your own pipes (maybe)

Page 36: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Traditional Colocation Expansion

1. Acquire rack space2. Buy the hardware3. Wait for manufacturing4. Wait for delivery5. Send people to the datacenter to set it all up

Expansion can take weeks

Page 37: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Traditional Colocation

Good if you have● Fairly static environment● Really beefy hardware● Some centralized functionality● Time to wait● Lots of cap-ex budget● Like signing long-term deals● People to do stuff

Page 38: [@IndeedEng] Redundant Array of Inexpensive Datacenters

● You rent access to computing power● You pay to reserve it if you aren't using it● Usually abstracted from hardware layer

The Cloud

Page 39: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Expanding Cloud-based systems

1. Order new instances2. Wait a few minutes3. Provision them

Expansion takes minutes.

Page 40: [@IndeedEng] Redundant Array of Inexpensive Datacenters

The Cloud is good!

If you have significant, unpredictable changes in load

Page 41: [@IndeedEng] Redundant Array of Inexpensive Datacenters

The Cloud is bad!

Costs more if you need all your instances available all of the time

Page 42: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Managed Hosting

● Rent hardware from provider● Provider buys and hosts servers, network,

etc.● Provider deals with hardware issues

Page 43: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Expanding Managed Hosting

1. Order new servers2. Wait a few hours3. Provision

Expansion takes hours (depending on provider)

Page 44: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed Uses Managed Hosting

Least expensive overall

Access to real bare metal hardware

Agile enough

Page 45: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Steps for beyond 99.999% uptime

1. Find a provider2. Sign contract for 100% uptime with 100%

revenue protection3. Profit

Right?

Page 46: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Providers "guarantee" availability

"Service Level Agreement" (SLA) guarantees some percentage of uptime

Page 47: [@IndeedEng] Redundant Array of Inexpensive Datacenters

SLA: brief outages aren't outages

Less than 30 minutes downtime not counted against "100% SLA"

One 5-minute outage per month < 99.99%

Two 25-minute outages per month < 99.9%

The provider can call that 100% available

Page 48: [@IndeedEng] Redundant Array of Inexpensive Datacenters

SLA: maintenance is not downtime

Scheduled maintenance not counted against SLA

1 hour maintenance each month < 99.9%

The provider can call that 100% available

Page 49: [@IndeedEng] Redundant Array of Inexpensive Datacenters

SLA credits don't cover your business

You get a refund for the services, not for lost business and lost customer confidence

Providers lose your hosting fees

You lose your revenue

Page 50: [@IndeedEng] Redundant Array of Inexpensive Datacenters

100% is not really 100%

Hosting is complicated

A single datacenter is rarely 100% available

Page 51: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Bug in provider hardware caused total loss of Internet access under certain load

Core network problem

Page 52: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Power outage1. Utility power was disrupted2. Backup generator and UPS couldn't handle load3. Core network went offline4. Servers lost power5. Upon power restoration, router did not recover

Page 53: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Power Outage Aftermath● Event duration = 54 minutes● Recovery duration = 12 hours● 5% monthly credit for affected hardware

Page 54: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Backhoe Induced Fiber Failure (BIFF)

Page 55: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Wet servers

Tornado peeled back the roof of an AT&T datacenter in 2004.

Page 56: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Other Disasters

● Hurricanes● Floods● Earthquakes● Fires● Etc.

Page 57: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Need better uptime than providers

Can only get ~99.7% after asterisks

We have to build something better

Page 58: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Save a document to a hard disk

Hard Disk

Doc

Page 59: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Saved

Hard Disk

Doc

Page 60: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Disk failure

Hard Disk A

Page 61: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Disaster Recovery

Restore from an external USB drive?

Page 62: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Redundant Storage

Simple case - RAID 1

Hard Disk A

Hard Disk B

Page 63: [@IndeedEng] Redundant Array of Inexpensive Datacenters

RAID - Save it twice

Hard Disk A

Hard Disk B

Doc

Page 64: [@IndeedEng] Redundant Array of Inexpensive Datacenters

RAID - Two copies of everything

Hard Disk A

Hard Disk B

Doc Doc

Page 65: [@IndeedEng] Redundant Array of Inexpensive Datacenters

RAID

Hard Disk A

Hard Drive B

Doc Doc

Page 66: [@IndeedEng] Redundant Array of Inexpensive Datacenters

RAID == Redundant Array of Inexpensive Datacenters

Datacenter A

Datacenter B

Jobseekers

Page 67: [@IndeedEng] Redundant Array of Inexpensive Datacenters

RAID makes datacenters more reliable

Datacenter A

Datacenter B

Jobseekers

Page 68: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Building a more reliable system

Using inexpensive, less reliable components

Page 69: [@IndeedEng] Redundant Array of Inexpensive Datacenters

99.7% in, 99.999% out

Now our system can get better availability as a whole than any single provider can give us.

Page 70: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Expect your datacenter to fail

Failure is inevitable

Design for it

Page 71: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Simpler datacenters with RAID

Only need one of everything inside each datacenter:● Firewalls● Load balancers● Servers provisioned primarily for capacity not

redundancy

Page 72: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Primary and secondary datacenters

21

Page 73: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Datacenter level redundancy

Protects against a single datacenter failure

Page 74: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Datacenter level redundancy

Protects against a single datacenter failure

...

But there are problems that can affect more than one datacenter on the same provider

Page 75: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Denial of service attacks

Distributed denial of service attack against another customer who had servers in the same facilities took multiple facilities offline

Page 76: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Network configuration errors

Provider pushed a bad global route which took their entire global network offline

Page 77: [@IndeedEng] Redundant Array of Inexpensive Datacenters

The biggest threat

Humans

Page 78: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Protect against global provider failure

Use multiple providers to get provider-level redundancy

Page 79: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Provider-level redundancy

21

Page 80: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Provider-level redundancy

21 XX

Page 81: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Recovering from Failure

● Offline● Active/Passive● Active/Active

Page 82: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Offline

● One active datacenter handles all traffic● Backup systems are offline and incomplete● Restore backups to new systems● Downtime during switchover is ~days

Page 83: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Active / Passive (Dark)

● One active datacenter handles all traffic● A second datacenter has provisioned

systems and all data● Switch from primary to secondary● Downtime during switchover is minutes to

hours

Page 84: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Active / Active

● Every datacenter handles traffic● Data and systems are replicated● Failover activated automatically● Downtime during switchover measured in

seconds● Scales beyond two facilities

Page 85: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Jobseeker Impact

Offline: extended downtime for all jobseekers

Active/Passive: some downtime for all jobseekers

Active/Active: brief downtime for some jobseekers

Page 86: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Which jobseekers go to which datacenter?

Offline: go to single datacenter

Active/Passive: go to single datacenter

Active/Active: go to many datacenters?

Page 87: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Send jobseekers to the best datacenter

Use dynamic DNS service to send job seekers to the best, healthy data center

Page 88: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Anycast DNS

Resolving same hostname to different IP addresses

● Client A: nslookup www.indeed.comServer: dns.client-a.com

Address: 1.1.1.1

● Client B: nslookup www.indeed.comServer: dns.client-b.com

Address: 2.2.2.2

Page 89: [@IndeedEng] Redundant Array of Inexpensive Datacenters

DNS Lookup

JobseekerA

Jobseeker DNS

Server5.5.5.5

Indeed DNS Service

www.indeed.com

1.1.1.1

www.indeed.com

1.1.1.1

Page 90: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Vary response from primary DNS

Indeed DNS Service

www.indeed.com

1.1.1.1

www.indeed.com

1.1.1.1

Indeed DNS Service

www.indeed.com

2.2.2.2

www.indeed.com

2.2.2.2

Jobseeker DNS

Server5.5.5.5

Jobseeker DNS

Server8.8.8.8

JobseekerA

JobseekerB

Page 91: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Similar jobseekers get similar responses

Indeed DNS Service

www.indeed.com

1.1.1.1

www.indeed.com

1.1.1.1

Indeed DNS Service

www.indeed.com

2.2.2.2

www.indeed.com

2.2.2.2

Indeed DNS Service

www.indeed.com

2.2.2.2

www.indeed.com

2.2.2.2

Jobseeker DNS

Server5.5.5.5

Jobseeker DNS

Server8.8.8.8

Jobseeker DNS

Server8.8.8.8

JobseekerA

JobseekerB

JobseekerC

Page 92: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Remap jobseekers via DNS changes

Indeed DNS Service

www.indeed.com

1.1.1.1

www.indeed.com

1.1.1.1Reconfig

Indeed DNS Service

www.indeed.com www.indeed.com

2.2.2.22.2.2.2

Jobseeker DNS

Server5.5.5.5

Jobseeker DNS

Server5.5.5.5

JobseekerA

JobseekerA

Page 93: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Outsource your DNS service

Doing this well is an investment

Page 94: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Outsource your DNS service

● Robust● Flexible● Inexpensive

Our core competency is jobs

Their core competency is DNS

Page 95: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Global DNS Service

Page 96: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Degradation and Failure

Manually switch datacenter on service degradation

Automatically switch datacenter on failure

Page 97: [@IndeedEng] Redundant Array of Inexpensive Datacenters

DNS propagation delays

1. Healthcheck cycle - up to 30 seconds2. Healthcheck server to nearest PoP3. Jobseeker's DNS server cache refresh4. Jobseeker's local DNS cache refresh

Page 98: [@IndeedEng] Redundant Array of Inexpensive Datacenters

DNS Time-to-live (TTL)

TTL tells local name servers and clients how long to wait before looking up a domain name again

TTL limits load, but also slows change propagation

Page 99: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Some clients and servers ignore TTL

We specify a 30 second TTL, but local DNS servers and clients can ignore it

Page 100: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Impact of propagation delay

90 second traffic hole

Page 101: [@IndeedEng] Redundant Array of Inexpensive Datacenters

30 minute tailWell-behaved clients

Ignoring our TTL

Page 102: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Big Picture90 second hole

Failing datacenter

Total traffic

Page 103: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Accepting DNS limitations

Complete datacenter failure is extremely rare

Predictable limitation

Massive costs to reduce propagation delay

Page 104: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Remapping Manually

The same system allows us to reroute traffic whenever we want● Datacenter maintenance● Non-critical performance problems● Non-critical feature loss● Other degradation of jobseeker experience

Page 105: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Datacenter Redirection

datacenter disabled

traffic moves to others

Page 106: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Anycast DNS for performance

This capability is also used to improve performance

Page 107: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Closer to the jobseekers

The DNS service can give the IP address of the datacenter closest to the jobseeker.

Page 108: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Network hops

Based on network hops between jobseeker DNS server and our DNS service POP

Page 109: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Network paths

Estimates how many networks traffic must pass through to reach our servers

Page 110: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Count hops

Picks estimated shortest path

Page 111: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Optimize for network distance

We can push our data center presences closer to the jobseekers to reduce network latency

Page 112: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Datacenters for redundancy only

Page 113: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Fast for some jobseekers

Page 114: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Datacenters close to the jobseekers

Page 115: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Fast for most jobseekers

Page 116: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Sent to the East Coast

Page 117: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Sent to Central US

Page 118: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Sent to the West Coast

Page 119: [@IndeedEng] Redundant Array of Inexpensive Datacenters

No downtime for datacenter replacement

Incrementally send traffic to new datacenters

Incrementally reduce traffic to old data centers

Page 120: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Move West Coast hosting?

?

Page 121: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Move West Coast hosting!

-20 ms

Page 122: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Move European hosting?

?

Page 123: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Don't move European hosting!

+50 ms!

Page 124: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Search Engine Performance

Source GrabPerf.org

Page 125: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Page Load Time

1,000ms

9,000ms

Page 126: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Summary and ResultsCharles Valentine

Page 127: [@IndeedEng] Redundant Array of Inexpensive Datacenters

● Higher-capacity network equipment● Redundant firewalls● Redundant load balancers● Bigger Internet connections● Redundant Internet connections

This is "vertical scaling."

Traditional Scaling Model

Page 128: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Horizontal Scaling with RAID

Add capacity by adding datacenters

Add redundancy by adding datacenters

Rent "good" datacenters, not "best"

Page 129: [@IndeedEng] Redundant Array of Inexpensive Datacenters

You can RAID too!

Page 130: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Avoid using proprietary features

● Load balancer● Security devices● Virtualization● Servers

Page 131: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Be Hardware Agnostic

Page 132: [@IndeedEng] Redundant Array of Inexpensive Datacenters

More potential providers

Page 133: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Use free software

No licensing costs or recurring maintenance fees

Page 134: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Agile Providers

● New hardware racked and ready in a few hours

● No need to over provision

Page 135: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Automate configuration

● Cobbler● Puppet

Page 136: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Rent instead of buying

● Obsolete hardware is not your problem● No depreciation● No hardware maintenance● No need to hire people to maintain the hardware

Page 137: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Architect Applications for RAID

Work with your development teams

Page 138: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Traditional Hardware Scaling

● Old hardware supports baseline traffic● New hardware supports growth

Page 139: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Indeed Hardware Scaling

Old hardware gets replaced by new, on demand

Page 140: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Moore's Law

Hardware is always getting better● Faster processors● More memory per chassis● Larger, faster disks

Page 141: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Higher capacity, lower cost

● Number of machines drives cost● Power of machines drives cost● More machines => more problems● Compute power grows faster than compute

cost

Page 142: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Replace hardware every 18 months

Managed hosting+

Moore's Law+

RAID=

new and powerful hardwareevery 18 months

Page 143: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Amazon EC2?

● Amazon is a single provider● Costs more to run 24x7

○ 2x without bandwidth cost● Can't be as close to the jobseeker

Page 144: [@IndeedEng] Redundant Array of Inexpensive Datacenters

What RAID gets you

● Servers closer to your customers● Disposable datacenters

○ Datacenter-level failover○ Get modern hardware every 18 months

● Many hosting options

Page 145: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Spend Time On...

● Automation● Managed DNS● Investigating Providers● Monitoring

Page 146: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Spend Less On

● Proprietary hardware● Network Infrastructure● Support Contracts● Software Licenses● Headcount

Page 147: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Monthly Server Count vs Job Search

Page 148: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Inexpensive

● Cost as a percentage of revenue● Cost of delivery per job search

Page 149: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Revenue vs Infrastructure Cost

Page 150: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Revenue/Search vs. Cost/Search

Page 151: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Fast● 100 ms average client time

Reliable● > 99.999% availability in 2012

Cost Effective● Cost of delivery < 0.5% of revenue

RAIDing FTW

Page 152: [@IndeedEng] Redundant Array of Inexpensive Datacenters

Q&A