Development of High-loaded Systems (Category Architecture)
I found on my shelf an old book by Oleg Bunin, which began my acquaintance with high-load systems. This book is a collection of materials from HighLoad conferences. + + 2010-2011 yearly 2012 year. Officially, it is attributed to the team of authors, and Oleg Bunin acted as a publisher and compiler.
The book 400 It is an attempt not just to describe the technical characteristics of large systems, but to outline the principles of building architectures of the most advanced and visited Internet projects of that time. The book focuses on the principles of designing the architecture of high-load systems and the practical aspects of their implementation, drawing on the experience of real projects presented at HighLoad++ conferences. The book began with a basic textbook that included the following lessons: 1) First lesson, which contained a story about monolithic applications and service-oriented architecture, about the craft and industrial approach to the development of loaded applications, about vertical and horizontal scaling of applications, about three-tier architecture 2) Second lesson about the scaling of frontends, which contained a discussion of the distribution of statics, caching, logic on the front / back, scaling backends and working with traffic spikes, about balancing frontend requests using DNS 3) Third lesson About backend scaling, where the authors talked about the functional separation of backend services for scaling, horizontal scaling and the importance of low code connectivity (Apparently, low coupling.)Shared nothing approaches, layered architecture. Also here again we talked about caching, disability and warming up the cache 4) Fourth lesson With time scaling, where it was about asynchrony and delayed computing, using queues, a little bit about data consistency. Here was an example of designing a social media feed where these approaches could be used. 5) Fifth lesson about databases, where the authors talk about different types of databases, tuning queries, sharding, replication, clustering and denormalization, as well as about stored procedures.
At the time, the book was useful, but now it is more of a historical document. And if you want to read something relevant, then you should take the book by Martin Kleppman “High-loaded applications”, especially given that Martin writer second edition of the book.
#DistributedSystems #Architecture #SystemDesign #Software #SoftwareArchitecture