Observability
Software & Technologie

Box: Bereitstellung des Elastic Stack für Observability – Microservice für Microservice

AUF EINEN BLICK

  • 180
    Mrd. Dokumente in Elasticsearch
  • 190TB
    Datengröße insgesamt
  • 20TB
    täglich zu ingestierende Datenmenge

Geringere Kosten

Durch die Migration von Splunk zu Elastic konnte Box die Kosten für das Ingestieren von Logdaten halbieren

Bessere Observability-Funktionen

Nie mehr Ablehnung von Logging-Projektvorschlägen wegen der Kosten für das Ingestieren

Mehr Möglichkeiten für Engineers

Je mehr Box wächst, desto wichtiger ist es für die Engineers, Zugriff auf Logdaten zu erhalten und die Observability auszubauen

Verwendete Produkte


Informationen zum Unternehmen

Als reiner Speicherplatzanbieter gestartet, hat sich Box zu einer Cloud-Content-Management-Plattform mit exzellentem Ruf entwickelt, die es Unternehmen ermöglicht, die Produktivität ihrer Mitarbeiter und Kunden zu erhöhen und dabei das Wertvollste der Kunden – ihre Dateien und missionskritischen Workflows – zu schützen.

Im Cloud-Content-Management-Umfeld von heute mit seinem hohen Wettbewerbsdruck ist es für Box von essenzieller Bedeutung, Probleme schneller als bisher erkennen, identifizieren und lösen zu können. Der Grund dafür ist einfach: Box ist Bestandteil von Millionen geschäftskritischer Workflows seiner Kunden und für das Unternehmen gelten hinsichtlich Stabilität, Geschwindigkeit und Compliance strenge SLA-Vorgaben.

Die SLA-Versprechen, die Box gegenüber seinen Kunden eingegangen ist, lassen dem Unternehmen nicht viel Spielraum für Fehler. All dies zusammengenommen bedeutet, dass Box ein hohes Maß an Einblickmöglichkeiten in die eigene Infrastruktur benötigt, damit es die riesige Zahl von Anwendungsfällen unterstützen kann, die sich ergeben, wenn man Millionen von Nutzern hat – ganz abgesehen von denen der mehr als 95.000 Enterprise-Kunden.

„Unsere Kunden und Nutzer vertrauen Box nicht nur Inhalte, sondern auch ihre geschäftskritischen Workloads an. Jeder Ausfall von Box würde sofort zu Einkommensverlusten bei den Kunden führen“, weiß Deepak Wadhwani, Engineering Manager beim Observability-Team von Box.

Die Website von Box führt als Kunden neben Unternehmen wie Allstate, AstraZeneca, Coca-Cola Company, Morgan Stanley, Oxfam, Olympus, Pandora ein ganzes „Who Is Who“ anderer bekannter Namen auf.

Anforderungsprofil von Box

Box packt aus: So lief es mit Elastic

Über die letzten Jahre hinweg sind beim Engineering-Team von Box die Bedenken wegen der fehlenden Skalierbarkeit des langsam alternden Reporting-Backends immer größer geworden. Angesichts der ambitionierten Zukunftspläne des Box-Managements suchte das Observability-Team nach einer zuverlässigeren und kostengünstigeren Lösung für das Logging von Anwendungs- und operativen Daten, als Splunk sie bot.

Dabei handelte es sich um missionskritische Prozesse mit erhöhter Priorität, zumal Box dabei war, die monolithische Infrastruktur in Hunderte von Microservices aufzuteilen, um in der Lage zu sein, weiter zu wachsen, Innovationen voranzutreiben und neue kundenorientierte Features bereitzustellen.

Da die Kosten für die Logging-Lösung von Box auf der Menge der ingestierten Daten beruhten, musste Box mitunter Logging-Projekte zurückstellen, um Kosten zu sparen. Es kam auch vor, dass Box-Engineers sich aus Kostengründen gegen das Logging von Ereignissen bei neu bereitgestellten Microservices entschieden.

Das war damals nicht unüblich, stand aber im Widerspruch zum erklärten Ziel von Box, innerhalb kürzester Zeit zu einer führenden Cloud-Content-Management-Plattform zu werden. Dieses Vorhaben konnte nur gelingen, wenn Box die bisherige monolithische Struktur in Microservices aufteilte, was allerdings nicht weniger, sondern mehr und umfassenderes Logging voraussetzt.

"Wir hätten aus Kostengründen die Logdatenmengen reduzieren müssen. Das stand im Widerspruch zu unserem Ziel, die Observability der Box-Systeme zu erhöhen. Wir wollten ein System schaffen, das kostengünstiger war, und die Transparenz unserer Daten weiter ausbauen. So sind wir zu Elastic gekommen. Elastic ist für Entwickler gebaut, um Entwicklern zu helfen."

