Why use microservices ? Monolithic vs Microservices style
The term “Microservices” has risen over the last few years describing a way to design software applications as independently deployable services.
While there is no general explaination or definition for this term, there are certain characteristics: enabling business capability by using standalone software, running in its own process, small problem domain, integration via interfaces(HTTP, JMS etc.).
Whenever you search for the term “Microservices” on google, I dare you to read a complete article without falling asleep.
So, I will keep this as short as possible because KISS(Keep It Simple Stupid)
To better understand the microservices architecture, we first need to understand the monolithic style.
Monolithic: The currently used natural way of building an enterprise software application is to create the application as a single unit including three parts:
- A set of tables which reside inside an RDBMS (for example Oracle)
- Server side (Business logic to get data from the DB)
Now, monolithic applications can be successful but increasingly people are feeling frustrations with them as more change cycles are tied together.
A small change in any part of the application requires a redeployment of the whole application. As the application progresses overtime, it’s often hard to keep a good modular structure and ultimately it becomes a mess.
A question is risen here, how will microservices solve this problem ?
Good question. Very very good question. In fact, the answer to this question is the reason you are reading this article for. It is the sole purpose of this article and if you understand this, you will get the idea of what this article is about and the answer is: “Separation of concerns”.
Thank you. Thank you. Please be seated. I will be here all week.
However, when discussing microservices, we normally confuse it with SOA which is an elder approach and was introduced in early 2000’s.
SOA focuses to integrate(connect) monolithic or legacy(old) systems.
Microservices architecture focuses on a single application(usually monolithic) divided into independently deployable services.
So, microservices focus to avoid monolithic style.
Repeat with me, microservices focus to avoid monolithic style.
Once more, with feeling, microservices focus to avoid monolithic style.
I will be writing more on this topic. Stay tuned and share among you circle