Tech Talk: Scaling Twitter Core Infrastructure
From the YouTube video: Flight Lightning - Scaling Twitter core infrastructure
- This talk presents a handful of principles to help you scale your system
- Separate concerns
- Don’t run everything in one monolithic app
- Break things down into separate services, subsystems, etc
- Easier to fix, scale, develop for, etc
- Abstraction is the Soul of Scalability
- Good abstractions allow you to reason easily about the system, develop for it, divide up work, reduce dependencies, etc.
- Refactoring early is much less painful than trying to do so later. Make sure you create good abstractions early!
- Abstractions evolve
- Visibility is King
- Expose visibility into your systems via metrics, logging, and tracing tools.
- You need visibility in order to solve problems (and anticipate them)
- Systems Knowledge is Important for Diagnosis
- Abstractions hide the details and are great when everything works
- But when things break, you want to have systems knowledge
- The underlying system can have issues that percolate all the way up to the app
- Own the Master Switch
- Have a system that gives you the power to rate-limit requests.
- When things fail, you may need to turn down traffic to allow services to come back up.
- Or when you get slammed, everything may grind to a halt, so no requests are serviced.