Architektur zur Verwendung von Cloud Pub/Sub für Aufgaben mit langer Ausführungszeit

In diesem Artikel werden Architektur und Workflow von Cloud Pub/Sub erläutert, wenn Sie Cloud Pub/Sub als Warteschlangensystem für Aufgaben mit potenziell langer Ausführungszeit verwenden. Als Beispiel dient die automatische Sprache-zu-Text-Umwandlung von Audiodateien.

Audio ist zwar eine sehr gute Ergänzung verschiedenster Medien, gelegentlich kann es jedoch auch nützlich sein, gesprochene Wörter in Text zu transkribieren. Mögliche Anwendungsfälle umfassen die barrierefreie Bereitstellung von Videos durch Untertitel oder Analysen von Callcenter-Anrufen. Wenn jede Sekunde viele Stunden von Videoaufzeichnungen hochgeladen oder täglich viele Stunden Helpdesk-Telefonate aufgezeichnet werden, kann eine automatische Batchverarbeitung im Vergleich zur manuellen Abschrift viel Zeit sparen.

In diesem Artikel erfahren Sie mehr über die Implementierung einer Infrastruktur zur Medienverarbeitung, bei der Audiodateien, zum Beispiel nach der Aufzeichnung eines Telefonanrufs, in einen Cloudspeicher hochgeladen werden. In der Cloud werden die Dateien transkribiert und die Ergebnisse werden zur weiteren Analyse in einer Datenbank gespeichert. Die hier beschriebene Architektur eignet sich auch für größere Bilder oder Videos, deren Verarbeitung mehrere Stunden dauern kann.

Architektur und Workflow

Das nachstehende Flussdiagramm veranschaulicht die Architektur und den Workflow:

Dateien hochladen und verarbeiten – ÜbersichtDie Schritte werden im nachstehenden Text erläutert.

In diesem Beispiel reagiert das System nach dem Upload von Inhalten so:

  1. Eine Watcher-Anwendung erfasst die neu hochgeladenen Medien.
  2. Ein mit dem Watcher verknüpfter Webhook fügt der Warteschlange eine Nachricht mit den Mediendetails hinzu.
  3. Einer der Worker, der die Warteschlange abonniert hat, ruft die Nachricht ab.
  4. Derselbe Worker lädt die entsprechenden Medien aus dem Speicher und verarbeitet sie.
  5. Nachdem die Verarbeitung abgeschlossen ist, speichert der Worker das Ergebnis am Speicherort für die Ausgabe.
  6. Abschließend bestätigt der Worker die Nachricht, sodass sie aus der Warteschlange entfernt wird.

Anforderungen und Infrastruktur

Diese Architektur erfordert mehrere Komponenten.

Speicherung

Die Medien müssen so gespeichert werden, dass sie einfach abgerufen, verarbeitet und bereitgestellt werden können. Der Speicher sollte hochverfügbar sein und eine niedrige Latenz haben, damit Datenmengen im Terabyte- und Petabytebereich verarbeitet und weltweit abgerufen werden können.

Cloud Storage bietet drei verschiedene Objektspeicher-Lösungen mit gleichwertiger Verfügbarkeit und Langlebigkeit:

  • Standard: Nützlich zum Verarbeiten und Speichern von Daten. Die Daten können innerhalb von Millisekunden abgerufen werden. Außerdem kann für die öffentliche Inhaltsbereitstellung ein kostenloses Content Delivery Network (CDN) über das Edge-Netzwerk von Google genutzt werden.
  • Nearline: Nearline Storage bietet eine kostengünstige, langlebige Sicherungsoption. Das erste Byte Daten kann innerhalb von Millisekunden abgerufen werden, was schnelle Wiederherstellungsoptionen ermöglicht.
  • Coldline: Coldline Storage ist eine gute Wahl für das besonders kostengünstige Speichern von Daten, auf die Sie höchstens einmal pro Jahr zugreifen. Coldline eignet sich für die langfristige Datenarchivierung, für Online-Sicherungen und die Notfallwiederherstellung. Außerdem bietet Coldline einen schnellen Datenabruf.

