Docker

Die Herausforderung

Wie garantieren Sie eine extrem leistungsstarke Suchfunktion für eine stetig wachsende Datenbank, ohne Ihre betrieblichen Ressourcen zu überlasten?

Die Lösung

Mit Elastic Cloud – ein von Elastic gehosteter und verwalteter Elasticsearch-Service – schaffen Sie ein skalierbares, nahtloses und durchgehend verfügbares Such- und Entdeckungserlebnis für die wachsende Docker-Community.

Herausforderung

  • Skalieren Sie eine Suchanwendung ganz einfach und kosteneffizient, um wachsende Datenmengen zu bewältigen
  • Gewährleisten Sie ein ausgezeichnetes Such- und Entdeckungserlebnis
  • Verwalten Sie komplexe betriebliche Vorgänge

Lösung

  • Nutzen Sie Elasticsearch, um bessere Suchergebnisse schneller zu liefern
  • Wählen Sie einen Hosting-Service aus, der ein stabiles und durchgehendes Sucherlebnis garantiert
  • Senken Sie Betriebskosten, indem Sie die Infrastruktur von Elasticsearch mit Elastic Cloud verwalten

Docker, Inc. ist die Firma hinter der open source Plattform und der Hauptsponsor des Docker-Ecosystems. Docker ist eine offene Plattform für dezentrale Anwendungen, die bereits von zehntausenden Organisationen verwendet wird, darunter Baidu, BBC, eBay, Goldman Sachs, ING, Spotify und Yelp. Mit Docker können Entwickler und IT-Administratoren Anwendungen von überall aus bauen, veröffentlichen und ausführen.

Die Docker-Community entwirft Container für alle möglichen Zwecke, von Load Balancern über Datenbanken bis hin zu Zeiterfassungsservices – und das blitzschnell. Diese Bausteine lassen sich leicht einsetzen und anordnen, und bieten zudem ein hohes Maß an Sicherheit, eine leistungsstarke Performance und weitreichende Vorteile für Unternehmen.

„Mit Elasticsearch haben wir bei unseren Suchanfragen mehr Flexibilität und können genau festlegen, wie wir Felder gewichten, Dokumente sortieren und Relevant berechnen.“

Ken Cochrane, Engineering Manager

Das Problem: Dem RDBMS entwachsen

Die Container-Bibliothek von Docker sollte übersichtlich gestaltet werden. Aufgrund der riesigen Menge an Inhalten entschied man sich für eine erstklassige Suchfunktion, um Benutzern das Entdecken von Containern zu erleichtern. Eine erste Suchfunktion, die getestet wurde, lief über ein traditionelles RDBMS, doch die Leistungsstärke und Qualität konnte den Anforderungen von Docker nicht gerecht werden. Docker-Entwickler Ken Cochrane kommentiert: „Wir haben am Anfang die Datenbank benutzt, aber die Möglichkeiten waren beschränkt. Sie hat unsere Datenbank noch zusätzlich belastet und je mehr Daten wir hinzufügten, desto langsamer wurde alles.“

Nachdem die Entwickler von Docker sich entschieden hatten, ihr traditionelles RDBMS zu ersetzen, testeten sie Elasticsearch und einige andere Suchtechnologien. Sie entschieden sich für Elasticsearch als Plattform nächster Generation.

Nachdem der Wechsel zu Elasticsearch beschlossen wurde, beschäftigte sich Docker mit den erforderlichen operativen Aufgaben. Die Verwaltung einer dezentralen Datenbank wie Elasticsearch bringt ein paar komplizierte Herausforderungen mit sich. So muss eine sinnvolle Mindestanzahl eingehalten werden, damit sichergestellt werden kann, dass die Replikation korrekt für hohe Verfügbarkeit und die Archivierung/Verwaltung von Back-ups konfiguriert wird. Aufgrund dieser und anderer Schwierigkeiten beschlossen sie, ihre Elasticsearch-Infrastruktur an einen Provider mit komplettem Hosting weiterzugeben.

