Spezielles Entwicklungszentrum für soziale Spiele

Spezielles Entwicklungszentrum für soziale Spiele

Mehr als 11 Jahre engagierte Software-Entwicklung, Tests und Support mit dem Ergebnis einer skalierbaren Social-Gaming-Plattform mit 100 Millionen Nutzern und zahlreichen Leistungsverbesserungen.

Inhaltsverzeichnis

Kontext

Der Kunde ist ein weltweit führender Anbieter von landbasierten, mobilen und Online-Glücksspielen mit einer Präsenz in 90 Ländern, Lizenzen in mehr als 250 Rechtsordnungen und mehr als 3.500 Mitarbeitern weltweit. Mit über 1.000+ erteilten Patenten und 3.000+ Marken investiert der Kunde kontinuierlich in innovative Glücksspieltechnologien. Das Unternehmen bietet eine breite Palette von Produkten und Dienstleistungen an, wie z.B. preisgekrönte Spielsysteme, Social-Gaming-Lösungen, leistungsstarke Kabinette und Casino-Management-Plattformen.

Das Ziel des Kunden war es, sein Angebot auf dem globalen Markt zu erweitern, indem neue Produkte und Dienstleistungen auf den Markt gebracht und gleichzeitig die bestehenden aktualisiert wurden. Häufige Änderungen des Portfolios erforderten eine Lösung für die Verwaltung und Konfiguration des gesamten Ökosystems von Spielen und damit verbundenen Ereignissen, Marketing und Werbung sowie für die Analyse der Benutzeraktivitäten. Außerdem suchte der Kunde nach einer Backend-Entwicklung für seine Spielelösungen.

Darüber hinaus arbeiteten sechs geografisch verteilte Teams an mehreren Projekten mit komplizierten Prozessen, die eine solide Kooperations- und Kommunikationsstrategie erforderten, um gemeinsame Ziele zu erreichen. Eine umfangreiche Projektdokumentation musste strukturiert werden, um eine schnelle Inbetriebnahme und Einarbeitung neuer Teammitglieder zu ermöglichen.

Um ihr digitales Produktportfolio und ihre zahlreichen globalen Projekte zu verwalten, suchten sie einen Technologiepartner, der sich ihnen als organischer Teil ihres Unternehmens anschließen sollte. Im Vertrauen auf unsere bewährte Expertise in den Bereichen Custom Software Engineering, Support, QA, DevOps und Remote Collaboration entschied sich der Kunde für Itransition, um ein Eigenes Entwicklungszentrum einzurichten und ein integraler Bestandteil seines Produktteams zu werden.

Lösung

Die Zusammenarbeit begann im Jahr 2009 und sollte über 11 Jahre andauern. Während dieser produktiven Zeit haben wir eine Reihe von Dienstleistungen und Lösungen Schritt für Schritt geliefert.

Phase 1: ein Anwendungsmanager für Facebook-Spiele

Das Team von Transition entwickelte einen skalierbaren, robusten Anwendungsmanager mit einem fortschrittlichen Back-Office, der in der Lage ist, Zehntausende von Benutzern, die gleichzeitig Facebook-Spiele spielen, zu verwalten. Dieser Anwendungsmanager dient als zentraler Verwaltungs- und Konfigurationsknotenpunkt sowie als Schaltzentrale für die globale Anwendungsbereitstellung, Geschäftsanalysen und Marketing.

Wir haben uns dafür entschieden, die Geschäftslogik der Lösung in Ruby on Rails zu erstellen, da diese sehr leistungsfähig, skalierbar und einfach zu warten ist. Auf der Datenbankebene haben wir den MySQL Percona-Server eingesetzt.

Der Anwendungsmanager ermöglicht Folgendes:

  • Einrichten von gezielten Marketing-Kampagnen über ein eigenes Tool auf Basis der Facebook Ads API
  • Zahlungen für Dienstleistungen, Verwaltung von Ingame-Währung und Bonuserwerb
  • Analyse von Spiel- und Nutzerdaten
  • Aktivierung/Deaktivierung von Anwendungen und Spielen
  • Spieleinstellungen und ACL-Konfiguration
  • Benachrichtigungsmanagement für Facebook-Anwendungen
The application manager for Facebook games

Stufe 2: eine mobile Spielmaschine für landbasierte Kasinos

In der zweiten Phase unseres dedizierten Center-Programms haben wir die Online-Engine der ursprünglichen Social Slots des Kunden für die Nutzung auf mobilen Geräten in landbasierten Casinos angepasst.

Das Spiel mit den sozialen Spielautomaten hatte aufgrund seiner Beliebtheit eine konstant hohe Last zu bewältigen, wurde jedoch auf mehreren Bare-Metal-Servern ohne Autoskalierung gehostet. Zu den weiteren Herausforderungen gehörten ein ungeordneter Legacy-Code und mehrere Korrekturen, die für eine Reihe voneinander abhängiger Anwendungen erforderlich waren.

Die Ziele für diese Phase waren die Aktivierung der automatischen Skalierung und die Umbenennung des Spiels für jedes einzelne landgestützte Casino, in dem den Besuchern angeboten werden sollte, die mobile App auf ihren Geräten zu installieren.

