Microservices are a design pattern in which applications are composed of small, independent modules that communicate with each other using well-defined contracts. Each microservice focuses on a single concept.
Microservices make it easier to develop, test, and deploy isolated parts of your application. Once deployed, each microservice can be independently scaled as needed.
Containers combine an app plus its configuration and dependencies into a single, independently deployable unit. Containers are an excellent fit for bundling and deploying independent microservices.
ASP.NET, the web framework for .NET, makes it easy to create the APIs that become your microservices. ASP.NET comes with built-in support for developing and deploying your microservices using Docker containers.
.NET includes APIs to easily consume microservices from any application you build, including mobile, desktop, gaming, web, and more.
.NET is fast, with a higher throughput than any other popular framework in the respected TechEmpower benchmark.
Raygun, a real-time application monitoring solution, achieved a 2,000 percent increase in throughput by porting their Node.js service running on Linux to .NET, using the same Linux environment.
"Using the same-size server, we were able to go from 1,000 requests per second per node with Node.js to 20,000 requests per second with .NET Core."
The Visual Studio family of products has built-in support for working with Docker on Linux, macOS, and Windows. Easily configure your application for Docker, then step through your code line-by-line as it runs in a Docker container.
If you have an existing application you can begin adopting microservices without completely overhauling your app.
Containers aren't just for microservices, so your existing app can be moved into a container. As you add new functionality, or update existing functionality, you can split this off into a microservice running in a separate container.
This is also a great approach for adopting the latest version of .NET, without having to upgrade an entire legacy code base.
The microservices architecture allows a mix of technologies between each service. You can use .NET for parts of your application without adopting it everywhere. .NET microservices can be mixed with those written in Node.js, Java, Go, or any other language.
.NET Core is built from the ground up for scaling in Cloud. Microservices built with .NET run on all major cloud platforms.
If you haven't yet decided on a cloud, we recommend Azure. Azure is the best cloud for .NET developers because it was built with .NET developers in mind.
This guide is an introduction to developing microservices-based applications and managing them using containers. It discusses architectural design and implementation approaches using .NET and Docker containers.
This guide provides DevOps guidance for deploying and maintaining production .NET microservices, using Docker containers, Kubernetes, and Azure Service Fabric.