Book description
Every distributed system strives for reliability, performance, and quality, but building such a system is hard. Establishing a set of design patterns enables software developers and system architects to use a common language to describe their systems and learn from the patterns and practices developed by others.
The popularity of containers and Kubernetes paves the way for core distributed system patterns and reusable containerized components. This practical guide presents a collection of repeatable, generic patterns to help guide the systems you build using common patterns and practices drawn from some of the highest performing distributed systems in use today. These common patterns make the systems you build far more approachable and efficient, even if you've never built a distributed system before.
Author Brendan Burns 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.
This fully updated second edition includes new chapters on AI inference, AI training, and building robust systems for the real world.
- 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 multinode distributed patterns for replication, scaling, and communication between components
- Learn distributed system patterns for large-scale batch data processing covering work queues, event-based processing, and coordinated workflows
Publisher resources
Table of contents
- Preface
- I. Foundational Concepts
- 1. Introduction
- 2. Important Distributed System Concepts
- II. Single-Node Patterns
- 3. The Sidecar Pattern
- 4. Ambassadors
- 5. Adapters
- III. Serving Patterns
- 6. Replicated Load-Balanced Services
- 7. Sharded Services
- 8. Scatter/Gather
- 9. Functions and Event-Driven Processing
- 10. Ownership Election
- IV. Batch Computational Patterns
- 11. Work Queue Systems
- 12. Event-Driven Batch Processing
- 13. Coordinated Batch Processing
- 14. Monitoring and Observability Patterns
- 15. Artificial Intelligence Inference and Serving
- 16. Common Failure Patterns
- Conclusion: A New Beginning?
- Index
- About the Author
Product information
- Title: Designing Distributed Systems, 2nd Edition
- Author(s):
- Release date: December 2024
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098156350
You might also like
book
Designing Distributed Systems
Without established design patterns to guide them, developers have had to build distributed systems from scratch, …
book
Designing Event-Driven Systems
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need …
book
Systems Performance, 2nd Edition
covers concepts, strategy, tools, and tuning for operating systems and applications, using Linux-based operating systems as …
book
Designing Data-Intensive Applications, 2nd Edition
Data is at the center of many challenges in system design today. Difficult issues such as …