Leitfaden zur Dataflow-Zuverlässigkeit

Last reviewed 2023-08-07 UTC

Dataflow ist ein vollständig verwalteter Datenverarbeitungsdienst, der eine schnelle, vereinfachte Entwicklung von Streamingdaten-Pipelines mit Apache Beam-Bibliotheken im Open-Source-Format ermöglicht. Dataflow minimiert Latenz, Verarbeitungszeit und Kosten durch Autoscaling und Batchverarbeitung.

Best Practices

Produktionsbereite Datenpipelines mit Dataflow erstellen: eine Dokumentreihe zur Verwendung von Dataflow, einschließlich Planung, Entwicklung, Bereitstellung und Monitoring von Dataflow-Pipelines.

  • Übersicht: Einführung in Dataflow-Pipelines.
  • Planung: Messung der SLOs, der Auswirkung von Datenquellen und -senken auf die Skalierbarkeit und Leistung der Pipeline und Berücksichtigung von Hochverfügbarkeit, Notfallwiederherstellung und Netzwerkleistung bei der Angabe von Regionen zum Ausführen Ihrer Dataflow-Jobs.
  • Entwicklung und Tests: Einrichten von Bereitstellungsumgebungen, Vermeiden von Datenverlusten durch Verwendung von Dead-Letter-Warteschlangen für die Fehlerbehandlung und Reduzieren von Latenz und Kosten durch Minimieren von teuren Vorgängen pro Element. Außerdem: Nutzung der Batchverarbeitung zur Reduzierung des Leistungsaufwands, ohne die externen Dienste zu überlasten, Aufheben falsch zusammengeführter Schritte, damit die Schritte für eine bessere Leistung getrennt werden, und Ausführen von End-to-End-Tests in der Vorproduktion, damit die Pipeline Ihre SLOs und andere Produktionsanforderungen weiterhin erfüllt.
  • Bereitstellung: Continuous Integration (CI) sowie Continuous Delivery und kontinuierliche Bereitstellung (CD) mit besonderen Überlegungen zur Bereitstellung neuer Versionen von Streaming-Pipelines. Außerdem eine CI/CD-Beispiel-Pipeline und einige Features zur Optimierung der Ressourcennutzung. Abschließend eine Betrachtung von Hochverfügbarkeit, geografischer Redundanz und Best Practices für die Pipeline-Zuverlässigkeit, einschließlich regionaler Isolierung, Verwendung von Snapshots, Verarbeitung von Fehlern beim Senden von Jobs und Wiederherstellung nach Fehlern und Ausfällen, die sich auf laufende Pipelines auswirken.
  • Monitoring: Beobachten der Service Level Indicators (SLIs), die wichtige Indikatoren für die Pipelineleistung sind, und Definieren und Messen von Service Level Objectives (SLOs).