Wir entwickelten das Backend und konzentrierten uns darauf, die Bereitstellung und Konfiguration des mobilen Spiels so einfach und schnell wie möglich zu gestalten. Wir setzten den Entwicklungsklon des Spiels auf der Google Cloud Platform-Infrastruktur ein und stellten sicher, dass alle folgenden Systemkomponenten miteinander kommunizierten und den Client des mobilen Spiels unterstützten:

Atlas: Die Komponente umfasst die API und das Back-Office und enthält Spieleinstellungen wie visuelle Assets für den mobilen Client, Slot-Konfigurationen usw.

Faye: Die Komponente ermöglicht die direkte Kommunikation zwischen Atlas und dem mobilen Client.

Segmentierungs-Engine: Die Komponente ermöglicht die gezielte Ansprache von Spielern anhand ihrer demografischen Daten und Spielvorlieben.

Beacon: Die Komponente ermöglicht durch die Nähe ausgelöste Benachrichtigungen und personalisierte Push-Benachrichtigungen für Spieler.

Wir haben außerdem die folgenden Verbesserungen eingeführt:

  • Entfernen von nicht verwendeten Modulen und Bibliotheken.
  • Anpassung des Codes an die Besonderheiten der einzelnen landbasierten Casinos.
  • Verbesserung der Benutzerauthentifizierung durch Integration von Amazon Cognito.
  • Integration von Player Max.
  • Die Aktivierung der automatischen Skalierung und die Durchführung von Leistungstests, wodurch die Hosting-Kosten optimiert und die Last von bis zu 24.000 gleichzeitigen Spielern aufrechterhalten werden konnte.

Phase 3: Qualitätssicherung

Während unseres gesamten Engagements bei der Entwicklung von Social Games für den Kunden war das Testen der Software ein wesentlicher Bestandteil aller gelieferten Lösungen.

Leistungstests

Wir testeten die Leistung des Anwendungsmanagers, um sicherzustellen, dass er der Last von 10.000 gleichzeitigen Benutzern standhält und die Antwortzeit nicht länger als 0,2 Sekunden ist.

Zu diesem Zweck haben unsere QA-Ingenieure in Zusammenarbeit mit den Software-Entwicklern, die an diesem Produkt arbeiten, reale Nutzerströme für die Lastemulation abgebildet. Das Team entwickelte Lastskripte mit Apache JMeter und lud sie auf GitHub hoch, damit der Kunde den Fortschritt in Echtzeit verfolgen konnte. Weitere Tools, die für Leistungstests eingesetzt wurden, waren Fiddler, Stackdriver, InfluxDB, Grafana und Redis.

Die Untertypen der Leistungstests umfassten Stress-, Skalierbarkeits- und Lasttests.

Stresstests deckten die Fehler auf, die die Lösung daran hinderten, eine allmählich steigende Last aufrechtzuerhalten, und ermöglichten es, die Anwendung so zu optimieren, dass sich ihre handhabbare Last verzehnfachte.

Skalierbarkeitstests halfen dabei zu ermitteln, wie viele Maschinen zu Google Cloud Server Autoscaling hinzugefügt werden sollten, um die Systemlast gleichmäßig zu verteilen und die Leistung proportional zu den verbrauchten Hardwareressourcen anzupassen.

Lasttests bestätigten, dass die Antwortzeit während fünfstündiger Intervalle, die als durchschnittliche Sitzungsdauer der Nutzer identifiziert wurden, konstant und innerhalb des normalen Bereichs blieb.

Am Ende der Leistungstests erstellten wir einen Abschlussbericht, der die Ergebnisse und unsere Empfehlungen enthielt. Unsere gründliche Teststrategie half dem Entwicklungsteam, Fehler frühzeitig zu beheben und die Erwartungen des Kunden zu erfüllen, ohne dass es zu kritischen Fehlern kam.

Testautomatisierung

Itransition lieferte Lösungen zur Testautomatisierung, Entwicklung und Funktionsaktualisierung in einem Test-Harness, um die neuen Produkte des Kunden zu unterstützen und ihre Qualität zu überprüfen. Das QA-Team deckte den Host-Server mit Autotests unter Verwendung von Rest und WebSocket ab, schrieb das bestehende Framework unter Verwendung von C#, Cucumber (Specflow) und TypeScript um und führte die UI-Testautomatisierung für das Admin-Portal durch.

Wir entwickelten auch ein Java-Add-on für Appium zur Automatisierung mobiler Tests, ein Tool, das es der mobilen Spiele-App ermöglicht, mit den nativen Geräteelementen zu kommunizieren (z. B. um Einkäufe im App Store oder bei Google Play zu tätigen). TestNG, Teil von Appium, wurde verwendet, um automatisierte Tests für die iOS- und Android-Versionen der App zu organisieren und durchzuführen.

Die vollständige Struktur der miteinander verbundenen Tools, die für die Automatisierung und Ausführung von mobilen Tests verwendet werden, sieht wie folgt aus:

The automated test run structure

Phase 4: Unterstützung und Wartung

