In today's modern applications, building complex applications is difficult. Different projects has its own set of requirements. To cut the chase, microservices approach solves the problem of complexity by decomposing application into a set of manageable services which are developed independently by a focused team which results in faster development that is much easier to understand, maintain and scale plus the benefit of reducing the barrier to try new technologies. The monolithic approach is best for simple, lightweight applications but where the complexity begins when the size of the application grows up and become too large. One needs to fully understand the tightly coupled parts (module) in order to make changes to the app efficiently. App deployment also means rebuilding the entire application on each update which has inherently undergone through long automated tests to ensure quality where bugs in any module can potentially bring down the entire process impacting the availability of the entire application. One last thing to mention is the freedom to adopt new technologies is almost out of the equation since most monolithic frameworks or languages rely on a specific set of technologies that tends to get expensive when replaced in terms of time and cost.
I am currently stuck on a CMS project with the module vs version compatibility problem. It seems we have to upgrade to the latest version of the CMS but many modules are not yet available or expensive.
The client doesn't want to upgrade as it is like building the entire application from scratch. The same story with 3 other projects too.
So Microservices could be a better way than monolithic CMS in my experience.
Questions:
Can we use microservices even for a small website or web app like a corporate website, blog, etc?
Do microservices have any performance-related issues?
Yes, you can. Microservices is just an approach really of building things. I think it's important to note that going this approach requires that you have at least a good understanding of how monolithics work - that way you can effectively see where you could decouple and create modules that are as much as possible independent from each other. Most websites that only require a small portion of special functionality like processing payments, for example, can go with serverless (FaaS) to add custom logic which is normally done via backend app.
Lastly, to be honest, performance related issues are part of how well an is developed. I think for the most part with microservices since they're really focused on one business logic, I don't think it'll suffer from the said issue any time soon.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (3)
In today's modern applications, building complex applications is difficult. Different projects has its own set of requirements. To cut the chase, microservices approach solves the problem of complexity by decomposing application into a set of manageable services which are developed independently by a focused team which results in faster development that is much easier to understand, maintain and scale plus the benefit of reducing the barrier to try new technologies. The monolithic approach is best for simple, lightweight applications but where the complexity begins when the size of the application grows up and become too large. One needs to fully understand the tightly coupled parts (module) in order to make changes to the app efficiently. App deployment also means rebuilding the entire application on each update which has inherently undergone through long automated tests to ensure quality where bugs in any module can potentially bring down the entire process impacting the availability of the entire application. One last thing to mention is the freedom to adopt new technologies is almost out of the equation since most monolithic frameworks or languages rely on a specific set of technologies that tends to get expensive when replaced in terms of time and cost.
thanks for such a detailed reply.
I am currently stuck on a CMS project with the module vs version compatibility problem. It seems we have to upgrade to the latest version of the CMS but many modules are not yet available or expensive.
The client doesn't want to upgrade as it is like building the entire application from scratch. The same story with 3 other projects too.
So Microservices could be a better way than monolithic CMS in my experience.
Questions:
Can we use microservices even for a small website or web app like a corporate website, blog, etc?
Do microservices have any performance-related issues?
Yes, you can. Microservices is just an approach really of building things. I think it's important to note that going this approach requires that you have at least a good understanding of how monolithics work - that way you can effectively see where you could decouple and create modules that are as much as possible independent from each other. Most websites that only require a small portion of special functionality like processing payments, for example, can go with serverless (FaaS) to add custom logic which is normally done via backend app.
Lastly, to be honest, performance related issues are part of how well an is developed. I think for the most part with microservices since they're really focused on one business logic, I don't think it'll suffer from the said issue any time soon.