Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services

Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services

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 systemsUse the side-car, adapter, and ambassador patterns to split your application into a group of containers on a single machineExplore loosely coupled multi-node distributed patterns for replication, scaling, and communication between the componentsLearn distributed system patterns for large-scale batch data processing covering work-queues, event-based processing, and coordinated workflows


10 in stock

Secure Payments

Pay with the worlds payment methods.

Discount Available

Covers payment and purchase gifts.

100% Money-Back Guarantee

Need Help?

(484) 414-5835

Share Our Wines With Your Friends & Family


Editorial Reviews

About the Author

Brendan Burns is a Partner Architect in Microsoft Azure, working on Azure Container Service and Azure Resource Manager. Prior to Microsoft he worked at Google in the Google Cloud Platform, where he co-founded the Kubernetes project and helped build APIs like Deployment Manager and Cloud DNS. Before working on cloud, he worked on Google’s web-search infrastructure, with a focus on low-latency indexing. He has a PhD in Computer Science from the University of Massachusetts Amherst with a specialty in Robotics. He lives in Seattle with his wife Robin Sanders, their two children and a cat Mrs. Paws, who rules over their household with an iron paw.

–This text refers to the paperback edition.

From the Publisher

Designing Distributed Systems atterns and Paradigms for Scalable, Reliable Services

From the Preface

Who Should Read This Book

At this point, nearly every developer is a developer or consumer (or both) of distributed systems. Even relatively simple mobile applications are backed with cloud APIs so that their data can be present on whatever device the customer happens to be using. Whether you are new to developing distributed systems or an expert with scars on your hands to prove it, the patterns and components described in this book can transform your development of distributed systems from art to science. Reusable components and patterns for distributed systems will enable you to focus on the core details of your application. This book will help any developer become better, faster, and more efficient at building distributed systems.

Why I Wrote This Book

Throughout my career as a developer of a variety of software systems from web search to the cloud, I have built a large number of scalable, reliable distributed systems. Each of these systems was, by and large, built from scratch. In general, this is true of all distributed applications. Despite having many of the same concepts and even at times nearly identical logic, the ability to apply patterns or reuse components is often very, very challenging. This forced me to waste time reimplementing systems, and each system ended up less polished than it might have otherwise been.

The recent introduction of containers and container orchestrators fundamentally changed the landscape of distributed system development. Suddenly we have an object and interface for expressing core distributed system patterns and building reusable containerized components. I wrote this book to bring together all of the practitioners of distributed systems, giving us a shared language and common standard library so that we can all build better systems more quickly.

The World of Distributed Systems Today

Once upon a time, people wrote programs that ran on one machine and were also accessed from that machine. The world has changed. Now, nearly every application is a distributed system running on multiple machines and accessed by multiple users from all over the world. Despite their prevalence, the design and development of these systems is often a black art practiced by a select group of wizards. But as with everything in technology, the world of distributed systems is advancing, regularizing, and abstracting. In this book I capture a collection of repeatable, generic patterns that can make the development of reliable distributed systems more approachable and efficient. The adoption of patterns and reusable components frees developers from reimplementing the same systems over and over again. This time is then freed to focus on building the core application itself.

Additional information

Best Sellers Rank

#207,489 in Kindle Store (See Top 100 in Kindle Store) #4 in System Administration Disaster & Recovery #9 in Windows Administration (Kindle Store) #18 in System Administration

Customer Reviews

/* * Fix for UDP-1061. Average customer reviews has a small extra line on hover * https