Microservices
I want to start with a popular phrase that’s
being quoted in the article: “not every problem is a nail and not every
solution a hammer”. The reason to start with it is because when people know
something, we tend to find a solution that fits into something we know or
recently learned.
So, quoting Martin Fowler on a later article1
he wrote in 2015: “So my primary guideline would be don't even consider
microservices unless you have a system that's too complex to manage as a
monolith.”
Also, Fowler says on that same article1
“is a microservice architecture a good choice for the system you're
working on? It depends…”
Throughout the original article, Fowler mentions
the cases that would be the appropriate to adopt the microservices model. For
many years, a lot of systems were developed and envisioned as monolithic
structures that were hard to deploy, especially in large enterprise systems,
that often had the problem of intertwined code, that when modified incorrectly, could
lead up to a bunch of problems for the development team or the system’s functionality.
Trying to develop new features could become difficult on those monolithic
systems.
At the time that he wrote the article in
2014, microservices were relatively new and he only saw microservices as a
promising way to develop systems. Since the article was written, microservices have become more popular,
given the context of cloud applications being more adopted.
So, in conclusion, you could say that
microservices could be a real solution, but the premise for any system, monolithic
or not, is to have well written code. Cleaning up your application and
refactoring could save a lot of trouble before transforming a monolithic system
into microservices. As I said in the beginning, not all solutions work best for
all problems, it actually depends on the problem that you’re trying to solve…
Don’t turn microservices into the hammer
that will always try to find a nail.
Comments
Post a Comment