App modernisation is a major challenge for many organisations we work with. Frequently their businesses will rely on a suite of custom applications developed piece meal over many years using a range of technologies. Initially they experience great benefits through streamlining and automation of business processes. However as requirements change it becomes difficult to evolve those applications built with legacy technologies. Inevitability new competitors come to market with their own solutions, built with newer and more efficient technologies and it becomes imperative to undertake application modernisation.
These were the challenges facing a client in the commercial property sector with their mission critical business rates application when they engaged with us at Transparity. Over the last four years we have partnered with them to transform the application and migrate into the Azure Cloud. As the principal architect working on the project from its inception to release I will share with you some of the key benefits they have realized since go live.
Application Modernisation Benefits
There are several possible approaches to application modernisation and migration. From simple ‘lift and shift’ migrations and those incorporating framework upgrades up to complete system rewrites. The final approach was adopted for this organisation’s application as the combination of legacy technologies currently in use were blocking any further improvements to the application.
Reduce barriers to change
The legacy application’s technology stack prevented further development efforts. For example a critical part of the system, the business rates calculation module, was implemented with PL/SQL scripts in an Oracle database. This severely limited testability and maintainability of the module. The modernised version of this module runs as a scheduled WebJob in Azure, implemented as a set of fully tested C# services. A key benefit of this approach is that changes can be made with assurance from the tests that existing functionality remains intact.
Leverage systems integration
The company wanted to move away from the ‘monolithic architecture’ style of the legacy application towards a more ‘service oriented architecture’. This aligned with our vision for the application which we implemented as a .NET Web API with a separate ‘front end’ application consuming the API. This approach bore fruit later on when our customer expressed a need to increase the efficiency of some of the more basic repetitive tasks users were performing. They had an internal capability with automation bots and were able to integrate directly with the Web API layer to automate a set of tasks. This took a mundane workload away from their users and allowed them to focus on generating value for their clients.
The choice to implement an API also meant that the user facing application could be developed separately, with less tight coupling to the application data model. We chose the Angular ‘Single Page Application’ framework which has delivered a much faster an intuitive interface for their users. The same user application has also been opened up to a set of their key clients, replacing another separate legacy application and providing further efficiency gains.
Cloud solutions are often touted as more performant in comparison to on premise applications and this proved to be the case for our customer’s new business rates application. The ‘rates calculation engine’ needed to meet key performance metrics so it could either complete single calculations within 2 seconds or all the calculations within the system as a single batch. Using the Azure Service Bus in tandem with messaging processing WebJobs has enabled us to meet these demands. Processing of these requests, with high compute demand, runs asynchronously to the main application in a separate App Service Plan. This ensures that dedicated resources are always available and the processes can complete within the required time.
All of the key Azure resources in the application are scalable and this has been a key enabler for us to meet performance requirements. If a large batch of calculations must be processed in the live environment we have scaled up the Database and App Service resources to meet this demand. In contrast our Test and Development environments have much lower demands, so their resources are scaled down.
Naturally the ability to dynamically scale application resources offers real world cost benefits. This contrasts to the traditional on-premise IT infrastructure approach where hardware would need to be provisioned to match ‘worst case’ estimates of workload, which in practice often result in large amounts of under-utilised resource.
A particularly good example of this is our choice of database technology. The application uses a suite of ‘serverless’ SQL Azure databases across the live and test environments which are both scaled to meet demands and configured to ‘auto-pause’ when not in use. The savings of auto-paused databases are so large that the costs effectively become negligible in comparison to the rest of the resources. At the time of writing there are 61 databases in place for this particular application, however only a small percentage of them are online resulting in a much lower ongoing cost.
Through our years of experience in application development and modernisation we have been able to deliver a high quality solution which meets all key business needs. Hosting the solution in the Azure cloud has crystalised the benefits which were anticipated at the projects inception and ensured they can provide a market leading service to their clients for many years to come.
Join our webinar to hear more about the benefits of App Modernisation.
If you would like to discuss how we can bring similar benefits to your organisation please book a free consultation.