Startup Resources: Scalability
Learn how to scale your tech stack to handle more users, more traffic, and more data. See the "Scalability" chapter in Part II, Technologies for more info.
- Scalability Patterns
- Distributed Systems Reading
- Performance profiling and debugging tools and techniques
- Further reading
These startup resources are based on the book Hello, Startup: A Programmer's Guide to Building Products, Technologies, and Teams by Yevgeniy Brikman. These resources are a work in a progress. They are also open source, so you can add your contributions by submitting a pull request to the Hello, Startup GitHub Repository. To see how these resources fit into the bigger picture, check out the The Startup Checklist, which is a comprehensive collection of everything you need to do to launch a startup.
Scalability Patterns
Building Software Systems At Google and Lessons Learned
https://www.youtube.com/watch?v=modXC5IWTJIJeff Dean's talk at Stanford EE Computer Systems Colloquium. See also the slides.
Scalability at YouTube
https://www.youtube.com/watch?v=G-lGCC4KKokA talk by one of the original engineers at YouTube, Mike Solomon.
Distributed Systems Reading
Papers We Love
https://github.com/papers-we-love/papers-we-lovePapers We Love is a community built around reading, discussing and learning more about academic computer science papers. This repository serves as a directory of some of the best papers the community can find, bringing together documents scattered across the web.
Advanced Distributed Systems
https://courses.engr.illinois.edu/cs525/sp2011/sched.htmSyllabus from the CS 525 course at University of Illinois at Urbana-Champaign.
Performance profiling and debugging tools and techniques
Performance Analysis Methodology
http://www.brendangregg.com/methodology.htmlA performance analysis methodology is a procedure that you can follow to analyze system or application performance. These generally provide a starting point and then guidance to root cause, or causes.
USE Method: Linux Performance Checklist
http://www.brendangregg.com/USEmethod/use-linux.htmlThe USE Method provides a strategy for performing a complete check of system health, identifying common bottlenecks and errors. For each system resource, metrics for utilization, saturation and errors are identified and checked.