Some of the top-management people wonder why Heads of IT, CIOs, CTOs etc insist on switching to microservice based architecture.
First of all, let’s note that microservices architecture is opposed to molonith architecture.
The classic way of building software is to create an application (desktop, web, embedded) and this app would deliver the features according to the specs and serve respective business purposes.
Within an organization, different stakeholders order their tech departments / third party vendors to create these apps whiach are, sometimes, called services, especially in the data context. Thus, an organization ends apps with hundreds of apps and kilo-tons of code that are hard to mantain and the features that might already exist can never be reused, because this apps were designed as a monolith, which is basically a set of requested features.
So with this approach, you get burdens of
- Existing functionality that cannot be reproduced in other apps
- Double / triple / x10 effort to mantain this functionality
- Lack of options to create a small service which is integreated in the eco-system of the enterprise, but which would deliver 1-2 new features.
With lean production philosophy in mind, R&D and tech people would insist on being savvy and efficient with existing software. CFOs and CEOs would also be happy with their IT being cost and time efficient. In plain English, the question in place would be: why can’t we create a list of autonomous modules, efficiently reuse them, and the for the new requirements create just the missing piece and stand on the shoulders of the effort alredy made?
Why can’t we create a list of autonomous modules, efficiently reuse them, and the for the new requirements create just the missing piece?
Yes, we can achieve that. We create multiple microservices, pieces of software responsible for 1-2 things, easlity mantained, developed and tests.
- For example
- Authorization microservice
- Transaction processing microservices
- Mail delivery microserivice
- CSV loader microservice
So next time we will want to develop, for instance, an admin panel where users can upload CSV reports – we won’t have to repeate any fucntionality, just use the existing ones and create a minimal admin web app, whatever technology you may use.
In conclution, you can clearly see that microservices is a good way to go for your IT, you’ll save a lot of time and money. Even though the migration to them might be expensive, it might be worth it in the end.
This also makes us go to the things like cloud (hybrid or public), containers, infrastructure-as-code and many more, but these are topics for the next time.
Whale One embraces the concept of microservices and delivers you the neccessary features and reuses existing microservices to the max extend possible.