Itransition bot Support- und Wartungsdienste sowie die Automatisierung der Umgebungseinrichtung für das in Facebook, Google Play und App Store integrierte Online-Casino-Spiel.

Um die Teamarbeit zu optimieren und die Einrichtung und Wartung der Umgebung zu automatisieren, führten die Support-Techniker von Itransition eine Reihe von Aufgaben in den folgenden Bereichen durch:

Automatisierung der Umgebungseinrichtung: Wir haben Tools für die Serverkonfiguration, -bereitstellung und -orchestrierung eingeführt und eine automatische Aktivierung der virtuellen Umgebung eingerichtet.

Konfigurationsmanagement: Wir sorgten für eine konsistente Leistung der Plattform.

Automatisierung lokaler Testskripte: Wir passten die Plattform für die kontinuierliche Integration an, machten automatisierte Unit-Tests zum Bestandteil des Bereitstellungsprozesses und automatisierten sich wiederholende Testfälle, um Zeit zu sparen.

Automatisierung der Bereitstellung und kontinuierliche Bereitstellung: Wir haben Anwendungen in den Entwicklungsumgebungen bereitgestellt, um effiziente, zuverlässige und vorhersehbare Automatisierungsergebnisse zu erzielen.

Unser Beitrag führte dazu, dass das Team die Zeit für die Serverkonfiguration um das 2,5-fache, die Testzeit um das 5-fache, die Softwarequalität um 57 % und die Bereitstellung um das 3-fache reduzierte.

Verfahren

Das dedizierte Entwicklungszentrum ist seit über 11 Jahren das grundlegende Modell für die Zusammenarbeit mit dem Kunden. Das über 80-köpfige Team von Itransition besteht aus sechs Unterabteilungen, die sich mit der Entwicklung von Gesellschaftsspielen und ergänzenden Dienstleistungen wie Support, Wartung und Qualitätssicherung befassen. Jede Unterabteilung besteht aus 10-20 Entwicklern, einem Projektmanager, einem Business-Analysten und 2-3 QA-Ingenieuren. Die Wachstums- und Optimierungspläne der einzelnen Teams werden von Itransition und dem Kunden vierteljährlich überprüft.

Bereits in der ersten Phase haben wir uns für Scrum mit 2-Wochen-Sprints als Entwicklungsmethode entschieden, um die inkrementelle Produktlieferung zu erleichtern. Wir verwenden Atlassian Jira für die Planung und das Aufgabenmanagement. Unsere Scrum Master leiten die agile Umsetzung und koordinieren die Forschung und Entwicklung, damit der Kunde bei jedem Teilprojekt einen maximalen geschäftlichen Nutzen erzielen kann.

Um das Infrastrukturmanagement zu automatisieren, haben wir ein DevOps-Team eingesetzt. Deren Implementierung von Infrastructure as Code ermöglicht es dem Kunden, eine neue Umgebung innerhalb von Minuten von Grund auf neu aufzubauen. Unsere DevOps-Ingenieure haben auch die Backend-Infrastruktur auf Kubernetes umgestellt, was die automatisierte Bereitstellung weiter verbessert. Für die kontinuierliche Integration setzen wir Jenkins und Bitbucket ein.

Unsere Projektkommunikation umfasst Sprint-Planungs- und Review-Meetings, wöchentliche, monatliche und vierteljährliche Sync-Ups, tägliche Telefonate sowie Vor-Ort-Meetings mit den wichtigsten Entscheidungsträgern des Kunden.

Ergebnisse

Mit mehr als 11 Jahren Zusammenarbeit und mehr als 80 Fachleuten von Itransition, die an dem Projekt arbeiteten, wurde dies zu einem unserer größten und langjährigsten Kunden überhaupt. Durch die Unterstützung dieses weltweit führenden Spieleanbieters mit einer Reihe von Lösungen, die die Entwicklung sozialer Spiele, Cloud Computing, Softwaretests, DevOps und Support-Services umfassen, haben wir die folgenden Meilensteine erreicht:

  • Entwicklung einer skalierbaren Plattform für die Verwaltung von Facebook-Spielen mit 100 Millionen Nutzern pro Installation, 450.000 täglich aktiven Nutzern, 2,2 Millionen monatlichen Nutzern, 40.000 Anfragen pro Minute mit einer durchschnittlichen Antwortzeit von 45 Millisekunden und 120 GB an täglich anfallenden Daten mit deren weiterer analytischer Verarbeitung.
  • Bereitstellung und Konfiguration eines mobilen Spiels für landbasierte Casinos.
  • Optimierung der Hosting-Kosten und Aktivierung der automatischen Skalierung mit einem maximalen Lastwert, der doppelt so hoch ist wie das erwartete Ziel.
  • Senkung der Serverkonfigurationszeit um das 2,5-fache, Beschleunigung der Tests um das 5-fache, Verbesserung der Softwarequalität um 57 % und Beschleunigung der Bereitstellung um das 3-fache.
  • Komplexe Zusammenarbeitsprozesse über mehrere Projekte hinweg und Einrichtung einer einheitlichen Wissensdrehscheibe mit detaillierter Projektdokumentation.