94
EffectiveMySQL.com - Performance, Scalability & Business Continuity Successful Scalability Principles - Part 1 Ronald Bradford http://ronaldbradford.com 2012.08

Successful Scalability Principles - Part 1

Embed Size (px)

DESCRIPTION

Every website wants to become successful. Few websites however undertake the basic and fundamental steps to build a rock solid foundation to ensure a scalable

Citation preview

Page 1: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

Successful Scalability Principles - Part 1

Ronald Bradfordhttp://ronaldbradford.com

2012.08

Page 2: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

OUTLINE

Necessary PrinciplesSystem ArchitectureData AvailabilityBest PracticesBeing proactive

Page 3: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity11

Page 4: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ACTION

Integrated monitoring and instrumentation1

Page 5: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Question:

How do you know when your server is down or not accessible?

Answer:

The users will let us know.1✘

Page 6: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

1

Page 7: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Monitoring/AlertingGraphicalHistoricalNecessaryGenerally missing/incompleteUseless for real-time analysis1

Page 8: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Monitoring/AlertingGraphicalHistoricalNecessaryGenerally missing/incompleteUseless for real-time analysis1REACTIVE

Page 9: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

http://rb42.com/monitoring-needs1

Page 10: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Dashboard

The state of NOW

Near real-time statistics

Sampling at 1s/3s/5s

e.g. 0.1% of throughput

http://rb42.com/monitoring-needs1

Page 11: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Dashboard

The state of NOW

Near real-time statistics

Sampling at 1s/3s/5s

e.g. 0.1% of throughputPROACTIVE

http://rb42.com/monitoring-needs1

Page 12: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

11

Page 13: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

InstrumentationImportant to business viability

e.g. orders per minute (KPI)

page load time

Seamless implementationi.e. no code changes to view real-time

extensible 11

Page 14: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

InstrumentationImportant to business viability

e.g. orders per minute (KPI)

page load time

Seamless implementationi.e. no code changes to view real-time

extensible 11PROACTIVE

Page 15: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

Why

Monitoring + Instrumentation = Preemptive Analysis1

Page 16: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

How NOT TO

1✘

Page 17: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW TO

1✔

< 1 second

Page 18: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHY

Preemptive Analysis

Fail early

Faster user response

Less physical resource impact1

Page 19: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

TIP

1

Page 20: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

TIP

Have a status website

allow for comments (e.g. blog)

1

Page 21: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

TIP

Have a status website

allow for comments (e.g. blog)

Have a public dashboard website1

Page 22: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

TIP

Have a status website

allow for comments (e.g. blog)

Have a public dashboard website

Host them somewhere else!1

Page 23: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

Page 24: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

Page 25: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity22

Page 26: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ACTION

Seamless automated

server deployment2

Page 27: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Actual Client

100+ production database servers

Full-time DBAs

No automated software installation

No single documented installation process

No version control

No auditing/verification 2✘

Page 28: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Basics

Version Control

Automated Build & Release

Integrated Monitoring2

Page 29: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Intermediate

Health Checks

Runtime config file management

Benchmarking 2

Page 30: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Advanced

Server request queue

Automated discovery

Proactive scaling (up & down)2

Page 31: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

GOAL

Consistent and timely provisioning

Unattended installation with correct and reproducible configuration

Automated discovery2✔

Page 32: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity33

Page 33: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ACTION

Disaster is

inevitable 3

Page 34: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Question:Have you ever performed a database recovery?

Answer:No, why? 3

Page 35: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Consultant:Do you know that your daily backups only recover the data up to that time (e.g. 1 am). You know you have lost all your sales(aka $2 million sales today) and data changes since then.

Customer:No, I didn’t know that. 3

Page 36: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

3

Page 37: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Have a DR plan

3

Page 38: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Have a DR plan

Documented

3

Page 39: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Have a DR plan

Documented

Tested 3

Page 40: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Have a DR plan

Documented

Tested

Timed 3

Page 41: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Have a DR plan

Documented

Tested

Timed

Verified 3

Page 42: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

3

Page 43: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Test under production conditions

3

Page 44: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Test under production conditions

System Load

3

Page 45: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Test under production conditions

System Load

Database Size 3

Page 46: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Test under production conditions

System Load

Database Size

End to End 3

Page 47: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

GOAL

Know and practice for disaster

Provide confidence to management

Be as confident about your recovery as your scalability3✔

Page 48: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR!

What does your website look like when it’s down?3

Page 49: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR

3Google Picasa

Page 50: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR

3✘

Page 51: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR

3Mozilla

Page 52: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR

3✔

Page 53: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR

3✔

Page 54: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity44

Page 55: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ACTION

ApplicationProgramming

Interface4

Page 56: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

3 access paths to same data with different business rules

Public APIApplication web siteBatch processes 4

Page 57: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHY an API?

One code path for business functionality

Implied business documentation

Enforced data exchange standard

Testability 4

Page 58: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

GOAL

Technology independence

Business specification dependence (API)

Stress testable 4✔

Page 59: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

REQUIREMENTS

Input Specification

Output Specification

Standard for data communication

Throughput needs

Latency requirements

Page 60: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR!

Testing is not about what works, it’s about breaking your software4

Page 61: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity55

Page 62: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ACTION

Support different levels of data

availability5

Page 63: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

5

Page 64: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Data can be:

5

Page 65: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Data can be:

Read & Write

5

Page 66: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Data can be:

Read & Write

Read 5

Page 67: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Data can be:

Read & Write

Read

Cached 5

Page 68: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Data can be:

Read & Write

Read

Cached

No Access 5

Page 69: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Development Team:

We need a maintenance window for software

upgrades and new releases.5

Page 70: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Management Team:

No Downtime5

Page 71: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Development Team:

But we need this to fix problems and improve

performance. 5

Page 72: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

Management Team:

No Downtime5

Page 73: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

EXAMPLE

What is your definition of no

downtime?5

Page 74: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHY

Support downtime

Software upgrades

Support disasters

Reduce high load

Support partial functionality5

Page 75: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

GOAL

Meet the business needs of availability

There are ways to give greater perception of availability5

Page 76: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity66

Page 77: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ACTION

Support different scalability principles6

Page 78: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Read Scalability

Write Scalability

Caching 6

Page 79: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

HOW

Depends on your R/W ratio

Depends on your business needs

Depends on rate of data change (caching) 6

Page 80: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

ISSUES

Consistency

Data Interoperability

6

Page 81: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

GOAL

Support large scale growth with appropriate software architecture

Minimize human interaction

Ongoing review and improvement6✔

Page 82: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

SIDEBAR!

6Availability options & scalability principles = scalable datastore

Page 83: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity++

Page 84: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHAT's NEXT

I only had one hour!+

Page 85: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHAT's NEXT

+Part 2

Page 86: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHAT's NEXT

Reduce deployment time

The right business metrics

Team dynamics

Managing risk

Continual improvement

Data interoperability

... +Part 2

Page 87: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

WHAT's NEXT

Reduce deployment time

The right business metrics

Team dynamics

Managing risk

Continual improvement

Data interoperability

... +AsynchronousWrite once dataConsistency

Part 2

Page 88: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

CC

Page 89: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

CONCLUsION

Monitoring. Before, during and after NOW.

You may not be able to predict the future but you can preempt the future.

Operate below 90%. That 10% is your insurance policy. Invest in insurance.C

Page 90: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

CONCLUSION

Does your business exist without your data?

How long can your site be unavailable before customers go elsewhere?

C

Page 91: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

CONCLUSION

Support 3 levels of real time data accessRead/Write, Read and no access

Support 3 different aspects of scalabilityRead, Write and CachingC

Page 92: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

REFERENCE

Presentation

The most common MySQL scalability mistakes, and how to avoid them.@

Page 93: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuity

REFERENCE

1. My website is slow?

2. I want to add new H/W. How do I change my application to support this?

3. The database is slow. My webpage takes five seconds to load.

4. Why is my database executing so many qps?

5. My server has crashed with a hard drive failure

6. My replication slave can't keep up?

7. I can't access my website?

8. 8. Why is my database so large?

9. My website seems to freeze or responds randomly?@

Page 94: Successful Scalability Principles - Part 1

EffectiveMySQL.com - Performance, Scalability & Business Continuityhttp://effectiveMySQL.comRonald Bradford