satyadeep musuvathy architect, yahoo!. balance between system, data and operations if even one of...

16
Lessons Learnt Developing Web Applications Satyadeep Musuvathy Architect, Yahoo!

Upload: florence-morgan

Post on 20-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Lessons Learnt Developing Web

ApplicationsSatyadeep Musuvathy

Architect, Yahoo!

Page 2: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Balance

Balance between System, Data and Operations

If even one of the legs is in-correct, the stool tends to topple

Page 3: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Systems

Page 4: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Systems EvolveDesign for evolution

There will always be one more “feature”

Page 5: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Designing For Evolution Have clear separation of concerns

API, Savvy?

Your web page, Sir

I canz do business

Separate Web and API interaction from the business logic

Page 6: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Designing For Evolution Manage State Carefully

State A

State B

State C

Web Applications are “State-full”. Worry about “OOM”

Memory is a “scarce” resource

“State-full”

Page 7: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Designing For Evolution Aggressively differentiate sync and a-sync jobs

Vs.

Synchronous

Asynchronous

Design and scale the synchronous aspects separately from the asynchronous jobs – Not all operations need to be synchronous

Page 8: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Data

Page 9: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Application DataMost Systems are I/O bound

In most cases I/O throughput defines “perceived” performance

Page 10: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Application DataMake data “Shardable”

“Shardable” data will allow you to scale out your data demands as the application grows.

Page 11: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Application DataConsider multiple stores for data

Grid Database

Consider shipping copy of the data to Grid or dedicated machines for batch or “secondary” tasks.

“Divide and Conquer”

Page 12: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Operations

Page 13: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

OperationsUtilization is very spiky

Plan for peak loads, but try to distribute processing over time to minimize over-provisioning.

Page 14: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

OperationsConstantly monitor systems

Constantly monitor the system for CPU, Memory, Disk and I/O

Have system “raise” events for critical issues rather then parsing log files.

Page 15: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

OperationsHave a failover plan

Plan and “TEST” backup systems. Look for and prevent domino effects of failure

Page 16: Satyadeep Musuvathy Architect, Yahoo!. Balance between System, Data and Operations If even one of the legs is in-correct, the stool tends to topple

Q & A

Thank You!