Microservice: Preliminary Definition
Further Development of Legacy Applications
Chapter 2: Microservice Scenarios
2.1 Modernizing an E-Commerce Legacy Application
Slow Continuous Delivery Pipeline
Rapid and Independent Development of New Features
Amazon Has Been Doing It for a Long Time
2.2 Developing a New Signaling System
Part II: Microservices: What, Why, and Why Not?
Chapter 3: What Are Microservices?
Compensation Transactions across Microservices
3.3 Domain-Driven Design and Bounded Context
Collaboration between Bounded Contexts
Bounded Context and Microservices
3.4 Why You Should Avoid a Canonical Data Model (Stefan Tilkov)
Chapter 4: Reasons for Using Microservices
Sustainable Software Development
4.3 Benefits from a Business Perspective
5.3 Infrastructure and Operations
Chapter 6: Microservices and SOA
Interfaces Enforce a Coordination of Deployments
Coordination and Orchestration
6.2 Differences between SOA and Microservices
Part III: Implementing Microservices
Chapter 7: Architecture of Microservice-Based Systems
Strategic Design and Domain-Driven Design
Unintended Domain-Based Dependencies
Tools for Architecture Management
Microservices and Architecture Management
Is Architecture Management Important?
7.3 Techniques to Adjust the Architecture
Where Does Bad Architecture Come From?
Changes to the Overall Architecture
A Growing Number of Microservices
Microservice-Based Systems Are Hard to Modify
7.4 Growing Microservice-Based Systems
Replaceability as a Quality Criterion
7.5 Don’t Miss the Exit Point or How to Avoid the Erosion of a Microservice (Lars Gentsch)
Incorporation of New Functionality
What Is Happening to the Microservice Here?
Criteria Arguing for a New Microservice Instead of Extending an Existing One
How to Recognize Whether the Creation of a New Microservice Should Have Occurred Already
7.6 Microservices and Legacy Applications
Supplementing Legacy Applications
Enterprise Integration Patterns
Integration via UI and Data Replication
7.7 Hidden Dependencies (Oliver Wehrens)
Technical Decisions for the Entire System
7.10 Configuration and Coordination
Alternative: Installation Tools
Service Discovery = Configuration?
A Load Balancer per Microservice
Load Balancing and Architecture
Scaling, Microservices, and Load Balancing
Microservices: Advantages for Scaling
Scalability, Throughput, and Response Times
OAuth2, JWT, and Microservices
7.15 Documentation and Metadata
Chapter 8: Integration and Communication
A Single-Page App for All Microservices
Mobile Clients and Rich Clients
Problems: Redundancy and Consistency
8.6 Interfaces: Internal and External
Implementing External Interfaces
Postel’s Law or the Robustness Principle
Chapter 9: Architecture of Individual Microservices
Hexagonal Architectures and Microservices
Microservices without Reactive?
Chapter 10: Testing Microservices and Microservice-Based Systems
10.3 Mitigate Risks at Deployment
10.4 Testing the Overall System
Avoiding Integration Tests of the Overall System
10.5 Testing Legacy Applications and Microservices
Relocating Tests of the Legacy Application
Integration Test: Legacy Application and Microservices
10.6 Testing Individual Microservices
10.7 Consumer-Driven Contract Tests
10.8 Testing Technical Standards
Chapter 11: Operations and Continuous Delivery of Microservices
11.1 Challenges Associated with the Operation of Microservices
Technologies for Logging via the Network
Enabling Monitoring in Microservices
Technology Stack for Monitoring
Effects on the Individual Microservice
Installation and Configuration
Risks Associated with Microservice Deployments
11.5 Combined or Separate Deployment? (Jörg Müller)
Docker Container versus Virtualization
Communication between Docker Containers
Chapter 12: Organizational Effects of a Microservices-Based Architecture
12.1 Organizational Benefits of Microservices
12.2 An Alternative Approach to Conway’s Law
The Challenges Associated with Conway’s Law
Advantages of Collective Code Ownership
Disadvantages of Collective Code Ownership
Pull Requests for Coordination
12.3 Micro and Macro Architecture
Who Creates the Macro Architecture?
Extent of the Macro Architecture
Technology: Macro/Micro Architecture
Do Microservices Necessitate DevOps?
12.6 When Microservices Meet Classical IT Organizations (Alexander Heusingfeld)
Development versus Test versus Operations: Change of Perspective
For Operations There Is Never an “Entirely Green Field”
12.7 Interface to the Customer
Architecture Leads to Departments
12.9 Microservices without Changing the Organization?
Microservices without Changing the Organization
Chapter 13: Example of a Microservices-Based Architecture
Don’t Modularize Microservices by Data!
Networking in the Example Application
Monitoring with the Hystrix Dashboard
13.12 Integrating Other Technologies
13.14 Experiences with JVM-Based Microservices in the Amazon Cloud (Sascha Möllering)
Chapter 14: Technologies for Nanoservices
Minimum Size of Microservices is Limited
Chapter 15: Getting Started with Microservices
15.2 Roads towards Microservices