From monolith to microservices: the turning tide
Most types of businesses still rely on some legacy application that was originally developed for fast deployment but grew over time and became unmanageable, offering low cohesion and high coupling. It is usually difficult to intervene on any one module of this monolith as changes to one, immediately affect other modules.
Typically, the monolithic application will be difficult to integrate with new functionality and therefore makes it hard for the business to respond to changing market demands rapidly. Simple, but important, user experience integrations thus have an incredibly long time to market, are highly complex and create large dependencies as well as demanding vast deployment times.
For this reason, as Energy and Utilities businesses innovate and try to respond to new demand by internal users as well as end customers, they are embracing the opportunities offered by the Cloud and opting for a microservices architecture.
Benefits of a microservices architecture
A microservices architecture typically promotes or mandates applications that consist of one or many independent services, each related to a single business capability. Each application has its independent lifecycle, so it can be deployed, scaled and developed without causing knock-on effects to any other service.
This additional scalability and flexibility, leverages the cloud and new technologies to respond to emerging market changes and provide users with the experience they want.
Important caveats when building a microservices architecture
Microservices architecture requires knowledge and foresight. Fincons Group has developed the skills to tackle the mammoth task of shifting from a monolithic to a microservices architecture as well as designing the new system from scratch through years of experience.
For starters, in the move to microservices, developers need to consider that core business systems must remain up and running and fully functional throughout the migration. This means the monolith must run in parallel with the microservices architecture as it is gradually phased out. In addition to this, special consideration needs to be given to the role of the database, that is typically a single repository in a monolithic approach, and how to manage transactions that span different microservices.
Understanding potential pitfalls to make microservices really work in Energy and Utilities
Fincons Group specialises in the integration of different technologies and holds expertise on systems typically used in the Energy and Utilities sector. Working with a partner that has this level of experience and knowledge is key to ensuring that common pitfalls are avoided as your Energy or Utilities company moves from monolithic applications to a microservices architecture.
Specifically, the interaction between multiple microservices increases the possibility of failure points making the expertise of your developer even more critical as they will need to stay one step ahead at all times and plan for failure.
Distributed logic and data also increase effort required in identifying root causes for issues. Traditional logging may end up producing too many logs when applied to microservices and end up causing more damage than good therefore, logging that correlates across several different platforms needs to be set up and tested.
Finally, when working with a system that tends to increase operational complexity it is key to enlist the help of partners that are able to provide the workforce, skills and experience required to manage evolving applications without overburdening internal teams.
Fincons Group: delivering microservices to a major Italian Gas provider
Fincons Group was recently tasked with a major development project for a leading Italian gas provider. The requirement was to move from a monolithic application to a microservices architecture. While the registry and print function splits were intuitive, the division within the rule engine was highly complex. The rule engine and calculation execution had in fact been developed to be highly reliable and scalable but within the monolithic architecture and had to be entirely redesigned to leverage the scaling innate to microservices within the cloud. Similarly, dividing the database to make it available to all the new microservices created presented significant challenges.
Fincons Group rapidly set up teams to scale up resources and work in parallel on different atom-level functions to speed up deployment. This meant that in addition to an ample baggage of pre-existing knowledge, everyone learnt new skills, specifically relating to the destination cloud selected which required tuning and redesign.
The success of the project was down to these first phases, when the client and Fincons Group agreed on clear stage-by-stage objectives and what success would look like.
The first step was the development of the initial rule model and calculation logic for invoicing and gas distribution. Once the key invoicing process was perfected, a steady stream of work on other interfaces and integrations began, successfully managing transactions across microservices and the crossover of data from various microservices for calculations
Microservices architecture to support smarter product movements: a Fincons use case
Fincons Group is also developing a new microservices architecture for a major refining, gasification and electricity cogeneration plant business. After working for a number of years with the company on their information system for the maritime movement of product that integrates with the corporate SAP, the company confirmed its confidence in Fincons awarding us with a contract to redesign the system into microservices.
The existing movement information system manages the scheduling of extractions and introductions by sea, planning and management of assets, excise communications, materials balances and storage management. The new system will also provide live vessel tracking, ETAs and a smart assistant.
This new cloud-oriented, microservices architecture will guarantee vertical and horizontal scalability with minimal base configuration, while leaving room for customization. In order to make finding developers easy and fast in the future, the system will be based on modern, open-source technology.
Supporting a major electricity provider
Another interesting use case is provided by Fincons’ involvement with the leading Italian distributor of electricity and gas.
Currently, within the free market, the user is notified of any tariff changes (usually via email) within a set time frame, with tacit renewal in case of no reply by the customer.
Fincons was tasked by this distributor to develop a new system for renewal campaign building, monitoring and reporting in a microservices architecture. This highly complex task was assigned pressing final and intermediate timelines that Fincons successfully met.
Unlike monolithic applications, the micro-services architecture gives the distributor the ability to act immediately on individual services with dedicated teams, improving response times and providing scalability.
Fincons Group delivered this challenging project on time, providing seamless integrations with other applications including the company’s legacy CRM.