Skip to content
FREE SHIPPING ON ALL DOMESTIC ORDERS $35+
FREE SHIPPING ON ALL US ORDERS $35+

Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization

Availability:
in stock, ready to be shipped
Original price $39.99 - Original price $39.99
Original price $39.99
$48.99
$48.99 - $48.99
Current price $48.99
One of the biggest challenges for organizations that have adopted microservice architecture is the lack of architectural, operational, and organizational standardization. After splitting a monolithic application or building a microservice ecosystem from scratch, many engineers are left wondering what’s next. In this practical book, author Susan Fowler presents a set of microservice standards in depth, drawing from her experience standardizing over a thousand microservices at Uber. You’ll learn how to design microservices that are stable, reliable, scalable, fault tolerant, performant, monitored, documented, and prepared for any catastrophe.

Explore production-readiness standards, including:

  • Stability and Reliability: develop, deploy, introduce, and deprecate microservices; protect against dependency failures
  • Scalability and Performance: learn essential components for achieving greater microservice efficiency
  • Fault Tolerance and Catastrophe Preparedness: ensure availability by actively pushing microservices to fail in real time
  • Monitoring: learn how to monitor, log, and display key metrics; establish alerting and on-call procedures
  • Documentation and Understanding: mitigate tradeoffs that come with microservice adoption, including organizational sprawl and technical debt

ISBN-13: 9781491965979

Media Type: Paperback

Publisher: O'Reilly Media - Incorporated

Publication Date: 12-19-2016

Pages: 170

Product Dimensions: 6.90(w) x 9.10(h) x 0.40(d)

Susan J. Fowler is an author, editor, and engineer. She currently works as an engineer on the infrastructure team at Stripe. Previously, she worked on microservice standardization at Uber, developed application platforms and infrastructure at several small startups, and studied particle physics at the Universityof Pennsylvania.

Table of Contents

Preface vii

1 Microservices 1

From Monoliths to Microservices 2

Microservice Architecture 9

The Microservice Ecosystem 11

Layer 1 Hardware 12

Layer 2 Communication 14

Layer 3 The Application Platform 16

Layer 4 Microservices 19

Organizational Challenges 20

The Inverse Conway's Law 21

Technical Sprawl 22

More Ways to Fail 23

Competition for Resources 24

2 Production-Readiness 25

The Challenges of Microservice Standardization 25

Availability: The Goal of Standardization 26

Production-Readiness Standards 28

Stability 29

Reliability 29

Scalability 30

Fault Tolerance and Catastrophe-Preparedness 32

Performance 33

Monitoring 34

Documentation 35

Implementing Production-Readiness 37

3 Stability and Reliability 41

Principles of Building Stable and Reliable Micro services 41

The Development Cycle 42

The Deployment Pipeline 44

Staging 45

Canary 50

Production 51

Enforcing Stable and Reliable Deployment 52

Dependencies 53

Routing and Discovery 55

Deprecation and Decommissioning 56

Evaluate Your Microservice 57

The Development Cycle 57

The Deployment Pipeline 57

Dependencies 57

Routing and Discovery 58

Deprecation and Decommissioning 58

4 Scalability and Performance 59

Principles of Microservice Scalability and Performance 59

Knowing the Growth Scale 60

The Qualitative Growth Scale 61

The Quantitative Growth Scale 62

Efficient Use of Resources 63

Resource Awareness 64

Resource Requirements 64

Resource Bottlenecks 65

Capacity Planning 65

Dependency Scaling 67

Traffic Management 68

Task Handling and Processing 69

Programming Language Limitations 69

Handling Requests and Processing Tasks Efficiently 70

Scalable Data Storage 71

Database Choice in Microservice Ecosystems 72

Database Challenges in Microservice Architecture 73

Evaluate Your Microservice 73

Knowing the Growth Scale 74

Efficient Use of Resources 74

Resource Awareness 74

Capacity Planning 74

Dependency Scaling 74

Traffic Management 75

Task Handling and Processing 75

Scalable Data Storage 75

5 Fault Tolerance and Catastrophe-Preparedness 77

Principles of Building Fault-Tolerant Microservices 77

Avoiding Single Points of Failure 79

Catastrophes and Failure Scenarios 80

Common Failures Across an Ecosystem 81

Hardware Failures 83

Communication-Level and Application Platform-Level Failures 84

Dependency Failures 86

Internal (Microservice) Failures 88

Resiliency Testing 89

Code Testing 90

Load Testing 91

Chaos Testing 94

Failure Detection and Remediation 96

Incidents and Outages 97

Appropriate Categorization 98

The Five Stages of Incident Response 99

Evaluate Your Microservice 102

Avoiding Single Points of Failure 102

Catastrophes and Failure Scenarios 102

Resiliency Testing 103

Failure Detection and Remediation 103

6 Monitoring 105

Principles of Microservice Monitoring 105

Key Metrics 106

Logging 109

Dashboards 110

Alerting 112

Setting up Effective Alerting 112

Handling Alerts 113

On-Call Rotations 114

Evaluate Your Microservice 115

Key Metrics 115

Logging 115

Dashboards 115

Alerting 116

On-Call Rotations 116

7 Documentation and Understanding 117

Principles of Microservice Documentation and Understanding 117

Microservice Documentation 119

Description 120

Architecture Diagram 121

Contact and On-Call Information 122

Links 122

Onboarding and Development Guide 122

Request Flows, Endpoints, and Dependencies 123

On-Call Runbooks 123

FAQ 124

Microservice Understanding 125

Architecture Reviews 126

Production-Readiness Audits 127

Production-Readiness Road maps 128

Production-Readiness Automation 128

Evaluate Your Microservice 129

Microservice Documentation 130

Microservice Understanding 130

A Production-Readiness Checklist 131

B Evaluate Your Microservice 135

Glossary 143

Index 149