Download - Lookout Scaling Growing Pains

Transcript
Page 1: Lookout Scaling Growing Pains

LOOKOUT!GROWING PAINS

KYLE BARTON, LOOKOUT, INC.

Page 2: Lookout Scaling Growing Pains

THEN AND NOW

• Getting a solid product off of the ground

• Dealing with a growing user base

• Where we are today

Page 3: Lookout Scaling Growing Pains

GETTING OFF THE GROUNDMVP

Page 4: Lookout Scaling Growing Pains

• Try to reproduce locally with a test

• Production debugging

• Eye balling change sets

• Synclogs

HOW WE DEALT

Page 5: Lookout Scaling Growing Pains

WE STARTED GROWING

• More Users

• More Traffic

• More Developers

• More Problems

Page 6: Lookout Scaling Growing Pains

• Ran out of integer space for primary keys

• Load spikes

• Clients checked in at the same time

• No way to tell clients to back off

PROBLEMS

Page 7: Lookout Scaling Growing Pains

• More code going out in each deploy

• Difficult to diagnose issues after deploy

• Pretty much guaranteed rollbacks on deploy

PROBLEMS CONT...

Page 8: Lookout Scaling Growing Pains

• Implemented “load shedding”

• Under high load respond to client with “come back later” message

• Automate with ganglia checks

• Randomized client check in

• Picture Backup disabled by default

LOAD SPIKES

Page 9: Lookout Scaling Growing Pains

INTEGER OVERFLOW

• Created new tables

• Big int primary and foreign keys

• Application code to use new and old tables

• New data goes to new table

• Old data moved on login

• Background Process to update untouched records

Page 10: Lookout Scaling Growing Pains

GIANT DEPLOYS

• Feature rollouts

• Slowly enable a new features

• Configuration

• Ability to turn off new code without rolling back

Page 11: Lookout Scaling Growing Pains

WHERE WE ARE TODAY

Page 12: Lookout Scaling Growing Pains

PROBLEMS

• Syncml

• One endpoint to service all types of requests

• Bloated request and responses

• Team Structure

• Communication

• Too many meetings

Page 13: Lookout Scaling Growing Pains

• Versioned RESTful APIs on existing architecture

• Eventually end of life old clients that haven’t upgraded

DEPRECATE SYNCML

Page 14: Lookout Scaling Growing Pains

• Persisted chat

• Smaller teams

• Better documentation

TEAM STRUCTURE AND COMMUNICATION