« CASE STUDIES

Application modernisation

Seamless migration from on-prem to the cloud. Migrated an existing application to a modernised AWS architecture using the 'strangler pattern’ for security, flexibility, scale, and reduced costs.

Tags

Product DevelopmentApp ModernisationAWSTechnology

Date

Feb 2021

The Opportunity

A blue-chip resources client developed a process management solution for a fully integrated and highly automated mine site. The solution had been developed at their demonstration site and they decided to roll it out across Australia.

Large automated mine site machinery as sunset

This proved to be much harder than anticipated.

Constraints inherent in the design of the system meant that scaling to multiple sites would be complex and costly. Moving the platform to the cloud was floated but the current technical implementation prevented this. Furthermore the solution was beset with performance and reliability issues which would have been unmanageable at scale.

So the client turned to Mechanical Rock to evaluate the possibility of rearchitecting the solution to a more modern cloud architecture, which would deliver reliability and scalability.

Mechanical Rock was able to help the client migrate to a modern, container based architecture in AWS. In the process, we were also able to transform the client’s software development process which reduced their change cycle from 3 months to 3 days.

The Process

Mechanical Rock established a seven point plan for a modernised cloud application.

Diagram showing Mechanical Rock's end to end delivery processMechanical Rock's end to end delivery process.

The new architecture would deliver higher developer productivity, improved security and reliability and enable the solution to scale to meet demand.

The plan included:

  1. Implementing strong authentication and layered security
  2. Containerising the application using Docker
  3. Hosting the application on a modern cloud-based container orchestration platform
  4. Adopting managed cloud backing services where possible
  5. Improving observability and monitoring
  6. Improving automated testing across the stack
  7. Adopting continuous delivery, including automated infrastructure provisioning
Process diagram outlining requirements for high availability and reliabilityThe process to obtain a high availability and reliability application.

The Solution

Application Modernisation

In partnership with the internal product team, Mechanical Rock migrated the existing application to a modernised AWS architecture.

This included:

  • Porting the application from .net 4.0 to .net Core
  • Building and deploying services as Docker containers, running in ECS on AWS Fargate.
  • Fully automated deployment using Infrastructure-As-Code.
  • Using ‘wiretaps’ to duplicate production traffic and to seamlessly migrate from on-premise to cloud services.
  • Federated authentication and authorisation with AWS Cognito & Azure AD.
  • Managed services such as Aurora RDS to reduce the TCO for the system’s Postgres databases and to increase scalability and reliability.
  • Comprehensive monitoring and observability through CloudWatch logs, AWS X-Ray and custom dashboards.
Icons of AWS products and services which all for a modernised application architectureAWS architecture for application modernisation.

The Benefits


Security and Compliance

The Mechanical Rock solution meets all the benchmarks of the AWS Well Architected Framework and provides a defence-in-depth security model. The use of infrastructure-as-code also eliminates configuration drift between environments.

Flexibility and Scale

The flexible solution gives the product team the ability to deploy multiple environments at the push of a button, each of which can automatically scale to meet demand.

Reduced Costs

The resulting flexibility enables the team to operate the system at a cost, which is an order of magnitude lower than an on-premise solution.

DevOps Transformation

In addition, Mechanical Rock taught the product team new techniques which lifted their DevOps maturity :

  • Continuous Delivery - Trunk Based Development and Behaviour Driven Infrastructure have reduced the deployment cycle from 3 months to 3 days.
  • Improved Monitoring and Reporting - improved observability and shortened feedback loops allow the team to understand the behaviour of their system in real time.
  • Improved Reliability and Stability - new processes for incident response and troubleshooting have allowed the team to continuously improve the reliability and stability of their system.


THINK WE CAN HELP YOU?

Get in Touch

Reach out to us and a member of our team will be in touch right away.

contact@mechanicalrock.io