Before we proceed with the deployment, we must ask the question: what are microservices?
Microservices is a pattern or style to decompose a monolithic application into multiple loosely coupled services. Each service has a business responsibility, focuses on solving a business domain problem, is independently deployable, and communicates with other services in order to delegate work.
The microservices pattern evolved to solve the following problems with the monoliths:
- Monolithic apps are not easy to refactor, changes are not local, and they are very tightly coupled.
- Understanding the application is difficult. Adding a new feature requires cascading changes.
- Deploying multiple instances requires resources, such as RAM and CPU, and so you need more hardware to spin off multiple instances of your monolithic app.
- Adopting new technologies, frameworks...