Chapter
Chapter 1: What Are Microservices?
Service-oriented architecture
Understanding the microservice architecture
Messaging in microservices
Why should we use microservices?
How does the microservice architecture work?
Advantages of microservices
Prerequisites of the microservice architecture
Understanding problems with the monolithic architecture style
Challenges in standardizing a .NET stack
Vertical scaling or scale up
Horizontal scaling or scale out
Prerequisites for microservices
Functional overview of the application
Solutions for current challenges
Handling deployment problems
Making much better monolithic applications
Introducing dependency injections
Database sharding and partitioning
Identifying decomposition candidates within monolithic
Important microservices advantages
Alignment with business goals
Chapter 2: Building Microservices
What makes a good service?
DDD and its importance for microservices
Importance for microservices
Communication between microservices
Benefits of the API gateway for microservices
API gateway versus API management
Revisiting the case study--Flix One
Transitioning to our product service
Registering the repositories
Adding a product controller
Revisiting repositories and the controller
Revisiting the product controller
Chapter 3: Integration Techniques
Communication between services
Implementation of an Azure Service Bus queue
Sending messages to the queue
Receiving messages from the queue
Chapter 4: Testing Strategies
How to test microservices
Testing strategies (testing approach)
Types of microservice tests
Component (service) testing
Consumer-driven contracts
How to implement a consumer-driven test
How Pact-net-core helps us achieve our goal
End-to-end (UI/functional) testing
Sociable versus isolated unit tests
Getting ready with the test project
Monolithic application deployment challenges
Understanding the deployment terminology
Prerequisites for successful microservice deployments
Isolation requirements for microservice deployment
Need for a new deployment paradigm
Suitability of containers over virtual machines
Transformation of the operation team's mindset
Containers are new binaries
It works on your machine? Let's ship your machine!
Docker quick introduction
Microservice deployment with Docker overview
Microservice deployment example using Docker
Setting up Docker on your machine
Creating an ASP.NET web application
Security in monolithic applications
Security in microservices
Why traditional .NET auth mechanism won't work?
Microservice Auth example with OpenID Connect, OAuth 2.0, and Azure AD
Step 1 – Registration of TodoListService and TodoListWebApp with Azure AD tenant
Step 2 – Generation of AppKey for TodoListWebApp
Step 3 – Configuring Visual Studio solution projects
Step 4 – Generate client certificates on IIS Express
Step 5 – Run both the applications
Azure API management as an API gateway
Other security best practices
Instrumentation and telemetry
Auditing sensitive data and critical business transactions
Troubleshooting system failures
Use of a correlation ID in logging
Monitoring in Azure Cloud
Microsoft Azure Diagnostics
Storing diagnostic data using Azure storage
Specifying a storage account
Azure storage schema for diagnostic data
Introduction of Application Insights
Other microservice monitoring solutions
A brief overview of the ELK stack
Vertical scaling (scaling up)
Horizontal scaling (scaling out)
Microservices scalability
Scale Cube model of scalability
Characteristics of a scalable microservice
Scaling the infrastructure
Scaling virtual machines using scale sets
Container scaling using Docker swarm
Data persistence model design
Redundancy and fault tolerance
Chapter 9: Reactive Microservices
What are reactive microservices?
The microservice ecosystem
Reactive microservices - coding it down
Chapter 10: Creating a Complete Microservice Solution
Architectures before microservices
The monolithic architecture
Challenges in standardizing the .NET stack
Service-oriented architecture
Microservice-styled architecture
Messaging in microservices
Information visualization
The book-listing microservice
The book-searching microservice
The shopping cart microservice
Synchronous versus asynchronous
The book catalog microservice
The shopping cart microservice
The user auth microservice