In der hier beschriebenen Lösung wird zum Speichern der zu verarbeitenden Daten ein Standardspeicher verwendet.

Benachrichtigungen

Die Dateien können jederzeit im Objektspeicher eingehen. Für eine kurze Reaktionszeit benötigt das System eine Komponente, die den Speicherort überwacht und automatisch ein Ereignis generiert, sobald eine neue Mediendatei hinzugefügt wird. Sie können die Cloud Pub/Sub-Benachrichtigungen für Cloud Storage so konfigurieren, dass ein Bucket überwacht und ein Ereignis für Cloud Pub/Sub ausgelöst wird, wenn sich der Inhalt im Bucket ändert.

Nachrichtenwarteschlange

Wenn viele Mediendateien gleichzeitig zur Verarbeitung eingehen, benötigt das System mehrere Worker, um die Medien schnell verarbeiten zu können. Je mehr Dateien auf die Verarbeitung warten, desto mehr Worker werden benötigt. Zur Kostensenkung und Einhaltung von Bereitstellungsgrenzen können Sie für die Verarbeitung eine Warteschlange verwenden, um die Anzahl der gleichzeitig benötigten Worker zu minimieren.

Cloud Pub/Sub ist ein hochverfügbares Nachrichten- und Warteschlangensystem. Es ist über eine HTTP API zugänglich und bietet verschiedene Kommunikationskonfigurationen, wie 1:n (Fan-out), n:1 (Fan-in) und m:n. Cloud Pub/Sub unterstützt die Abonnementmodelle Push und Pull.

In dieser Lösung wird Cloud Pub/Sub verwendet, um eine fehlertolerante und effiziente Warteschlange mit den folgenden Eigenschaften zu erstellen:

  • Ein einzelner Publisher gibt für jede neue Datei eine Nachricht aus, die Metadaten mit einer Beschreibung der Datei und ihres Speicherorts enthält.

  • Eine einzelne Warteschlange enthält alle Publish-Nachrichten.

  • Eine Reihe Worker ruft die Nachrichten aus der Warteschlange ab. Die Verwendung eines Pull-Abonnementmodells gewährleistet, dass die Worker für die Verarbeitung einer Mediendatei genug Zeit haben, bevor die nächste abgerufen wird.

  • Wenn ein Worker eine Nachricht aus der Warteschlange abruft, aber nicht bestätigt, dass die Verarbeitung der entsprechenden Mediendatei abgeschlossen ist, geht das Warteschlangensystem davon aus, dass die Verarbeitung durch den Worker fehlgeschlagen ist, und stellt die Nachricht wieder in die Warteschlange ein.

  • Ein Worker bestätigt eine Nachricht erst, nachdem er die Verarbeitung der Mediendatei abgeschlossen hat. Nach erfolgter Bestätigung entfernt Cloud Pub/Sub die Nachricht aus der Warteschlange.

  • Bei sehr zeitaufwendigen Verarbeitungen können Sie das Zeitlimit für die Bestätigung regelmäßig aktualisieren, damit Cloud Pub/Sub die Nachricht nicht in die Warteschlange zurückstellt, während der ursprüngliche Worker sie noch verarbeitet.

  • Jede Nachricht hat eine Lebensdauer. Nachrichten, die bei Ablauf ihrer Lebensdauer noch nicht verarbeitet wurden, werden aus der Warteschlange gelöscht. Dies verhindert, dass die Warteschlange zu groß wird.

Im nachstehenden Flussdiagramm wird gezeigt, wie Cloud Pub/Sub in dieser Lösung Nachrichten verarbeitet.

NachrichtenverarbeitungDie Schritte werden im nachstehenden Text erläutert.

Wie Sie dem Diagramm entnehmen können, verbleibt die Nachricht in der Warteschlange, nachdem sie vom Worker abgerufen wurde. Sie ist dann als angefordert markiert und für die anderen Worker gesperrt. Sie wird nur dann wieder freigegeben, wenn das Abo von dem Worker, der die Nachricht angefordert hat, bei Ablauf des angegebenen Zeitlimits keine Bestätigung erhält.

Verarbeitung

