What was the problem?
A mission-critical system at a large enterprise had become so unwieldy it was sucking up resource and impacting the organisation’s agility. The enterprise engaged 345 Technology to help identify a way forward.
Although initially designed from separate, self-contained components, over time, the functionality of the system had expanded to cover numerous business processes, with many of the underlying applications becoming intertwined and interdependent. The system had effectively become a monolith. This resulted in a complex and precarious system which was difficult to update, creating a number of resource-intensive issues for the organisation:
- Disproportionate levels of testing were required for every single update because even minor changes risked affecting the entire system
- Rigorous testing was badly delaying delivery of updates and reducing the organisation’s agility
- Because of the interdependencies, the system needed to be understood as a whole by the technical team, demanding a far higher level of skill and knowledge
- Even small changes required the entire system to be updated, resulting in painful deployments
- There was a reluctance to update legacy code because technical teams knew that it would result in months of painstaking work
Using our knowledge and expertise in developing high-performance, mission-critical enterprise systems that scale, 345 Technology analysed all of the system components and interdependencies and produced a vision of the future system. The new system comprises 39 microservices which can be independently modified, retired, or updated, without impacting the functionality of the other components. Many of the microservices can be created simply by repackaging elements of the existing system.
The enterprise required a system with independent elements that could be quickly changed or updated, without being dependent on employees with in-depth knowledge of the entire system and without requiring rigorous testing of the entire system every time a small change was implemented.
The system is mission-critical and therefore any changes introduced would have to be made without risking the operation of the main system.
Detailed analysis and understanding of the legacy code would need to be undertaken to understand cross-dependencies before suggesting any changes.
Initially, 345 Technology worked with the client to set the parameters for a new system that would meet the needs of the enterprise now and in the future. In particular, we wanted to enable the enterprise to make rapid changes to business processes, without eating up so much resource. Together with the client we agreed on a vision to move to a microservices architecture, composed of discrete services that can be changed, updated, tested, deployed and scaled, or retired, without impacting the other microservices that make up the whole system.
To be able to dismantle the ‘monolith’ that the mission-critical system had become, we first needed to gain detailed knowledge and understanding of all of the working parts of the system and how they fitted together. We had to understand what function each part of the system performed, which information flowed through it and how it related to other parts of the system.
Since many of the system’s components were originally designed as stand-alone applications, logically separating them out was the first step. We knew that we could use newer technology to simplify large parts of the system, using better software design practices.
Following our analysis of the cross-dependencies within the system, we were able to identify the component changes that would make the biggest impact on the organisation. This helped us to identify which elements should be tackled first. We then re-imagined the rest of the system.
Armed with our knowledge of the mission-critical system and the latest technology available, we produced a vision of the future system comprising 39 different microservices, many of which could be created by simply repackaging parts of the existing system.
Once we knew how many microservices were required, we were able to show the client how the monolith could be safely dismantled, one piece at a time. We sequenced the 39 different microservices so that we had a plan of attack that would get progressively easier as we tackled each element.
Was what the result
At the end of the engagement, the client had a workable blueprint for its future microservices-based system, produced by 345 Technology.
We also provided the client with a development roadmap to deliver the 39 different microservices and identified the technologies and design elements required to turn the vision into reality.
Like any gargantuan task, once the update of the mission-critical system was broken down into smaller, more manageable tasks, it became a lot more achievable and overcame the inertia which often stifles major transformation projects.
The client organisation is currently working through the roadmap, with assistance from 345 Technology.