Case Study

AWS-Architektur für eine Live-Produktdaten-Pipeline, vom nächtlichen Batch zu Kafka Streams

Millionen Produkte und eine Datenpipeline, die sie einmal pro Nacht verarbeitet hat, wenn sie nicht fehlschlug.

Branche
E-Commerce
Meine Rolle
Betrieb der Batch-Pipeline, Aufbau des Streaming-Nachfolgers im Team
Größenordnung
Millionen Produkte, laufend verarbeitet
Ergebnisse
Zuverlässigkeit
Ein stabiler Job, der zuverlässig läuft

Keine fehlgeschlagenen Nachtläufe und keine manuellen Replays mehr. Die Streaming-Pipeline verarbeitet jede Änderung für sich, in privaten Subnetzen mit eng gefassten Security Groups.

Umsatz
Mehr Umsatz durch frischere Daten

Entscheidungen beruhen auf aktuellen statt auf gestrigen Daten, die Ergebnisse werden besser und erreichen Kunden früher.

Die Geschichte

Jedes Produkt im Katalog muss nach Geschäftsregeln verarbeitet und veröffentlicht werden. Bei Millionen Produkten lief das als nächtlicher Batch-Job. Step Functions orchestrierten SNS, Lambdas, ECS-Jobs, EC2 und DynamoDB, geschrieben in Python und TypeScript und mit Terraform bereitgestellt.

Ich habe diese Pipeline betreut, und sie fiel oft aus. Sie war eine lange Kette von Schritten in einem festen Zeitfenster, ein kaputter Schritt ließ die Daten also bis zur nächsten Nacht veralten.

Im Team habe ich sie als Kafka-Streams-Anwendung auf Amazon MSK neu gebaut, betrieben auf ECS in privaten Subnetzen. Änderungen laufen jetzt durch Kafka und werden verarbeitet, sobald sie auftreten, statt einmal pro Nacht.

Vorher: ein nächtlicher Batch, durchgängig orchestriert
Die alte Architektur, die ich auch betreut habe.
Nachher: Kafka Streams auf Amazon MSK, Verarbeitung live
Die neue Architektur, im Team gebaut.

Technologie

Sprachen und Tooling
Python
Python
Datenverarbeitung
TypeScript
TypeScript
Services und Tooling
Vue
Vue
interne Tools
Docker
Docker
Container
Terraform
Terraform
Infrastructure as Code
Streaming
Kafka Streams
Kafka Streams
Live-Verarbeitungsanwendung
Amazon MSK
Amazon MSK
verwaltetes Kafka-Cluster
Amazon ECS
Amazon ECS
betreibt die Streams-Anwendung
Batch-Pipeline und Plattform
AWS Step Functions
AWS Step Functions
nächtliche Orchestrierung
AWS Lambda, Amazon SNS
AWS Lambda, Amazon SNS
AWS Lambda, Amazon SNS
Aufnahme externer Daten
Amazon EC2, ECS
Amazon EC2, ECS
Amazon EC2, ECS
Verarbeitungs-Workflow
Amazon DynamoDB, RDS
Amazon DynamoDB, RDS
Amazon DynamoDB, RDS
interne Produktdaten
Amazon VPC, IAM
Amazon VPC, IAM
Amazon VPC, IAM
Netzwerk, Security Groups, Zugriff
Amazon CloudWatch, Grafana
Amazon CloudWatch, Grafana
Amazon CloudWatch, Grafana
Metriken und Fehlerberichte
Kern-Stack

Steht bei Ihnen etwas Ähnliches an?

Erzählen Sie mir, was Sie heute betreiben und wo es hakt. Ich melde mich mit einem Vorschlag, wie ich es bauen würde und was ich so lassen würde.

Projekt besprechen