– Deepak Wadhwani, Engineering Manager im Observability-Team | Box

Hinzu kam, dass die Nutzung von MySQL für das Enterprise-Reporting bei Box zusätzliche Probleme mit sich brachte. Zum Beispiel war es aufgrund der enormen Menge an generierten Ereignissen nicht möglich, für Großunternehmen Nutzungsdaten zu protokollieren und so z. B. nachzuverfolgen, wann Dateien geöffnet, in einen anderen Ordner verschoben oder sogar weitergegeben wurden.

Nach intensiver Marktrecherche unter Berücksichtigung der Aspekte Kosten, Erweiterbarkeit, Support und Sicherheit entschied sich Box Anfang 2015 schließlich für Elastic.

Unter Nutzung des Potenzials des Elastic Stack gelang es Box, eine zukunftssichere und skalierbare Observability-Lösung zu implementieren, deren Preismodell nicht auf der Menge der ingestierten Daten, sondern auf der Menge des verwalteten Arbeitsspeichers beruht. Der Wechsel zu Elastic brachte nicht nur eine Stärkung der Reporting-Fähigkeiten von Box und drastische Kosteneinsparungen mit sich, sondern bot dem Unternehmen auch die Möglichkeit, Logdaten aus den eigenen Mikrosystemen zu erfassen, um die Performance und das Verhalten im Blick behalten zu können. Diese Logdaten sind darüber hinaus jederzeit sofort abrufbar.

Die primäre Entscheidung für Elastic gründete auf dem Reporting-Anwendungsfall. Durch die erfolgreiche Bewältigung des Umstiegs von MySQL auf das Reporting mit Elastic fassten die Box-Mitarbeiter Vertrauen in die Fähigkeiten von Elastic. In der Folge begann Box damit, das Logging für seine Microservices nach und nach auf Elastic umzustellen.

Wie jedes neue Reporting- und Logging-System musste sich auch die Elastic-Lösung erst die Zustimmung des technischen Personals erarbeiten – ohne sie würde sie nur zögerlich angenommen werden oder auch ganz scheitern. Seitdem sich Box für den Elastic Stack entschieden hat, sind dessen IT-Mitarbeiter so motiviert wie nie, Berichte in großen Mengen zu erstellen und Logs für bestehende oder neue Microservices zu programmieren. All dies trägt zum Erfolg von Box bei.

"Unsere Engineers sind jetzt viel zufriedener und Datenbankabfragen werden praktisch sofort beantwortet. Der Zufriedenheitsindex hat einen großen Sprung nach oben gemacht."

– Salman Ahmed, Engineering Director, Data Platform- und Observability-SRE-Teams | Box

Die Zusammenarbeit zwischen Box und Elastic begann mit ein paar Terabyte Speicherplatz und einer Handvoll Entwickler im Storage-Team, die sich mit der Hilfe von Elastic-Beratern vor Ort und Elastic-Schulungen an die Entwicklung und Einführung der neuen Reporting-Features von Box machten. Heute nutzen rund 500 Engineers in den verschiedensten Teams von Box den Elastic Stack sowohl für Reporting- als auch für Logging-Zwecke, und jeden Tag werden mittels Hunderter von Kibana-Dashboards Terabyte-weise Daten visualisiert.

Projekt „Newsroom“

Wie bereits erwähnt, begann alles mit der Migration von Enterprise-Logdaten nach Elasticsearch, um Reporting-Anwendungsfälle zu ermöglichen und ein Backend für Analytics-Zwecke zu haben. Diese Daten-Pipeline wurde weiterentwickelt und dient mittlerweile zur Unterstützung der neuen Logging-Umgebung von Box, in deren Hintergrund Elastic werkelt.

Beim Reporting-Projekt nutzt das Unternehmen mandatierte Security-Features, wie die rollenbasierte Zugriffssteuerung und Benutzerauthentifizierung. Durch diese und andere Features, wie die Möglichkeit herauszufinden, wer wann und wo auf welche Box-Datei zugegriffen hat, kann Box die Einhaltung der verschiedensten Compliance-Vorschriften zu Datensicherheit und ‑schutz sicherstellen.

Der Umstieg auf dieses Elasticsearch-Reporting-Projekt, intern unter dem Namen „Newsroom“ geführt, eliminierte verschiedene Filterprobleme und Unstimmigkeiten zwischen Enterprise-Logdaten und Business-Analytics-Daten. Box hatte auf einmal keine Probleme mehr, Berichte zur Einhaltung seiner SLAs und zu anderen Themen zu erstellen. Bis dahin konnte es vorkommen, dass die Berichte für große Unternehmen gar nicht geladen wurden und die für mittlere eine Ewigkeit brauchten.

