You need to scale your systems, how about talking directly to someone who has done that, from zero to scaling, and he would give you all the advices, and technical advices you need? This is what this book is all about!
Scalability is not only an interesting topic. One of the most common reasons to learn scalability is because it encompasses almost all aspects of software development, that is, programming, web, architecture, system architecture, design, protocols, and people - organizations.
Scalability, is also a topic where it’s difficult to find well organized material, it’s more of an experience topic, rather than learn topic. The fun part, is that there are a few books which took upon themselves the work to give us this material. There are a few great books about scalability, but, I have picked this one, because it’s brings up the combination of a great writer, fluent learning, getting into details, while, staying interesting, and most importantly, after you read that book, you can really be comfort about what scaling means and how you scale up a real world project! Now you need a good book and I have a great - awesome book for you! The book is Web Scalability For Startup Engineers.
I didn’t read it only because of scalability
This book is a great software engineers general guide book, after reading it you will notice your understanding of pure software development, and general architecture and design has increased, you will basically know how the “web” works! In addition the writing style is just excellent the author manages to put it all so clearly.
What the book covers
So what does the book cover, or what did I learn from it? many things I found hard to grasp by other books! here is the list:
- Evolution from single-server to multi-server architecture.
- Vertical scaling is great, but describes the limitations (a nice graph showing the high price you pay for vertical scaling).
- The power of simplicity how it effects scaling.
- SRP principle why it’s related to scalability.
- How your systems should be resilient to issues.
- Where to store state and how it effects scalability.
- Load balancers, web servers, caching, auto scaling.
- How to keep and when to keep services stateless.
- Scaling relational and non relational databases.
- Different layers of caching how to use consistently.
- Asynchronous vs Synchronous processing, when each is appropriate and how to use.
- You have all this data how do you implement search.
- Split your services and data by service type, by hashing etc.
I think this book is more tailored at software developers but not only, it really feels like its both clear and giving you an advices from someone who has been there.
Web Scalability For Startup Engineers. Is a great resource to take you up the road into being a professional software developer, having an overall knowledge of system design and how to build systems.