Book Image

Building Microservices with .NET Core

By : Gaurav Aroraa, Lalit Kale, Manish Kanwar
Book Image

Building Microservices with .NET Core

By: Gaurav Aroraa, Lalit Kale, Manish Kanwar

Overview of this book

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.
Table of Contents (10 chapters)

Isolation requirements for microservice deployment


In 2012, Adam Wiggins, cofounder of the Heroku platform, presented 12 basic principles. These principles talk about defining new modern web applications from idea to deployment. This set of principles is now known as 12 factor App. These principles paved the way for new architectural styles, which evolved into microservice architectures. One of the principles of 12 factor app was as follows:

"Execute the app as one or more stateless processes" - Adam Wiggins (https://12factor.net/)

This means microservices are shared nothing architectures. So, services will be essentially stateless (except the database, which acts as the state store). The shared nothing principle is also applied across the entire spectrum of patterns and practices. This is nothing but isolation of components to achieve scale and agility.

In the microservice world, this principle of isolation is applied in the following ways:

  • Service teams: There will be self-sufficient teams...