Since 2012 Ryte has been offering an application for analysing and reporting customers optimisation potentials as SaaS. The software platform is based on a modern micro-services architecture, but was hosted in a traditional datacenter. For the migration project to AWS, kreuzwerker was chosen as a competency partner.
Being located in a datacenter caused the common issues to occur over time, like managing fleets of application containers, permissions, scalability, snapshots, database, everyday patches etc. Maintaining the performance and uptime of the application bound too much valuable engineering time, so Ryte decided to move to a managed platform.
Making the most out of AWS offerings, Ryte and kreuzwerker planned not only a migration, but also an improvement of the architecture.
Besides more common AWS services, the following are integral parts of the migration and continued hosting:
AWS Database Migration Service for PostGreSQL;
Amazon Elastic Container Service;
Elastic Load Balancing - Application Load Balancer that serves both at the same time: traditional Puppet deployed EC2 instances as well as Docker containers running on AWS ECS.
Following the AWS Security and Design Guidelines, kreuzwerker together with Ryte’s engineers defined the target infrastructure, described and rolled it out via Terraform (Infrastructure as Code). kreuzwerker also led in setting up the final account for organization structure and permission scheme - again using Terraform for reproducibility. This way, every development squad became an access to multiple AWS accounts separated into dev, testing, and production.
Besides the obvious relief by using IaaS and SaaS, the software platform itself is now even more manageable by CI/CD processes. By using the Infrastructure as Code approach, DevOps principles could perfectly be followed in source code management - feature branches, code reviews, merges, and rollout to production.
Instead of implementing traditional scaling techniques, Ryte uses managed infrastructure components that shift responsibility further down to IaaS and SaaS solutions. This way, its engineers can concentrate on improving and developing their platform.