My passion for developing production-ready, cooperating microservices began in 2008 when I first started assisting customers in creating distributed systems—long before the term “microservices” was coined. During that time, I faced significant challenges, including grappling with the “Eight Fallacies of Distributed Computing”. Since then, I’ve dedicated most of my career to deepening my understanding of these complexities and finding ways to address them through robust architecture, design patterns, and the right tools.
I wrote
Microservices with Spring Boot 3 and Spring Cloud: Build resilient and scalable microservices using Spring Cloud, Istio, and Kubernetes
A common reason for microservice projects to fail is a lack of understanding of how to build resilient and fault-tolerant microservices.
This book was a game-changer for me, providing essential strategies to address these challenges. It taught me how to avoid anti-patterns like Cascading Failures and embrace patterns like Circuit Breaker and Bulkhead to manage temporary network issues and overload situations. The real-world solutions it offers were immediately applicable to my projects.
A single dramatic software failure can cost a company millions of dollars - but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have pragmatic guide to engineering for production systems. If you're a software developer, and you don't want to get alerts every night for the rest of your…
Kubernetes is the go-to tool for orchestrating a landscape of cooperating microservices, making it a crucial skill to master.
This book guided me through Kubernetes, from the basics, such as pods, services, and deployments, to more advanced topics, like its inner workings and auto-scaling resources. What I particularly appreciate is the balance between theory and practical examples, reinforced by exercises with GitHub-hosted source code, which I also found helpful as a starting point for building real-world applications.
With Kubernetes, users don't have to worry about which specific machine in their data center their application is running on. Each layer in their application is decoupled from other layers so they can scale, update, and maintain them independently.
Kubernetes in Action teaches developers how to use Kubernetes to deploy self-healing scalable distributed applications. By the end, readers will be able to build and deploy applications in a proper way to take full advantage of the Kubernetes platform.
Apache Kafka is the industry standard for real-time event streaming, an essential component for large-scale, high-performance microservice ecosystems.
Despite being new to Kafka when I read this book, it quickly brought me up to speed on key concepts that underpin its scalability and real-time capabilities, such as the commit log, topic partitions, and consumer groups. The book also introduces other critical Kafka features like the schema registry, Kafka Connect, and stream processing with Kafka Streams and ksqlDB. The practical examples provided were straightforward to apply and adapt to my own use cases.
Kafka in Action is a practical, hands-on guide to building Kafka-based data pipelines. Filled with real-world use cases and scenarios, this book probes Kafka's most common use cases, ranging from simple logging through managing streaming data systems for message routing, analytics, and more.
In systems that handle big data, streaming data, or fast data, it's important to get your data pipelines right. Apache Kafka is a wicked-fast distributed streaming platform that operates as more than just a persistent log or a flexible message queue.
Understanding how requests and messages traverse a large microservice landscape is notoriously challenging. The CNCF OpenTelemetry framework standardizes how to collect and observe telemetry data (metrics, logs, and traces).
This book was invaluable in helping me grasp OpenTelemetry’s core concepts and architecture, including collectors and exporters, and how to instrument applications effectively. It also helped me understand how distributed tracing data is structured into traces and spans and how to propagate context information between cooperating microservices.
OpenTelemetry is a revolution in observability data. Instead of running multiple uncoordinated pipelines, OpenTelemetry provides users with a single integrated stream of data, providing multiple sources of high-quality telemetry data: tracing, metrics, logs, RUM, eBPF, and more. This practical guide shows you how to set up, operate, and troubleshoot the OpenTelemetry observability system.
Authors Austin Parker, head of developer relations at Lightstep and OpenTelemetry Community Maintainer, and Ted Young, cofounder of the OpenTelemetry project, cover every OpenTelemetry component, as well as observability best practices for many popular cloud, platform, and data services such as Kubernetes and AWS Lambda. You'll learn…
No matter how advanced our tools for developing resilient and scalable microservices become, the million-dollar question remains: How do we effectively break up a monolith into microservices?
This book offers excellent guidance on this challenge. I found its starting point grounded in Domain-Driven Design and its concepts like Bounded Contexts and Aggregates particularly valuable. These concepts are key to mapping microservices to a real-world domain model. I also appreciate Sam’s advice, to begin with a few relatively large microservices aligned with Bounded Contexts and only break them into smaller services when there’s a clear business case for doing so.
How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture.
With many illustrative examples, insightful migration patterns, and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested…
This book is your guide to building production-ready microservices using Java and Spring Boot. It covers essential development tools like Spring Boot, Spring Cloud, and Docker, as well as runtime tools such as Kubernetes, Istio, the EFK stack, Prometheus, and Grafana. While each tool is powerful on its own, integrating them effectively can be challenging. Some tools complement each other, while others overlap, making it difficult to choose the best one for a specific scenario.
This hands-on book takes you step-by-step through the process of using these tools together. It begins by creating a set of cooperating microservices and, with each chapter, introduces a new tool or technology to enhance the microservices, preparing them to meet the demands of a production environment.