What is Monolith
- This is a unit of deployment, where all the functionality of the system has to be deployed together
- Single Process Monolith
- Modular Monolith: Subset of Single Process Monolith
- The whole application has to be deployed and the necessary changes in the database also should be up to the mark
- When there is load on som part/module of your application and you need to scale the whole application
What are micro services
- Microservices are independently deployable services modelled around business domain.
- These microservices communicate with each other via networks
- Each service can be developed in a differnt programming language as the communications between microservices are generally over http
- Microservices are distributed systems, so managing the application is more complex than a monolith
For deploying the applications which are microservices and handling challenges, we would require an orchestration software and kubernetes is best player in this area.