Als ich im Januar 2023 als Director of Infrastructure & Technology bei Statista anfing, hing unsere Technologie ziemlich hinterher: Viele Services stützten sich auf Legacy-Systeme (z. B. mit WordPress erstellte Websites), und diese waren oft zusammengeschustert oder nicht auf dem neuesten Stand. Instanzen mussten manuell ohne Automatisierung oder Backups konfiguriert werden. Wenn eine Instanz ausfiel, mussten wir sie daher auch mühselig von Hand wieder zum Laufen bringen. 

Als erste Amtshandlung sollte ich mich dringend um die aktuellen Herausforderungen kümmern; langfristig hatte ich die Aufgabe, unseren Tech-Stack rundum zu modernisieren und letztendlich das Nutzungserlebnis für unsere Kund:innen zu verbessern. Es war schnell klar, dass weitgreifende Änderungen notwendig waren, und ich ging die Sache auf meine Weise an. Zur Bewertung und Messung unserer Infrastruktur und App-Performance rief ich ein Proof-of-Concept-Projekt mit der kostenlosen Produktvariante von New Relic in die Welt. Damit wollte ich feststellen, ob der Einsatz von New Relic als Monitoring-Lösung nicht nur langfristig möglich ist, sondern ob uns das auch handfeste Vorteile bringt.

Die ersten Schritte mit New Relic

Als ich zu Statista stieß, wurden Amazon Web Services (AWS) nur in sehr begrenztem Umfang eingesetzt. Der Großteil unserer Architektur befand sich zu der Zeit noch auf physischen Servern außerhalb von AWS. Ich begann mit der Einführung von New Relic, indem ich unseren AWS-Stack instrumentierte, und ich war überrascht, wie schnell und unkompliziert das ablief.

Mit der kostenlose Produktvariante wollte ich der Geschäftsführung zeigen, was New Relic für uns tun kann, und sie dazu bewegen, Observability im größeren Rahmen einzuführen. Die Rechnung war einfach: New Relic kostet uns im Monat das Äquivalent von vier Entwicklerstunden und liefert uns dafür massive Einsparungen, sowohl finanziell als auch an Ressourcen. Da wir den gesamten Tech-Stack instrumentieren können – AWS sowie physische und virtuelle Server –, wird die Erkennung von Bugs und Anomalien enorm vereinfacht.

Observability: Nutzennachweis und Ausweitung

Vor der Implementierung von New Relic schwächelte die Performance unserer WordPress-Instanzen, da sich diverse Plug-ins angesammelt hatten, Websites schlecht optimiert waren und Bugs im Hintergrund für Probleme sorgten. New Relic hat wesentlich dazu beigetragen, diese Probleme zu identifizieren und zu beheben, sodass wir unsere Hosting-Konfigurationen optimieren konnten. Die Verbesserungen ermöglichten letztlich auch die Autoskalierung unseres bis dahin wenig flexiblen Legacy-Stacks ohne unnötige Zusatzausgaben für übergroße Instanzen.

Viele Unternehmen blicken bei der Optimierung ihres Tech-Stacks vorwiegend auf die Kosten. Bei Statista stand die Verbesserung des Nutzungserlebnisses im Vordergrund. Wir wollten die Performance verbessern, ohne die Ausgaben zu erhöhen. Mit der effizienten Optimierung der Instanzen-Performance durch New Relic und einem strategischen Plan zur Migration von physischen Servern zu AWS-Instanzen sind nun auch erhebliche langfristige Kosteneinsparungen möglich.

Enorme Latenzsenkung ohne enorme Kosten

Um das Benutzererlebnis unser Kund:innen zu verbessern, mussten wir die Latenz reduzieren, so viel war klar. Dazu setzen wir neue Caching-Mechanismen ein und ermittelten, welche Websites und -seiten häufig verwendet werden. Mit New Relic konnten wir die meisten Latenzursachen punktgenau lokalisieren. Beispielweise fanden wir einige N+1-Probleme, die zu einer dramatischen Zunahme an Datenbankaufrufen führten. Und das wiederum bedeutete, dass unsere Services viel zu langsam liefen. Plug-ins, die nicht einwandfrei funktionierten, wurden durch moderne, effiziente Lösungen ersetzt. Und zusätzlich entfernten wir einige weitere Plug-ins, die keinen großen Nutzen brachten.

