Depending on which model we choose, each one will have their own set of tradeoffs:
Tradeoffs |
Description |
Monoliths |
Microservices |
Development Complexity |
Effort required to deploy and manage an application. |
- one programming language
- one repository
- enables sequential development
|
- multiple programming languages
- multiple repositories
- enables concurrent development
|
Scalability |
Scaling up or down, based on the incoming traffic. |
- entire stack is replicated
- heavy on resource consumption
|
- single unit is replicated
- on-demand consumption of resources
|
Time to deploy |
Time to deploy encapsulates the build of a delivery pipeline that is used to ship features. |
- one delivery pipeline that deploys the entire stack
- more risk with each deployment leading to a lower velocity rate
|
- multiple delivery pipelines that deploy separate units
- less risk with each deployment leading to a higher feature development rate
|
Flexibility |
Ability to adapt to new technologies and introduce new functionalities. |
- low rate
- entire application stack might need restructuring to incorporate new functionalities
|
- high rate
- since changing an independent unit is straightforward
|
Operational Cost |
Represents the cost of necessary resources to release a product. |
- low initial cost
- one code base and one pipeline should be managed
- cost increases exponentially when the application needs to operate at scale
|
- high initial cost
- multiple repositories and pipelines require management
- to scale, the cost remains proportional to the consumed resources at that point in time
|
Reliability |
Reliability captures practices for an application to recover from failure and tools to monitor an application. |
- in a failure scenario, the entire stack needs to be recovered
- the visibility into each functionality is low, since all the logs and metrics are aggregated together
|
- in a failure scenario, only the failed unit needs to be recovered
- there is high visibility into the logs and metrics for each unit
|
Back to first page