The Customer

The customer is a real estate developer based in the United Arab Emirates, having a portfolio of more than 35,000 homes delivered, and another 30,000 being developed. With more than a billion dollars of sales in 2020, the customer is amongst the largest private property developers in the country.

The Challenge

The customer point of presence on the Internet was a complex system of multiple portals, websites, integration platforms, lead queing systems, and other independent web assets. Managing all these disparate and complex systems were proving to be very difficult for the IT, application and content teams. Updates were done manually and without going through an approval process. Scaling of the infrastructure was another issue, as everything had to be done manually. Security, by extension, was problematic too, with patching and upgrades proving to be time consuming and used to cause downtimes.

The Solution

The process of improvement of the customer environment started of with a detailed study of the infrastructure, applications and integrations. Legacy, monolithic and out-of-support applications and services were identified, and a process to modernize the architecture was initiated. For those systems which could not be modernized, a lift and shift policy was adopted. First off, the customer was advised to assemble a multi functional team that could address all aspects of the modernization. Developers, solution architects, operations, security and testers was bought together to form the new team.

Repos with multiple branches were configured for both application and infrastructure. The infrastructure on the cloud was built for scalability using Elastic Load Balancers and Auto Scaling Groups. The CMS was designed in a headless model, with GatsbyJS used to create a static frontend and files stored and served from S3 through CloudFront. RDS Aurora (MySQL Compatible Edition) was used for the database. AWS Web Application Firewall was used to secure the web assets. External connectivity to third party SaaS platforms are established through VPC Peering as well as VPNs. The separation of code from the infrastructure means that it becomes immutable and can be easily replaced whenever there is a new commit to the repo. CI/CD workflows were created with multiple pipelines automating the deployment of applications, moving from Dev, Stage and Prod environments.

The Result

With a completely scalable and DevOps driven infrastructure, the customer team was able to push changes to the application much faster, and also had the ability to rollback in case of any issues. Scalability and availability was no longer a problem as it uses the virtually unlimited capacity of S3, the redundancy and availability of Aurora RDS, EC2 with Auto Scaling, services like CodePipeline, CodeBuild and CodeDeploy, and secure with the integration of AWS WAF, and dettective tools like AWS GuardDuty.

Technologies and Services Used