Background
Our client, a Germany-based sports betting platform, sought a competitive edge in the dynamic iGaming industry. The challenge was handling vast amounts of data on the platform, responsible for simultaneously managing coefficients for thousands of users.
Challenge
The primary challenge was aggregating and visualizing siloed data (no one in the team knew how all the services were connected). Also, the documentation and its paucity were puzzling issues even for the internal team. Creating a transparent and manageable system was necessary.
Secondly, the platform had to be scalable and agile, capable of swiftly adapting its application environment to support traffic spikes during major sports events (to provide timely coefficients for a multitude of platform users simultaneously).
The existing solution was based on legacy infrastructure and delivery approaches such as manual deployments and static Windows machine configuration. It greatly impacted scaling, failover resistance, and general management.
The client’s infrastructure, hosted on physical, cost-effective Hetzner services, hindered the platform’s competitiveness.
Therefore, quick deployment of new software features that support CI/CD (Continuous Integration – Continuous Delivery) together with the migration from bare metal servers to Cloud was required.
Solution
The infrastructure regarding Code Build and Deployments consisted of 4 distinct and separate environments with 10 hosts each (9 Linux, 1 Windows) as pictured below.
Picture 1: Original Company’s Infrastructure regarding Code Build and Deployments
The Production hosts utilize dual interfaces to separate public and private traffic. Apart from browser client access, all communications happen on the private network through the VPN tunnel.
To tackle these challenges, Gart Solutions embarked on a journey of improvement
-
Step 1: Service Dependency Mapping
Gart created a detailed diagram of platform services, mapping dependencies, and understanding component interactions. This exercise identified areas for enhancement and streamlined the process.
Picture 2: The Map of Platform Services and Dependencies
-
Step 2: Infrastructure Upgrade
The infrastructure underwent a significant overhaul. Lift and Shift migration from land-based servers to a Linux-based HardOne environment was executed using Ansible for automation. This improved platform performance and established a clear and concise update process. The shift from Windows to Linux set the stage for a more scalable and competitive platform.
-
Step 3: Containerization with Kubernetes
Containerizing services with Kubernetes brought a new level of flexibility. This step allowed for easier scaling and deployment of services, streamlining the process. Containerization reduced issues during updates, resulting in a more stable and reliable platform.
-
Step 4: Automation in Operations
Automation in operations emerged as the linchpin ensuring uninterrupted gameplay. This magic extended beyond, encompassing incident response and troubleshooting. A unified automation strategy seamlessly synchronized the entire DevOps pipeline, infusing efficiency into workflows through code integration, testing, deployment, and operations.
The result? Operational excellence!