Architect your .NET applications by breaking them into really small pieces - microservices - using this practical, example-based guide
About This Book
- Start your microservices journey and understand a broader perspective of microservices development
- Build, deploy, and test microservices using ASP.Net MVC, Web API, and Microsoft Azure Cloud
- Get started with reactive microservices and understand the fundamentals behind it
Who This Book Is For
This book is for .NET Core developers who want to learn and understand microservices architecture and implement it in their .NET Core applications. It's ideal for developers who are completely new to microservices or have just a theoretical understanding of this architectural approach and want to gain a practical perspective in order to better manage application complexity.
What You Will Learn
- Compare microservices with monolithic applications and SOA
- Identify the appropriate service boundaries by mapping them to the relevant bounded contexts
- Define the service interface and implement the APIs using ASP.NET Web API
- Integrate the services via synchronous and asynchronous mechanisms
- Implement microservices security using Azure Active Directory, OpenID Connect, and OAuth 2.0
- Understand the operations and scaling of microservices in .NET Core
- Understand the testing pyramid and implement consumer-driven contract using pact net core
- Understand what the key features of reactive microservices are and implement them using reactive extension
Microservices is an architectural style that promotes the development of complex applications as a suite of small services based on business capabilities. This book will help you identify the appropriate service boundaries within the business. We'll start by looking at what microservices are, and what the main characteristics are.
Moving forward, you will be introduced to real-life application scenarios, and after assessing the current issues, we will begin the journey of transforming this application by splitting it into a suite of microservices.
You will identify the service boundaries, split the application into multiple microservices, and define the service contracts. You will find out how to configure, deploy, and monitor microservices, and configure scaling to allow the application to quickly adapt to increased demand in the future.
With an introduction to the reactive microservices, you strategically gain further value to keep your code base simple, focusing on what is more important rather than the messy asynchronous calls.
Style and approach
This guide serves as a stepping stone that helps .NET Core developers in their microservices architecture. This book provides just enough theory to understand the concepts and apply the examples.
Table of Contents
What Are Microservices?
- Origin of microservices
- Discussing microservices
- Monolithic architecture
- Understanding the microservice architecture
- Why should we use microservices?
- How does the microservice architecture work?
- Advantages of microservices
- SOA versus microservices
- Prerequisites of the microservice architecture
- Understanding problems with the monolithic architecture style
- Prerequisites for microservices
- Identifying decomposition candidates within monolithic
- Size of microservices
- What makes a good service?
- DDD and its importance for microservices
- The concept of Seam
- Communication between microservices
Revisiting the case study--Flix One
- Transitioning to our product service
- Database migration
- Revisiting repositories and the controller
- Introducing ViewModel
- Revisiting the product controller
- Communication between services
- Integration patterns
- How to test microservices
- Testing strategies (testing approach)
- Testing pyramid
- Types of microservice tests
- Tests in action
- Monolithic application deployment challenges
- Understanding the deployment terminology
- Prerequisites for successful microservice deployments
- Isolation requirements for microservice deployment
- Need for a new deployment paradigm
- Docker quick introduction
- Security in monolithic applications
Security in microservices
- Why traditional .NET auth mechanism won't work?
- JSON Web Tokens
- What is OAuth 2.0?
- What is OpenID Connect?
- Azure Active Directory
- Microservice Auth example with OpenID Connect, OAuth 2.0, and Azure AD
- Azure API management as an API gateway
- Container security
- Other security best practices
- Instrumentation and telemetry
- The need for monitoring
- Monitoring challenges
- Monitoring in Azure Cloud
- Other microservice monitoring solutions
- Scalability overview
- Scaling infrastructure
- Microservices scalability
- Scaling the infrastructure
- Scaling service design
- What are reactive microservices?
- Making it reactive
- Event communication
- Managing data
- The microservice ecosystem
- Reactive microservices - coding it down
Creating a Complete Microservice Solution
- Architectures before microservices
- Monolith transitioning
- Monitoring strategies
- Reactive microservices
- Greenfield application
- Title: Building Microservices with .NET Core
- Release date: June 2017
- Publisher(s): Packt Publishing
- ISBN: 9781785887833