As Crossuite onboarded more clients, it aimed to scale effectively, reduce compute costs, and free up its development teams. The goal was to enhance its infrastructure without impacting the application, focusing instead on monitoring, testing, and refining the setup during migration. Crossuite used the AWS best-practices framework for migrating to Amazon EKS, covering external databases, APIs, third-party services, and necessary network adjustments. It was crucial to adapt security policies, identity and access management roles, and compliance checks to AWS using the robust security controls of Amazon EKS.
Crossuite designed its architecture with scalability and high availability in mind. Using Terraform, the team provisioned the Amazon EKS cluster, while GitLab’s continuous integration and deployment pipelines streamlined application deployment onto the Amazon EKS environment. They enabled Horizontal Pod Autoscaling (HPA) for customer-facing services to ensure dynamic scaling. Crossuite configured the ingress layer with an AWS Application Load Balancer, which provided flexible routing and load distribution. For the backend, the team used AWS Relational Database Service (RDS) PostgreSQL, taking advantage of its scalability and reliability.
The company used observability and monitoring tools such as Amazon CloudWatch—a service that monitors applications, responds to performance changes, optimizes resource use, and provides insights into operational health. Thus, Crossuite was able to track application performance and health during and after the migration. With this level of observability, Crossuite confidently migrated massive amounts of data quickly and switched production traffic to Amazon EKS. “We wanted to be validated by AWS solution architects so that we didn’t miss anything,” says Lukas Pollak, DevOps and server reliability engineer at Crossuite. “We got really useful advice from AWS.”
Crossuite seamlessly switched its new Amazon EKS clusters to production in May 2024. This migration removed many manual tasks for the development team, such as spinning up new nodes, manually configuring the scaling policies and mechanisms, managing complex networking and redundancy planning across multiple servers, and redistributing pods across them. The company has multiple pods running on Amazon EKS, and it adopted Karpenter to improve application availability and cluster efficiency by rapidly launching rightsized compute resources in response to the changing application load. Previously, it took the Crossuite team around 15 minutes to spin up a new node. Now, using Karpenter, this can be done automatically in less than 2 minutes—that is, about an 86 percent reduction in time. “It’s seamless for us,” says Madliak. “Plus, the huge flexibility in this setup prepares us for the future.”
Crossuite also established a continuous integration and continuous deployment pipeline on AWS to roll out cluster updates with one click. “Our team can now focus more on development and innovations, not maintenance,” says Pollak. “The overall benefit is a more robust, efficient, and cost-effective solution.”
Through this migration and modernization, Crossuite has improved performance and availability. When activity peaks, its solution can automatically scale to meet demand without affecting the experience of millions of users. The company has achieved 99.9 percent uptime while reducing latency for its customers. “We can now release code to production anytime without affecting site performance, which was a challenge before,” says Madliak. “On AWS, there’s no service disruption with new releases. That brings us closer to 100 percent availability.”
By migrating to Amazon EKS and Karpenter, Crossuite also reduced costs. Using Karpenter’s node lifecycle management in combination with cost-optimized instances, Crossuite reduced its overall costs by 30 percent compared with its previous solution. “Cost reduction has been a huge gain from this migration,” says Pollak. “As a scale-up, we need to focus on cost efficiency.”