Follow the Author
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services Kindle Edition
Without established design patterns to guide them, developers have had to build distributed systems from scratch, and most of these systems are very unique indeed. Today, the increasing use of containers has paved the way for core distributed system patterns and reusable containerized components. This practical guide presents a collection of repeatable, generic patterns to help make the development of reliable distributed systems far more approachable and efficient.
Author Brendan Burns—Director of Engineering at Microsoft Azure—demonstrates how you can adapt existing software design patterns for designing and building reliable distributed applications. Systems engineers and application developers will learn how these long-established patterns provide a common language and framework for dramatically increasing the quality of your system.
- Understand how patterns and reusable components enable the rapid development of reliable distributed systems
- Use the side-car, adapter, and ambassador patterns to split your application into a group of containers on a single machine
- Explore loosely coupled multi-node distributed patterns for replication, scaling, and communication between the components
- Learn distributed system patterns for large-scale batch data processing covering work-queues, event-based processing, and coordinated workflows
About the Author
- ASIN : B079YTM4FC
- Publisher : O'Reilly Media; 1st edition (20 February 2018)
- Language : English
- File size : 5239 KB
- Simultaneous device usage : Unlimited
- Text-to-Speech : Enabled
- Screen Reader : Supported
- Enhanced typesetting : Enabled
- X-Ray : Not Enabled
- Word Wise : Not Enabled
- Print length : 163 pages
- Best Sellers Rank: 406,773 in Kindle Store (See Top 100 in Kindle Store)
- Customer Reviews:
About the author
Review this product
Top reviews from other countries
The book advertises itself as being about distributed systems, but the first half is a handful of design patterns implemented over Kubernetes services, written at a level for engineers with about 3 years experience, in their first or second job.
The focus is very much on web apps that are request-oriented, and are only stateful to the degree that they are sticky to the client. If you're trying to do something more interesting than scaling up a CRUD web app, with distributed transactions, workflow systems etc. this book is not the place to go. In fact there's even an extremely cut down workflow example (a user sign up process presented as a linear list of tasks, an "event-based pipeline") without any mention of the concept of a workflow engine, or any consideration of rollback and retries, error states and recovery. It seems oddly blinkered.
There is no mention of back-pressure in the index, and thus I presume the book. This is a fatal flaw. The only response to load discussed is scaling up, not scaling back or dropping requests. Rate limiting is briefly mentioned, but only at the edge of the system, not in a responsive way to the state of the system. This book will not warn new developers about the surprising failure modes you see when you don't have back-pressure. Lack of back-pressure usually means having a system failure cliff edge instead of gradual degradation of service, and it's something you learn on the job if you don't know about it.