Application Modernisation of Legacy Ruby on Rails to AWS
Case Study – Modernise legacy Ruby on Rails application
Some mid-sized organisations have limited budget and resources when it comes to software delivery, but are interested in moving to cloud because of the increased speed and agility that cloud offers, and when done correctly, potential cost savings. This case study will outline how Innablr helped a mid-sized organisation leverage the best fit AWS services to bring their legacy application stack into a cloud native stack.
Modernisation often touches every aspect of the application: code, pipelines, deployment, operations routines and development processes.
When approaching any modernisation project, the current state of the application needs to be carefully assessed and captured, while the target state needs to be clearly defined and articulated, which will be needed to build out a detailed roadmap for a successful program of work.
Constrained resources and budgets
Lack of understanding of the current application stack
24/7 online application requires a detailed transition approach
Learning curve to transition client’s team to a cloud native platform
Our client develops, hosts and offers a digital commodity trading platform. They were operating this platform on a legacy application stack with a monolithic backend architecture, which was written on Ruby on Rails and had previously migrated this into AWS, like-for-like with the requirements of their previous infrastructure.
This approach to hosting their business critical application brought our client a few challenges:
Lack of observability
Lack of data protection
No clear operation routines
Slow development and release cadence
Up to 12 hour deployments
Due to these challenges, user experience was being impacted, and management saw an opportunity to improve both their internal and external user experiences.
Innablr was engaged to assess the current state, offer a modernisation roadmap, that will address the above issues and assist with the engineering effort to execute on the modernisation program.
After a discovery phase, completed in cooperation with the customer teams, Innablr put forward a modernisation proposal, that included:
Containerisation of the backend with hosting in AWS ECS and eventually departing from the monolithic nature of the backend
Subsequent migration to AWS ECS Fargate to improve the elasticity of the stack and save costs
Work on test coverage to speed up continuous integration and increase confidence
Use 100% IaC, prevent any manual interaction with the infrastructure
Implement blue-green deployments with documented back-off strategy to reduce release risks
Fully automate deployments to achieve frictionless releases
Regular backups of the databases using AWS Backup for data protection
Significant work on observability using AWS CloudWatch and CloudWatch Logs, including dashboards and alerting
Reduction in Cost
By refactoring the infrastructure build the customer was able to achieve 4x cost reduction
Quicker Release Cycle
Full continuous integration and extensive test coverage greatly raises their confidence in releasing new functionality and blue-green deployments allow for a quick rollback of a deployment