0%

Book Description

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 Jon Schneider covers many effective SRE practices from companies leading the way in microservices adoption. You’ll examine several patterns that were created after much trial and error in recent years, complete with Java code examples.

Chapters are organized according to specific patterns, including:

  • Application Metrics: Availability, debuggability, and Micrometer
  • Debugging with observability: Three pillars of observability; components of a distributed trace
  • Charting and alerting: Building effective charts; KPIs for Java microservices
  • Safe multi-cloud delivery: Automated canary analysis
  • Source code observability: The problem of dependencies; API utilization
  • Traffic management: Concurrency of systems; platform, gateway, and client-side load balancing

Table of Contents

  1. 1. Application Metrics
    1. Availability
    2. Debuggability
    3. Black Box vs. White Box Monitoring
    4. Dimensional Metrics
      1. Hierarchical metrics systems
    5. Introduction to Micrometer
      1. Meter registries
      2. Creating meters
      3. Meter filters
    6. Naming Metrics
    7. Classes of meters
    8. Gauges
      1. Alert criteria
    9. Counters
      1. Alert criteria
    10. Timers
      1. Common features of latency distributions
      2. Percentiles/quantiles
      3. Histograms
      4. Service level objective boundaries
      5. Alert criteria
    11. Distribution summaries
      1. Alert criteria
    12. Long task timers
      1. Alert criteria
    13. Choosing the Right Meter Type
    14. Controlling cost
    15. Coordinated omission
    16. Load testing
  2. 2. Traffic Management
    1. Concurrency of Systems
    2. Platform Load Balancing
    3. Gateway Load Balancing
      1. Join the shortest queue
      2. Instance-reported utilization
      3. Choice of two
      4. Instance probation
      5. Knock-on effects of smarter load balancing
    4. Client-side Load Balancing
    5. Hedge requests
    6. Call Resiliency Patterns
      1. Retries
      2. Rate limiters
      3. Bulkheads
      4. Circuit breakers
      5. Adaptive concurrency limits
      6. Choosing the right call resiliency pattern
      7. Implementation in service mesh
      8. Implementation in RSocket
3.138.122.4