Weitere behobene Probleme:

  • Nutzungslogdaten können jetzt effizient nach Nutzern/Ordnern gefiltert werden.
  • Es ist jetzt möglich, Ereignisse im Zusammenhang mit konkreten Nutzern im Unternehmen oder einem konkreten Ordner abzurufen.
  • In der Admin-Konsole angezeigte Statistikberichte bleiben intakt.
  • Die Unstimmigkeiten zwischen Enterprise-Logdaten und Business-Analytics-Daten wurden behoben.

Hallo „Arta“

Die vorherige Logging-Lösung von Box wurde nach der Menge der ingestierten Daten abgerechnet. Diese lag damals bei rund 7 TB pro Tag. Inzwischen ist Box bei rund 20 TB pro Tag – Tendenz steigend. Um die Kosten nicht explodieren zu lassen, musste Box sorgfältig auswählen, wo in der ständig wachsenden Microservices-Plattform Observability-Features implementiert werden sollten. Das erwies sich als ein unhaltbares Problem, das durch den Umstieg auf Elastic gelöst werden konnte.

Die Kosten waren aber nicht die einzige Sorge. Mit der vorherigen Logging-Plattform kam es vor, dass Indexer versagten. Die Engineers hatten außerdem mit Latenz und unzuverlässigen Alerting-Funktionen zu kämpfen.

"Wir haben überlegt, wo das alles in 5 Jahren hinführen würde, wenn unser Wachstum so anhält. Der Umstieg auf Elastic hat uns geholfen, unsere Kosten pro Terabyte zu halbieren, unseren Entwicklern das Leben einfacher zu machen und ihnen Observability-Features für die Microservices an die Hand zu geben, an denen sie arbeiten. Es kommt nicht mehr vor, dass wir Logging-Projekte aus Kostengründen ablehnen müssen."

– Deepak Wadhwani, Engineering Manager im Observability-Team | Box

Angesichts dieser Probleme und der explodierenden Datenmengen durch das tägliche Logging entschied sich das Unternehmen 2017, die Logging-Infrastruktur komplett zu überarbeiten.

Box ist kontinuierlich dabei, das gesamte operationale und Anwendungs-Logging sicher nach Elasticsearch zu verlagern. Dabei kommt eine Pipeline zum Einsatz, die intern als Almost-Real-Time-Analytics („Arta“) bezeichnet wird und das Logging in drei Zweige aufteilt: Aufbewahrungs-Logging, Ad-hoc-Logging und interaktives Logging.

Missionskritische Geschäftsfunktionen

Für Box hat das Erstellen und Warten von Enterprise-Grade-Systemen, die gemäß den garantierten SLAs performen, höchste Priorität. Das heißt, dass die Box-Engineers Einblicke in ihre Systeme und die von diesen generierten Logdaten benötigen. Nach den Worten von Ahmed hat Elastic dem Observability-Team bei Box ein Logging-System bereitgestellt, das mit einem minimalen Indexierungs-Overhead ausgeklügelte Abfragemöglichkeiten bietet, und das alles zu vernünftigen Kosten, auch wenn Box weiter wächst.

"Der Elastic Stack ist für uns von höchster Wichtigkeit. Millionen Nutzer und Kunden weltweit vertrauen tagtäglich darauf, dass Box missionskritische Geschäftsfunktionen ausführt. Dank Elasticsearch kann unser Observability-Team jetzt ein zuverlässiges und kostengünstiges Logging-System nutzen."

– Salman Ahmed, Engineering Director, Data Platform- und Observability-SRE-Teams | Box

Über die von Elastic unterstützten Observability-Funktionen, kombiniert mit Hunderten von Kibana-Dashboards zur Visualisierung dieser Daten, können Box-Engineers jederzeit auf die Informationen zugreifen, die sie für ihre Arbeit benötigen. Sie können sehen, ob Kunden Probleme beim Öffnen ihrer Box-Dateien haben, ob den Dateien Mitbearbeiter zugewiesen wurden, ob Dateien einem Ordner hinzugefügt wurden und so weiter und so fort. Logging ermöglicht auch das schnelle Beheben von Problemen, wie langen Wartezeiten beim Hochladen von Dateien, damit Box seine SLA-Verpflichtungen hinsichtlich der Uptime einhalten kann.

Dieses Kibana-Dashboard zeigt dem für kritische Geschäfts-Workflows zuständigen Storage-Team bei Box Datei-Uploads geordnet nach den Typen der hochgeladenen Dateien an und gibt Auskunft darüber, welcher Webclient für unterschiedliche Dateigrößen verwendet wurde.

