
For a large investment company, we were hired to migrate their Cloud platform to the platform of their new owner. This was a complex process, because of the size of the platform, and applications running on it, and the rules and regulations that the new owner adheres to, because they're based in both the EU and the US.
Complete migration from one cloud platform to another with zero downtime.
Centrally managed cloud infrastructure with unified governance and control.
Modern IaC approach using AWS CDK for repeatable, version-controlled infrastructure.
Leveraging Lambda, API Gateway, and serverless patterns for scalability.
Modern data flows and event-driven patterns for real-time processing.
Built with Python, Node.js, and TypeScript for maintainability and performance.
Our customer, a large investment company, was acquired by a competitor. This required their AWS Cloud platform to be migrated and integrated into the new owner's platform. Because the new owner is based in the United States, we had to adhere to both European and US regulations. This was quite a challenge.
Meanwhile, we still had to maintain the existing platform, and keep the current flow of data and services, including payment services, running.
To implement this migration, we went through several phases. Our first approach was to use an internal tool that the new owner had developed. This tool was designed to help developers quickly onboard new AWS accounts and applications.
We had to investigate how to migrate the most critical services - the databases. We had to find a way to migrate the data from the old platform to the new one, while keeping the data secure and compliant with European and US regulations. It was then that we found out that this internal tooling did not support the restoration method we needed.
Because of the myriad of regulations in the financial sector, both in the EU and the US, we had to find a different approach. We also had to find a different way to create a new platform and organize our accounts and cloud-based applications. Meanwhile, payment services had to keep running, and we had to keep the data flowing.
After quite some deliberation, we managed to find a satisfying solution to all of these issues. Luckily, another company was acquired a while before our customer, and they managed to migrate their platform to the new owner's platform. We contacted them, and they were willing to share their experiences with us. They used Terraform to create their new platform, and managed to onboard all their accounts and applications in a way that was also useful for us.
For the payment flows, we had to implement a custom solution. We had to extract the data from the old platform, sometimes directly from the database, and sometimes through a Kubernetes cluster, where the data was generated by an application. This data was then sent to an S3 bucket, from where it was picked up by a Lambda function. This function processed and/or enriched the data, and put it in another S3 bucket. From there it is picked up by a secure data transfer service and sent to the platform of the new owner.
For designing and building the data transfer application, we used the Cloud Development Kit (CDK). This allowed us to create the infrastructure as code, and deploy it in a secure and repeatable way. We used a combination of Python, Node.js and TypeScript to create the Lambda functions and the data transfer application. The data transfer application was designed as an Event Driven Architecture, where the data was processed in small chunks, and where the data was enriched and validated in a secure way.
The foundation for a succesful transformation to the Cloud is the use of a Landing Zone. Landing Zones bundle cloud environment configuration such as; Security, Compliancy, IAM / RBAC, Networking, Billing, Logging, Monitoring and Auditing as well as the configuration of products to support specific workload requirements. Landing zones are delivered using Infrastructure as Code (IaC) which ensures consistently trusted, rapid and repeatable deployments.
Read More