Both monolith and microservice architectural styles come with different deployment challenges. In the case of .NET monolithic applications, more often, deployments are a flavor of Xcopy deployments. Microservice deployments present a different set of challenges. Continuous integration and continuous deployment are the key practices when delivering microservice applications. Also, container technologies and toolchain technology, which promise greater isolation boundaries, are essential for microservice deployment and scaling.
In this chapter, we will discuss the fundamentals of microservice deployment and the influence of emerging practices, such as CI/CD tools and containers, on microservice deployment. We will also walk through the deployment of a simple .NET Core service in a Docker container.
By the end of the chapter, you will have an understanding of the following topics:
- Deployment terminology
- What are the factors for successful microservice deployments?
- What is continuous integration and continuous deployment?
- Isolation requirements for microservice deployment
- Containerization technology and its need for microservice deployment
- Quick introduction to Docker
- How to package an application as a Docker container using Visual Studio
Before proceeding further, we should first learn why we are talking about the deployment of microservices. The deployment cycle is one that has a specific flow.