Do you recommend any good book about distributed systems and cloud computing?
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
When exploring the fields of distributed systems and cloud computing, the literature can be as complex as the subject matter itself. Given the rapid evolution and technical depth of these areas, selecting resources that provide both foundational knowledge and advanced concepts is crucial. Below are some of the highly recommended books that cater to various levels of expertise and interest in distributed systems and cloud computing.
1. "Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" by Martin Kleppmann
- Focus: This book dives into the scalable software and architectures that support high volumes of data.
- Why Read: It offers a concise yet detailed explanation of how distributed systems work, covering consistency, scalability, fault tolerance, and many other fundamental topics. The book also discusses various technologies such as databases, message queues, and stream processing.
- Audience: Suitable for beginners to intermediate readers.
2. "Distributed Systems: Principles and Paradigms" by Andrew S. Tanenbaum and Maarten Van Steen
- Focus: Provides a formal approach to understanding distributed systems.
- Why Read: It covers a range of essential concepts such as communication, synchronization, and processes in a detailed manner.
- Audience: Best for students and professionals who prefer an academic approach.
3. "Building Microservices: Designing Fine-Grained Systems" by Sam Newman
- Focus: Focuses on the microservices architectural style, a form of distributed systems used to build flexible and independently deployable software systems.
- Why Read: Newman provides practical advice on designing microservices structures and splitting a monolithic application into more manageable parts.
- Audience: Developers and architects interested in adopting microservices architecture will find it immensely beneficial.
4. "Cloud Native Patterns: Designing Change-tolerant Software" by Cornelia Davis
- Focus: This book approaches cloud computing with a focus on designing software that is resilient to modern cloud environments.
- Why Read: It details patterns and practices for developing applications that excel in dynamic, cloud-based ecosystems.
- Audience: Ideal for developers who focus on cloud application development and want to design for scalability, resiliency, and manageability.
5. "Site Reliability Engineering: How Google Runs Production Systems" by Niall Richard Murphy, Betsy Beyer, Chris Jones, and Jennifer Petoff
- Focus: Provides insights into the practices of SRE (Site Reliability Engineering) at Google.
- Why Read: It discusses how companies can balance between releasing new features and ensuring reliability.
- Audience: Useful for operations teams, developers, and managers in organizations adopting or aspiring to adopt SRE practices.
Comparative Table of Key Features
| Book Title | Key Features | Best For | Recognized Strengths |
| Designing Data-Intensive Applications | Reliability, Scalability, Maintainability | Beginners to Intermediate | Practical advice with in-depth technical analysis |
| Distributed Systems: Principles and Paradigms | Communication, Synchronization, Coordination | Academics, Professionals | Comprehensive theoretical framework |
| Building Microservices | Fine-Grained Systems Design | Developers, Architects | Practical design tactics |
| Cloud Native Patterns | Resiliency in Cloud Applications | Cloud Developers | Patterns for robust cloud applications |
| Site Reliability Engineering | Operational Excellence at Scale | Ops Teams, Devs, Managers | Insights into Google’s engineering practices |
Additional Topics
- Security Considerations in Distributed Systems: Understanding the security landscape and implementing effective security measures.
- Real-World Case Studies: Analyzing significant real-world applications of distributed computing to glean practical insights.
- Advanced Topics in Cloud Computing: Going beyond basics to explore specialized areas like hybrid cloud strategies, serverless computing, and more.
Selecting a book from this list depends largely on individual needs, professional demands, and the specific areas of interest within distributed systems and cloud computing. Each book has a unique angle and serves different facets of learning and development in these ever-evolving tech domains.
Related reading
- docker-compose how to use minio in- and outside of the docker network
- docker buildkit not supported by daemon in AWS EKS kubernetes cluster
- Docker container live migration in kubernetes
- Docker push to AWS ECR hangs immediately and times out
- docker-compose kafka wait for zookeeper and schema-registry wait for kafka
- docker-compose up vs docker-compose up --build vs docker-compose build --no-cache
- Docker push to AWS ECR private repo failing with malformed JSON
- docker run program arguments in aws ecs

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.