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)

Microservices scalability


In this section, we will view the scaling strategies available for microservices. We will visit the Scale Cube model of scalability, see how to scale the infrastructure layer for microservices, and embed scalability into the microservice design.

Scale Cube model of scalability

One way to look into scalability is by understanding Scale Cube. In the book The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, Martin L. Abbott and Michael T. Fisher defines Scale Cube to view and understand system scalability. Scale Cube applies to microservice architectures as well: 

In this three-dimensional model of scalability, the origin (0,0,0) represents the least scalable system. It assumes that the system is a monolith deployed on a single server instance. As shown, a system can be scaled by putting the right amount of effort in three dimensions. To move a system toward the right scalable direction, we need to do the right trade...