Challenge

In seinen Anwendungen für Tarifvergleiche setzt das IVFP unter anderem auf PLA.NET, eine Software zur stochastischen Simulation von Rokoco.

Diese Simulationen stellen sich, bedingt durch Komplexität und Umfang, als sehr rechen- und damit auch performanceintensiv heraus, was teilweise stark verlangsamte Abläufe innerhalb unserer Vergleichsprogramme verursachen würde.

Um diese Performanceprobleme zu beseitigen und PLA.NET so zuverlässig parallel in unsere Anwendungen einzubinden, entschied sich das IVFP für die Einrichtung einer starken Cloud-Infrastruktur mit Fokus auf horizontale Skalierbarkeit.

Solution

Zur Vorbereitung der Cloud-Migration wurde zunächst PLA.NET mithilfe von Docker containerisiert und in eine Azure Container Registry aufgenommen. So konnte nicht nur die Vereinheitlichung der Anwendung unabhängig der Deployments sichergestellt werden, sondern auch der Weg in den für unsere Lösung zentralen Kubernetes-Cluster vereinfacht werden.

Die plattformunabhängige Software Kubernetes hat uns bereits in vergangenen Projekten mit hervorragenden Ergebnissen in Deployment-Orchestrierung überzeugt und bot auch hier wieder überzeugende Möglichkeiten zur horizontalen Skalierung. Der Plan sah vor, durch effektives Load-Balancing Traffic auf verschiedene PLA.NET-Instanzen zu verteilen und somit den „Flaschenhalseffekt“ sowie seine Performance-Auswirkungen zu umgehen.

Da das in Kubernetes integrierte Load-Balancing allerdings nach dem Zufallsverfahren funktioniert – somit theoretisch also auch „versagen“ und mehrere Anfragen an die gleiche Instanz weiterleiten kann – mussten zur Sicherstellung effizienter Lastenverteilung weitere Schritte folgen.

Die erweiterte Anpassung des Kubernetes-Loadbalancers war leider aufgrund des Betriebs innerhalb der Azure-Cloud nicht möglich, weshalb das IVFP stattdessen auf die Implementierung eines Envoy-Servers setzte.

Dank der sorgfältigen und geschickten Konfiguration des Envoy-Dienstes durch unsere Experten konnte ein eigenes, für unsere Zwecke zuverlässigeres Load-Balancing geschaffen werden und somit die ursprüngliche Problemstellung mit Bravour gelöst werden.

Eingesetzte Technologien

Results

Die Containerisierung und Migration von PLA.NET in einen Kubernetes-Cluster verlief ohne nennenswerte Hindernisse.

Die Ausgangslage wäre wohl bereits durch den Kubernetes-Loadbalancer verbessert worden, hätte aber die Effizienz des Systems für unser Anwendungsbeispiel nicht ausreichend sicherstellen können.

Durch das zusätzliche, eigens mittels Envoy konfigurierte Load-Balancing konnte das IVFP einen deutlichen und vor allem zuverlässigen Geschwindigkeitsgewinn beim Zugriff auf Anwendungen mit PLA.NET-Anbindung feststellen.