Introduction
- What this book is not
- Prerequisites
- How to read this book
- Tools you need
- Source code
1.Why microservices?
- 1.1What are they?
- 1.2Microservices induce complexity
2.Microservices as seen from the client
- 2.1HTTP
- 2.2Payloads
- 2.3Do you speak JSON
- 2.4Client types
- 2.5Manual testing
- 2.6Exercise - Invoke a microservice manually
- 2.7Exercise solution
3.Microservices server-side
- 3.1About coding the server
- 3.2There comes .NET Core
- 3.3Introduction to ASP.NET Core
- 3.4ASP.NET Core Web API
- 3.5Exercise - Create a train scheduling service
- 3.6Exercise solution
4.Database access using Entity Framework Core
- 4.1Introduction to Entity Framework Core
- 4.2Scaffold your code and save time
- 4.3Exercise - Extend the train scheduling service
- 4.4Exercise solution
5.Adding UI server-side
- 5.1To UI or not to UI
- 5.2UI scaffolding with Visual Studio
- 5.3Exercise - Add a UI to the train scheduling service
- 5.4Exercise solution
6.Invoking a service from .NET and .NET Core
- 6.1.NET Clients
- 6.2Demo: consume the microservice from a WPF client
7.Invoking a service from another service
- 7.1Same but different but same
- 7.2Exercise - Create a ticketing service
- 7.3Exercise solution
- 7.4Exercise - Consume the scheduling service from the ticketing service
- 7.5Exercise solution
- 7.6Integration testing of the microservices created
- I need you, super-hero !
8.Introduction to containers and Docker
- 8.1Why do we need containers?
- 8.2Virtualization could have been the panacea
- 8.3Why containers perform better
- 8.4Containers in practice
- 8.5How containers solve problems
- 8.6Containers as microservice hosts
- 8.7Exercise - Run a Docker container
- 8.8Exercise solution
9.Creating and running Docker images
- 9.1How images are built
- 9.2An ASP.NET Core Dockerfile
- 9.3Multi-stage Dockerfiles
- 9.4Exercise - Build and run your own Docker image
- 9.5Exercise solution
10.Publishing images to Docker registries
- 10.1Why bother with Registries?
- 10.2Available Registries
- 10.3Publishing an image
- 10.4Exercise - Publish your services on Docker Hub
- 10.5Exercise solution
11.Executing linked microservice containers in a Docker Swarm
- 11.1The need for orchestrators
- 11.2Orchestrators commonly used with Docker
- 11.3Docker Swarm concepts
- 11.4Creating a swarm
- 11.5Configuring a stack
- 11.6Deploying and managing a stack on a swarm
- 11.7Exercise - Run the two services in a Docker Swarm
- 11.8Exercise solution
- 11.9Integration testing of the stack created
12.Microservice clusters using Docker Swarm
- 12.1Demo: load-balancing the stack