Die Lösung: Isolation der wichtigsten Probleme

Docker evaluierte die verfügbaren Provider für das Hosting von Elasticsearch und nahm dabei verschiedene Kriterien unter die Lupe. Docker-Entwickler John Costa beschreibt diesen Prozess wie folgt: „Wir evaluierten einige andere Anbieter für das Hosting von Elasticsearch. Während der Analyse schauten wir ganz genau auf den Ort, die Anzahl der Indexe (Entwicklung, Staging, Produktion), die verfügbaren Ressourcen (Speicher), die Optionen für hohe Verfügbarkeit und den Preis. Elastic Cloud war die beste Option.“

Docker legte besonders viel Wert auf eine durchgängig gute Performance und Zuverlässigkeit. Aus diesem Grund passten die eigenen Elasticsearch-Cluster von Elastic Cloud perfekt. Zum Einen basiert das Hosting-Modell von Elastic Cloud auf eigenen Clustern mit Reservespeicher und CPU. Das gab ihnen die notwendige Sicherheit, dass ihre Anwendung konsistent eine hohe Performance aufweisen würde. Zum Anderen stellten die Optionen für hohe Verfügbarkeit von Elastic Cloud sicher, dass Dockers Datenbank selbst beim Ausfall eines kompletten Rechenzentrums verfügbar bleiben würde.

Außerdem paßte Elastic Cloud hervorragend zu Dockers Anforderungen hinsichtlich des Index Managements. Da jedem Elastic Cloud Kunden ein eigenes Elasticsearch-Cluster ohne Nutzungseinschränkungen zugewiesen wird, können sie die Indexe ganz nach Belieben zuweisen.

„Nach der Evaluierung einiger Provider entschieden wir uns für Elastic Cloud, da diese Lösung unsere Anforderungen mit der Fehlertoleranz, dem reaktionsschnellen Support und der Anwenderfreundlichkeit am ehesten erfüllte.“

John Costa, Senior Software Engineer

„Elastic Clouds Schwerpunkt auf Service und schnelle Reaktionszeiten half dabei, dass Dockers Einführung ein Erfolg wurde. Der Support reagiert schnell ... für mich ist das perfekt!“

Roberto Hashioka, Software Engineer

Die Vorteile zeigen sich vor allem beim Wechsel in die Produktion

Der Wechsel zu Elasticsearch in der Produktion hatte Einfluss auf Dockers gewünschte Performance-Steigerung. Die Last für das RDBMS in der Produktion sank gewaltig und die Suchlatenz und der Durchsatz wurden massiv verbessert. Außerdem konnte Docker durch Field-Boosting und Funktions-Score-Anfragen von Elasticsearch die Qualität seiner Suchergebnisse erheblich optimieren, wodurch beliebtere und relevantere Suchergebnisse gefördert werden.

Die Implementierung des Docker-Indexes in Elastic Cloud ließ sich schnell und leicht realisieren. John Costa von Docker beschreibt es so: „Der Wechsel in die Produktion war recht einfach, denn wir mussten nur eine Kreditkarte für die Rechnungsstellung hinzufügen und die Produktionseinstellungen vornehmen. Wir hatten ein paar Fragen zur Indexierung, den Speichereinstellungen und den Zuverlässigkeitseinstellungen. Die Support-Mitarbeiter von Elastic Cloud reagierten sofort und beantworteten alle unsere Fragen detailliert.“

Mit der neuen Infrastruktur kann Docker schneller bessere Suchergebnisse bereitstellen. Das bedeutet mehr Anwenderfreundlicheit für Entwickler, die die Docker-Plattform nutzen. Für Docker ist das besonders entscheidend. Ein Tool, das Leistung bereitstellt und praktisch sein soll, muss einen entsprechenden Support haben. Letztendlich hat sich Elasticsearch als leistungsstarkes Tool für das Unternehmen erwiesen und hilft ihm dabei, eine seiner wichtigsten Anforderungen zu erfüllen: die Bereitstellung eines tollen Entwicklererlebnisses.