Die Verarbeitung der mit den Nachrichten in der Warteschlange verknüpften Dateien erfolgt in mehreren Schritten:

  1. Warteschlange lesen
  2. Audiodatei lesen
  3. Audioinhalte transkribieren
  4. Ergebnis speichern

Skalieren

Damit all diese Schritte zeitnah ausgeführt werden können, benötigt das System eine Gruppe von Workern, die skaliert werden können, um den eingehenden Bedarf zu decken. Diese Skalierung kann sowohl manuell als auch automatisch erfolgen. Eine manuelle Skalierung empfiehlt sich, wenn Anzahl und Größe der eingehenden Dateien relativ konstant sind und Sie wissen, wie viele Worker benötigt werden, um den Verarbeitungsaufwand zu bewältigen. Die automatische Skalierung hingegen ermöglicht die Verarbeitung bei plötzlichen Änderungen der Anzahl eingehender Dateien.

Je nach den vorstehend genannten Anforderungen benötigt das System entsprechende Rechenleistung, um die Mediendateien zu konvertieren, sowie horizontale Skalierbarkeit, um bei Bedarf zusätzliche Worker bereitzustellen.

Compute Engine-Instanzen werden anhand einer Vorlage erstellt.

Compute Engine ermöglicht die Erstellung von VM-Instanzen zur Ausführung der Verarbeitungsaufgaben.

Verwaltete Instanzgruppen unterstützen sowohl die manuelle als auch die automatische Skalierung. Der Instanzgruppenmanager kann Gruppen identischer Maschinen erstellen, entweder unter Verwendung von Maschinen-Images oder von Containerinstanzvorlagen.

Bei der manuellen Skalierung stellt der Instanzgruppenmanager sicher, dass immer die festgelegte Anzahl virtueller Maschinen betriebsbereit ist. Dazu erstellt er bei Bedarf neue Instanzen und beendet nicht reagierende Instanzen.

Wenn Sie das Autoscaling verwenden, erstellt bzw. beendet der Instanzgruppenmanager Instanzen anhand der von Ihnen ausgewählten Parameter, wie der durchschnittlichen CPU-Auslastung, der Last am HTTP-Load-Balancer, der instanzspezifischen Messwerte oder der Warteschlangengröße von Cloud Pub/Sub.

Verwaltete Instanzgruppen können die automatische Skalierung auf Basis einer Kombination aus Cloud Pub/Sub und instance/cpu/utilization nutzen. Auf diese Weise wird die Anzahl der Worker je nach Größe der Warteschlange hoch- und herunterskaliert. Solange die VM eine Mediendatei verarbeitet, wird die entsprechende Instanz nicht beendet.

Audioverarbeitung

Die Computing-Plattform ist konfiguriert. Nun müssen Sie entscheiden, wie die Mediendatei geparst wird. Manchmal muss ein Teil des Jobs angepasst werden, was eine hohe Rechenleistung erfordern kann. In dieser Lösung, in deren Mittelpunkt nicht die Medienverarbeitung, sondern die Warteschlangenarchitektur steht, wird Cloud Speech-to-Text verwendet, um mehrere Audiodateien gleichzeitig zu verarbeiten.

Dadurch sind die Worker so lange ausgelastet, dass die Warteschlange wächst, aber die Lösung bleibt dennoch einfach zu verstehen.

Datenspeicherung

Nachdem eine Mediendatei, in diesem Fall eine Audiodatei, verarbeitet wurde, können die Ergebnisse für weitere Analysezwecke gespeichert werden. Hier erweist sich BigQuery als nützlich, da es eine einfache SQL-Oberfläche bietet und gleichzeitig Speicher bereitstellt, der auch von anderen Google-Tools genutzt werden kann.

Infrastruktur der Google Cloud Platform

Im folgenden Flussdiagramm wird gezeigt, wie Sie mit der Google Cloud Platform (GCP) eine Lösung zur Medienverarbeitung erstellen.

Lösungsarchitektur zur Medienverarbeitung

Weitere Informationen

  • Weitere Google Cloud Platform-Funktionen ausprobieren: Anleitungen
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...