Allein durch die Behebung der N+1-Probleme und das Ersetzen problematischer Plug-ins konnten wir die Latenz dramatisch senken. Seiten mit einer bisherigen Ladezeit von 2 Sekunden brauchen jetzt nur noch 100 Millisekunden – eine Verbesserung von 95 %. Im Hinblick auf die User Experience ist das ein Unterschied wie Tag und Nacht: Unseren Benutzer:innen können wir jetzt wieder ein angenehmes Erlebnis bieten.

All diese Verbesserungen konnten wir ohne großen Zeit- oder Geldaufwand erreichen. Das Einzige, was wir brauchten, war ein modernes Observability-Tool wie New Relic, damit wir genau sehen konnten, was wir an unserer Infrastruktur und unseren Anwendungen verbessern mussten. Nachdem wir nun einige der hartnäckigsten Probleme beseitigt haben, können wir den Aufbau eines besseren, zukunftssicheren Tech-Stacks in Angriff nehmen.

Observability von Anfang an

Wir freuen uns jetzt darauf, unseren Tech-Stack zu modernisieren und das Nutzungserlebnis für unsere Kund:innen weiter zu verbessern. Momentan planen wir die Migration weg von den physischen Servern hin zu nach Bedarf skalierbaren Instanzen, um unsere Betriebskosten zu senken. Bevor wir allerdings zu AWS migrieren, sollen alle unsere Anwendungen cloud-ready sein. Wenn wir diese Meilensteine erst erreicht haben, wird die Skalierung unserer Infrastruktur um Einiges leichter sein.

Bei der Migration wird New Relic eine maßgebliche Rolle spielen. Mithilfe von New Relic werden wir eine Performance-Baseline erstellen und können dann einen Vorher-Nachher-Vergleich anstellen. Und wir möchten, dass Observability vom ersten Moment an in unseren Entwicklungszyklus integriert ist. Auf lange Sicht planen wir auch Custom-Events und Synthetic Monitoring einzusetzen, damit wir immer wissen, was im System los ist, und bei Abweichungen sofort benachrichtigt werden. Das Ganze sollte zu einer deutlichen Zeitersparnis bei Entwicklung und Qualitätssicherung führen.

Wir haben zwar erst vor Kurzem begonnen, machen aber schon gute Fortschritte: Wir stellen zurzeit Entwickler:innen und Projektmanager:innen ein, setzen DevOps-Praktiken um und modernisieren unser Toolset. Ein entscheidender Moment war für Statista die Einführung der kostenlosen Produktvariante von New Relic, denn damit waren wir in der Lage, die Probleme zu diagnostizieren und zu beheben, die zuvor am schwierigsten zu knacken waren. Dank Observability und New Relic werden wir in Zukunft weiterhin bessere Performance und damit ein noch besseres Benutzererlebnis liefern können.

Einfacher Einstieg mit unserer Launch-Vorlage

Wenn Sie wissen möchten, wie leicht der Einstieg tatsächlich für uns war, sehen Sie sich das nachstehende Beispiel unserer Launch-Vorlage an.

#!/bin/bash

# Korrekte Konfig-Dateien nach /etc kopieren

# New Relic Infrastructure Agent einrichten
echo "license_key: eu01xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNRAL" | sudo tee -a /etc/newrelic-infra.yml

# New Relic PHP-Agent einrichten
sudo NR_INSTALL_SILENT=1 newrelic-install install

# New Relic Logs-Integration einrichten
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-XXXXXXXXXXXXXXXXXXXXXXXXXXX NEW_RELIC_ACCOUNT_ID=1234567 NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -n logs-integration -y

# New Relic NginX-Integration einrichten
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-YYYYYYYYYYYYYYYYYYYYYYYYYYY NEW_RELIC_ACCOUNT_ID=1234567 NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -n nginx-open-source-integration -y

# New Relic Memcached-Integration einrichten
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NRAK-ZZZZZZZZZZZZZZZZZZZZZZZZZZZ NEW_RELIC_ACCOUNT_ID=1234567 NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -n memcached-open-source-integration -y

# Services neu starten
sudo systemctl restart memcached nginx php-fpm newrelic-infra