Dave Ward, Senior Director of Engineering bei Box, weist darauf hin, dass Logging bei Box auch dazu eingesetzt wird, beim Programmieren sicherzustellen, dass Codeänderungen auch wirklich übernommen werden, um den Kunden des Unternehmens ein optimales Nutzungserlebnis zu bieten.

„Wenn man Änderungen vornimmt, um neue Features hinzuzufügen oder Korrekturen vorzunehmen, haben die Änderungen dann das gewünschte Ergebnis erzielt?“, fragt Ward. „Werden beim Pushen von Code Fehlermeldungen ausgegeben? Wenn die Observability-Pipeline nicht wie erwartet funktioniert, könnten wir ohne Arta nicht garantieren, dass unsere Systeme in einem guten Zustand sind. Arta, das sich auf Elasticsearch stützt, ist für den Erhalt unserer Agilität und Release-Frequenz immens wichtig.

Zukunft der Zusammenarbeit von Elastic und Box

Box ist heute auf dem besten Weg, den Großteil seiner produktionsbereiten entwicklerfokussierten Logging-Streams in Arta abzuwickeln. Da das Unternehmen plant, auch weiterhin neue und bestehende Logging-Streams aus der fortlaufenden Entwicklung von Microservices hinzuzufügen, arbeitet das Box-Team an der weiteren Verbesserung der Stabilität, Resilienz und Betriebseffizienz. Zudem sollen auch die Kosten noch weiter sinken.

Für die Zukunft ist angedacht, mehr der Tracing-Metriken in einer gemeinsamen Plattform unter dem Elastic-Schirm zu zentralisieren. Box arbeitet auch aktiv mit Elastic-Engineers zusammen, um die Produkte zu verfeinern und Produkt-Feedback zu geben.

Das Unternehmen interessiert sich darüber hinaus für andere Elastic-Features wie Elastic APM für das Monitoring der Anwendungsleistung, Machine Learning zur Erkennung von Problemen und entsprechender Benachrichtigung und die geoIP-Mapping-Funktionen von Elastic, die es Box erlauben würden, in Kibana zu visualisieren, woher die eingehenden Anfragen kommen, beginnend mit der IP-Adresse.

Box sieht sich auch an, inwieweit Elastic SIEM Security-Operationen unterstützen kann, und evaluiert nicht nur die Möglichkeiten, die Canvas für die Verschönerung von Kibana-Dashboards bietet, sondern auch viele andere Elastic-Features.

Return on Investment

Aus finanzieller Sicht hat der Wechsel zu Elastic geholfen, die Kosten für Datenlasten zu halbieren. Außerdem ist Box die Reporting-Probleme und die Schwierigkeiten mit MySQL los. Auch die Latenzen, die zum Teil auf den „Indexing-on-read“-Ansatz der früheren Logging-Lösung zurückzuführen sind – Elastic indexiert dagegen beim Schreiben – gehören allmählich der Vergangenheit an.

Wadhwani beschreibt den Unterschied bei der Latenz so: „Es ist, als würde man statt eines Ozeans nur noch einen Teich einkochen müssen, um an Daten zu kommen. Das Abfragen von Daten in Kibana mit Elasticsearch geht einfach viel schneller.“

Für den ROI nicht unwichtig, aber auch schwerer zu quantifizieren, ist der Umstand, dass Box seine Engineers aktiv dazu ermuntert, ausreichend viele Logdaten zu produzieren, um das für das Entwickeln von Produkten auf Enterprise-Niveau notwendige Maß an Observability zu erreichen.

Diese und andere nuancierte Veränderungen helfen Box dabei, interne und externe SLA-Verpflichtungen einzuhalten und gleichzeitig die Entwickler im Unternehmen dazu anzuhalten, weitere Innovationen voranzutreiben, die das Wachstum unterstützen.

Der Box-Cluster

  • Zahl der Cluster
    1
  • Zahl der Knoten
    85 Daten-, 3 Master-, 6 Client-Knoten
  • Zahl der LS-Instanzen/Beats
    20 Logstash
  • Zahl der Dokumente insgesamt
    180 Milliarden
  • Datengröße insgesamt
    190 TB
  • Täglich zu ingestierende Datenmenge
    20 TB
  • Zahl der Indizes
    250
  • Abfragegeschwindigkeit
    25 Abfragen/s
  • Replikate
    1
  • Zeitbasierte Indizes
    Täglich
  • Knotenspezifikationen: Hauptspeicher insgesamt, CPU, Plattentyp (SSD, HDD)
    AWS i3.4XLarge