If you are a software engineer or a person related to the IT ecosystem, you have definitely come across the term “microservices”, which gained popularity in the recent years. If not, a short definition of microservices is – software architectural approach to application development in which a large application is built as a suite of modular services. Each module represents a specific business requirement and uses a simple, well-defined interface (API) to communicate with other modules. So, enterprise application built according to this pattern consists of multiple separate processes and when a new requirement needs to be implemented, the developers can grab the existing services and start assembling the new logic. If you are still wondering what are the benefits of using this approach, then keep reading.
More about microservices:
The beauty of Software Engineering is to deliver business value, using technology, fast and in the same time to be developed in a way which makes maintenance easy and scalability will be assured. All of this is covered when applying the microservices pattern. Also, application built on microservices is easier to understand, than in a case in which the program is developed in one monolithic block. Other advantage is that there is no need to rebuilt the whole application and then deploy it, which in some cases may lead to nasty downtime, but instead one has to do this procedure only to the service which needs to be changed, because, as you already know, every microservice is a separate process. Thanks to its scalability, this architectural method is considered ideal when you have to enable support for a range of platforms and devices – web, mobile,Internet of Things, and wearables – or simply when you’re not sure what kind of devices you’ll need to support.
In our recent projects we decided to refactor a little bit of functionality which serves a business need of flight package generation. So we headed in microservices direction. The requirements were to develop a flight package system which extracts weather information from a third party web service, then to create various PDF documents, assemble the flight package and after that to sent it via email to different people in the organisation. We have implemented four services – one for extracting the weather information, one for creating the PDF documents, one for assembling the whole flight package and one e-mail module. The whole previously designed monolithic block was replaced by four different services which were independent and easily deployable. During the process we have included a newly hired junior developer, who was able to understand the nature of the microservices and the goal which we were trying to achieve. After comparing the old code with the new approach, he shared with me that the new solution looks much cleaner, easier to understand and maintain. Great benefit!
I you want to feed your hunger for knowledge about this architectural approach, you definitely want to read this great articles which explain how big companies like Uber, Netflix and Amazon have adopted the microservices.
For more information read: