Mit dem Wachstum unserer Videoverarbeitungsplattform stieg auch die Komplexität der Handhabung rechenintensiver Workloads. Aufgaben wie Videonormalisierung, Audioextraktion, Transkription, Overlay-Erstellung und Rendering können erhebliche CPU- und Speicherressourcen beanspruchen, insbesondere wenn mehrere Projekte gleichzeitig verarbeitet werden.
Das Ausführen dieser Workloads direkt innerhalb der Hauptanwendungsinfrastruktur kann zu Ressourcenengpässen, längeren Verarbeitungszeiten und eingeschränkter Skalierbarkeit führen. Mit steigender Nachfrage benötigten wir eine flexiblere und effizientere Möglichkeit, Verarbeitungs-Workloads zu verwalten, ohne die Leistung unserer Kernanwendungsdienste zu beeinträchtigen.
Um diese Herausforderungen zu bewältigen, haben wir AWS Elastic Container Service (ECS) als unsere Container-Orchestrierungsplattform eingeführt.
Mit AWS ECS können wir Hintergrundverarbeitungsaktivitäten effektiv verwalten, Ressourcen entsprechend der Nachfrage skalieren und Verarbeitungs-Workloads in separaten Containern ausführen. Dies ermöglicht es unserer Plattform, unterschiedliche Workloads zu bewältigen und dabei Leistung, Zuverlässigkeit und Betriebseffizienz aufrechtzuerhalten.
In diesem Blog werden wir untersuchen, was AWS ECS ist, warum wir es gewählt haben und wie es uns hilft, unsere Videoverarbeitungsinfrastruktur zu skalieren.
Die Herausforderung der Skalierung von Videoverarbeitung
Videoverarbeitungs-Workloads sind von Natur aus ressourcenintensiv und stark variabel.
Ein einzelnes Projekt kann beinhalten:
- Videonormalisierung
- Audioextraktion
- Sprach-zu-Text-Transkription
- Overlay-Erstellung
- Rendering mehrerer Ausgabevariationen
- Verarbeitung hochauflösender Medieninhalte
Mit der Zunahme der Projekte können die Infrastrukturanforderungen schnell wachsen.
Wir benötigten eine Lösung, die in der Lage ist:
- Verarbeitungsressourcen bei Bedarf zu skalieren
- Mehrere Aufgaben gleichzeitig zu verwalten
- Ressourcenintensive Aufgaben von benutzerorientierten Diensten zu isolieren
- Zuverlässigkeit bei Spitzenlasten zu verbessern
- Infrastrukturnutzung zu optimieren
- Betriebsaufwand zu reduzieren
Traditionelle Ansätze, die ausschließlich auf langlaufenden Servern basieren, können ineffizient werden, wenn Workloads wachsen. Wir wollten ein System, das Ressourcen dynamisch basierend auf der tatsächlichen Nachfrage zuweisen kann.
Was ist AWS ECS?
AWS Elastic Container Service (ECS) ist ein vollständig verwalteter Container-Orchestrierungsdienst, der es Organisationen ermöglicht, containerisierte Anwendungen in großem Maßstab auszuführen und zu verwalten.
ECS hilft bei der Automatisierung von:
- Container-Bereitstellung
- Aufgabenplanung
- Ressourcenzuweisung
- Service-Management
- Workload-Skalierung
- Gesundheitsüberwachung
Anstatt Server und Anwendungsprozesse manuell zu verwalten, bietet ECS eine zentrale Plattform für das effiziente Ausführen containerisierter Workloads.
Warum wir AWS ECS gewählt haben
Skalierbarkeit auf Abruf
Einer der größten Vorteile von ECS ist seine Fähigkeit, Workloads basierend auf der Nachfrage zu skalieren.
Die Anforderungen an die Videoverarbeitung können im Laufe des Tages erheblich schwanken. Einige Zeiträume können nur wenige Verarbeitungsjobs umfassen, während andere die gleichzeitige Bearbeitung großer Mengen von Rendering- und Medienverarbeitungsaufgaben erfordern.
ECS ermöglicht es uns, zusätzliche Verarbeitungstasks dynamisch zu starten, wenn die Nachfrage steigt, und zu reduzieren, wenn die Workloads abnehmen.
Diese Flexibilität hilft uns, die Leistung aufrechtzuerhalten, ohne dauerhaft unnötige Ressourcen zuzuweisen.
Workload-Isolierung
Aufgaben, die die Videoverarbeitung betreffen, erfordern häufig eine große Menge an CPU und Speicher.
Durch das Ausführen von Workloads in separaten Containern ermöglicht ECS uns, Verarbeitungsoperationen von unseren Kernanwendungsdiensten zu isolieren.
Diese Trennung hilft:
- Die Stabilität des Systems zu erhöhen
- Ressourcenkonkurrenz zu vermeiden
- Fehlerbehebung zu vereinfachen
- Die Fehlertoleranz zu erhöhen
Wenn eine Verarbeitungstask auf ein Problem stößt, beeinträchtigt dies nicht direkt den Rest der Plattform.
Effiziente Ressourcennutzung
Nicht alle Verarbeitungs-Workloads erfordern die gleiche Menge an Rechenleistung.
Einige Operationen sind leichtgewichtig, während andere intensives Rendering und Medienverarbeitung beinhalten.
ECS ermöglicht es uns, Ressourcen basierend auf den Anforderungen der Workloads zuzuweisen, um sicherzustellen, dass Infrastrukturressourcen effizient und effektiv genutzt werden.
Dies hilft, sowohl die Leistung als auch die Betriebskosten zu optimieren.
Reduzierte Betriebskomplexität
Die manuelle Verwaltung einer großen Anzahl von Verarbeitungsdiensten kann schnell schwierig werden.
ECS vereinfacht das Infrastrukturmanagement durch die Verwaltung von:
- Container-Planung
- Task-Ausführung
- Gesundheitschecks
- Ressourcenmanagement
- Service-Wiederherstellung
Dies entlastet unser technisches Personal, sodass es sich auf die Verbesserung der Plattform konzentrieren kann, anstatt auf die Wartung der Infrastruktur.
Nahtlose AWS-Integration
ECS integriert sich nahtlos mit anderen AWS-Diensten, die Teil unserer Infrastruktur sind.
Dies ermöglicht einen reibungslosen Ablauf von Bereitstellung, Überwachung, Sicherheit und Betriebsabläufen, während eine konsistente cloud-native Architektur beibehalten wird.
Wie wir AWS ECS nutzen
AWS ECS spielt eine entscheidende Rolle in unserer Videoverarbeitungspipeline.
Anstatt alle Verarbeitungsoperationen direkt auf unseren primären Anwendungsservern auszuführen, führen wir ressourcenintensive Workloads durch containerisierte Verarbeitungstasks aus, die von ECS verwaltet werden.
Videonormalisierung
Hochgeladene Videos erfordern oft eine Vorbereitung, bevor sie in nachgelagerte Workflows integriert werden können.
ECS hilft uns, diese Normalisierungsaufgaben unabhängig zu verarbeiten und so konsistente Eingabeformate für nachfolgende Operationen sicherzustellen.
Audioextraktion und Transkription
Audioextraktion und Transkription können besonders dann rechenintensiv sein, wenn mehrere Videos gleichzeitig verarbeitet werden.
Durch das Ausführen dieser Aufgaben innerhalb von ECS können wir die Verarbeitungskapazität entsprechend der Nachfrage skalieren.
Rendering-Workloads
Das Video-Rendering ist eine der ressourcenintensivsten Phasen unseres Workflows.
Durch die Nutzung von ECS können wir Rendering-Jobs unabhängig ausführen und Ressourcen speziell für Rendering-Aufgaben zuweisen.
Dies hilft, eine konsistente Leistung auch während Zeiten hoher Nachfrage aufrechtzuerhalten.
Hintergrundverarbeitung
Viele Operationen erfolgen asynchron im Hintergrund.
Beispiele umfassen:
- Medienvorbereitung
- Asset-Verarbeitung
- Workflow-Ausführung
- Nachbearbeitungsoperationen
ECS bietet eine zuverlässige Umgebung für die Ausführung dieser Hintergrund-Workloads in großem Maßstab.
Unser containerisierter Verarbeitungs-Workflow
Eine vereinfachte Version unseres Verarbeitungs-Workflows sieht folgendermaßen aus:
Schritt 1: Projekteinreichung
Ein Benutzer reicht ein Projekt mit Videoressourcen und Verarbeitungsanforderungen ein.
Schritt 2: Aufgabenerstellung
Die Plattform identifiziert die erforderlichen Verarbeitungsoperationen und generiert die entsprechenden Workloads.
Schritt 3: ECS-Aufgabenausführung
ECS startet containerisierte Verarbeitungstasks mit den für jede Operation erforderlichen Ressourcen.
Schritt 4: Verarbeitung und Rendering
Tasks führen Normalisierung, Transkription, Rendering und andere Verarbeitungsaktivitäten durch.
Schritt 5: Abschluss und Bereitstellung
Nach Abschluss der Verarbeitung werden die Ausgaben gespeichert und den Benutzern zur Verfügung gestellt.
Dieser Workflow ermöglicht es uns, Workloads effizient zu verarbeiten und gleichzeitig Skalierbarkeit und Zuverlässigkeit zu gewährleisten.
Vorteile für unsere Nutzer
Die Infrastrukturentscheidungen, die wir treffen, wirken sich direkt auf die Benutzererfahrung aus.
Durch die Nutzung von AWS ECS können wir bieten:
Schnellere Verarbeitung
Dynamische Ressourcenzuweisung hilft, Verarbeitungs- und Renderingzeiten zu verkürzen.
Verbesserte Skalierbarkeit
Die Plattform kann wachsende Nachfrage ohne signifikante architektonische Änderungen bewältigen.
Konsistente Leistung
Workload-Isolierung hilft, die Reaktionsfähigkeit der Plattform auch bei Spitzenaktivitäten aufrechtzuerhalten.
Erhöhte Zuverlässigkeit
Containerisierte Workloads verbessern die Fehlertoleranz und reduzieren die Auswirkungen von Verarbeitungsfehlern.
Bessere Ressourceneffizienz
Ressourcen werden basierend auf den Anforderungen der Workloads zugewiesen, was hilft, Leistung und Kosten zu optimieren.
Ausblick
Da sich unsere Plattform weiterentwickelt, werden auch die Verarbeitungsanforderungen weiter wachsen. Die Unterstützung größerer Projekte, zusätzlicher Workflows und zunehmender Benutzeraktivität erfordert eine Infrastruktur, die effizient skalieren kann.
AWS ECS bietet die Flexibilität und Orchestrierungsfähigkeiten, die erforderlich sind, um diese sich entwickelnden Anforderungen zu unterstützen. Durch die fortgesetzte Nutzung containerisierter Verarbeitungs-Workloads können wir uns an veränderte Anforderungen anpassen und gleichzeitig Leistung, Zuverlässigkeit und Betriebseffizienz aufrechterhalten.
Fazit
Die Skalierung von Videoverarbeitungs-Workloads erfordert eine Infrastruktur, die ressourcenintensive Operationen effizient handhaben kann und dabei flexibel und zuverlässig bleibt.
AWS ECS ermöglicht es uns, containerisierte Workloads in großem Maßstab auszuführen und zu verwalten, und bietet die Orchestrierung, Skalierbarkeit und Workload-Isolierung, die zur Unterstützung moderner Videoverarbeitungspipelines erforderlich sind.
Durch die Nutzung von ECS als wesentlichen Bestandteil unserer Architektur können wir Workloads effizienter verarbeiten, die Systemzuverlässigkeit verbessern und weiterhin eine leistungsstarke Benutzererfahrung bieten, während unsere Plattform wächst.

