Patterns for Reliable Microservices in the Enterprise
Jonathan Schneider

#Java
#Microservices
#KPI
#API
In a microservices architecture, the whole is indeed greater than the sum of its parts. But in practice, individual microservices can inadvertently impact others and alter the end user experience. Effective microservices architectures require standardization on an organizational level with the help of a platform engineering team.
This practical book provides a series of progressive steps that platform engineers can apply technically and organizationally to achieve highly resilient Java applications. Author Jonathan Schneider covers many effective SRE practices from companies leading the way in microservices adoption. You’ll examine several patterns discovered through much trial and error in recent years, complete with Java code examples.
Chapters are organized according to specific patterns, including:
Table of Contents
Chapter 1. The Application Platform
Chapter 2. Application Metrics
Chapter 3. Debugging with Observability
Chapter 4. Charting and Alerting
Chapter 5. Safe, Multicloud Continuous Delivery
Chapter 6. Source Code Observability
Chapter 7. Traffic Management
This book presents a phased approach to building and deploying more reliable Java microservices. The capabilities presented in each chapter are meant to be followed in order, each building upon the capabilities of earlier chapters. There are five phases in this journey:
Our goal isn’t to build a perfect system, to eliminate all failure. Our goal is to end with a highly reliable system and avoid spending time in the space of diminishing returns.
Avoiding diminishing returns is why we will spend so much time talking about effective measurement and monitoring, and why this discipline precedes all others.
If you are in engineering management, Chapter 1 is your mission statement: to build an application platform renowned for its reliability and the culture of an effective platform engineering team that can deliver these capabilities to a broader engineering organization.
The chapters that follow contain the blueprints for achieving this mission, targeted at engineers. This book is intentionally narrowed in scope to Java microservices precisely so that I can offer detailed advice on how to go about this, including specific measurements battle-tested for Java microservices, code samples, and other idiosyncracies like dependency management concerns that are unique to the Java virtual machine (JVM). Its focus is on immediate actionability.
Jonathan Schneider is CEO and cofounder of Moderne, where he works to modernize applications and infrastructure through automated source code transformation and asset visibility. Previously, he worked for the Spring team on application monitoring and continuous delivery at Netflix on engineering tools related to distributed refactoring, dependency insight, and build tools. He also worked on refactoring at Gradle.
Jon has visited and given workshops on monitoring and delivery at a wide variety of enterprises, developing an understanding of the steps organizations need to take to get closer to Netflix-style resiliency where outages in entire regions don’t disrupt service availability and application teams know about problems before the call center.









