Cloud-native Batch-Workloads mit dem Oracle Cloud Infrastructure-Batchservice bereitstellen
Einführung
Moderne Anwendungen verlassen sich stark auf die Hintergrundverarbeitung, um Aufgaben wie Datentransformation, Berichterstellung, Medienverarbeitung und groß angelegte Simulationen zu bewältigen. Diese Workloads sind häufig rechenintensiv, werden asynchron ausgeführt und können in Skalierung und Häufigkeit erheblich variieren. Die Verwaltung solcher Workloads mit herkömmlichen Ansätzen kann komplex sein, sodass Teams Infrastruktur bereitstellen, Planungssysteme erstellen und die Skalierung manuell durchführen müssen.
Oracle Cloud Infrastructure (OCI) Batch Service wurde entwickelt, um diesen Prozess zu vereinfachen. Es bietet eine vollständig verwaltete Möglichkeit, Batch-Workloads in großem Maßstab auszuführen, sodass Sie sich auf die Definition Ihrer Jobs konzentrieren können, während die Plattform die Ausführung und das Ressourcenmanagement übernimmt.
In diesem Tutorial werden die Funktionsweise von OCI Batch, die Architektur und die effektive Verwendung in realen Szenarien erläutert.
Welches Problem löst OCI Batch?
Die Ausführung von Batch-Workloads umfasst traditionell mehrere Komplexitätsebenen. Teams müssen häufig im Voraus Compute-Ressourcen bereitstellen, ihre eigenen Jobplanungsmechanismen implementieren und Logik für Wiederholungen, Fehler und Skalierung erstellen. Selbst bei der Verwendung von Plattformen wie Kubernetes ist erheblicher Aufwand erforderlich, um die Umgebung zu konfigurieren und zu warten. Dies erhöht den operativen Overhead und verlangsamt die Entwicklung.
OCI Batch bewältigt diese Herausforderungen, indem ein einheitlicher Service bereitgestellt wird, der den Lebenszyklus von Batch-Workloads verwaltet. Dadurch entfällt die Notwendigkeit, benutzerdefinierte Scheduler zu erstellen oder die Infrastruktur zu verwalten, sodass Teams Großaufträge effizienter und mit weniger Betriebsaufwand ausführen können.
Überblick über OCI Batch Service
OCI Batch fungiert als zentraler Service für die Verwaltung und Ausführung von Batch-Workloads. Wenn ein Job weitergeleitet wird, wird er in eine Queue gestellt und basierend auf Planungsentscheidungen und Ressourcenverfügbarkeit verarbeitet. Der Service wertet Jobanforderungen aus und stellt Rechenkapazität dynamisch bereit, um Aufgaben auszuführen. Jede Aufgabe wird in einer containerisierten Umgebung ausgeführt, um Konsistenz und Isolation sicherzustellen. Sobald die Ausführung abgeschlossen ist, werden Ausgaben gespeichert und Protokolle zur Überwachung und Fehlerbehebung generiert.
Dieser Ansatz bietet einen optimierten Workflow, in dem Jobweiterleitung, Planung, Ausführung und Beobachtbarkeit in einem einzigen verwalteten Service verarbeitet werden.
Architektur Deep Dive
Die Architektur von OCI Batch folgt einem klaren Ablauf von der Jobweiterleitung bis zur Ausführung und Ausgabe, wie im Diagramm dargestellt.

Der Prozess beginnt, wenn ein Benutzer einen Job über die OCI-Konsole, die CLI oder die API weiterleitet. Diese Anforderung ist mit einer Batch Context verknüpft, die als grundlegende Konfigurationsschicht fungiert. Der Kontext definiert Schlüsseleinstellungen wie Networking, Compute-Flotten und Logging, um sicherzustellen, dass alle Jobs in einer konsistenten Umgebung ausgeführt werden.
Jobs werden dann in Job Pools organisiert, die eine logische Gruppierung bereitstellen und das Planungsverhalten steuern. Dies ist besonders nützlich bei der Verwaltung von Workloads über verschiedene Teams oder Umgebungen hinweg, da es Priorisierung und Isolation ermöglicht. Jeder weitergeleitete Job stellt eine vollständige Arbeitseinheit dar und kann eine oder mehrere Aufgaben enthalten. Aufgaben sind die kleinsten ausführbaren Einheiten und werden mit einer definierten Aufgabenumgebung ausgeführt. Dadurch können Jobs in kleinere Teile unterteilt werden, die je nach definierten Abhängigkeiten unabhängig oder nacheinander ausgeführt werden können.
Nach dem Weiterleiten werden Jobs in eine Queue platziert, wo sie warten, bis Ressourcen verfügbar sind. Der Scheduler wertet die Queue kontinuierlich aus und wählt Jobs basierend auf Priorität und Kapazität aus. Dadurch wird sichergestellt, dass Arbeitslasten effizient verarbeitet werden, ohne das System zu überfordern.
Um diese Aufgaben auszuführen, verwendet OCI Batch Compute Fleets, das die zugrunde liegende Compute-Kapazität darstellt. Diese Flotten werden basierend auf dem Workload-Bedarf dynamisch bereitgestellt. Wenn weitere Jobs weitergeleitet werden, wird zusätzliche Kapazität zugewiesen. Wenn der Bedarf sinkt, werden die Ressourcen reduziert. Dies gewährleistet eine effiziente Nutzung, ohne dass ein manuelles Eingreifen erforderlich ist.
Nach der Ausführung werden die Ergebnisse in OCI storage services gespeichert, und Logs und Metriken werden zur Sichtbarkeit erfasst. Dadurch erhalten Sie einen vollständigen Überblick über die Jobausführung und die Systemperformance.
Warum diese Architektur wichtig ist
Eine wichtige Stärke von OCI Batch liegt in der Trennung zwischen Jobweiterleitung und -ausführung. Anstatt jeden Job sofort auszuführen, verwendet das System Queues und Planungslogik, um Arbeitslasten effizient zu verwalten. Mit diesem Design kann OCI Batch plötzliche Nachfragespitzen bewältigen, ohne dass eine vorab bereitgestellte Infrastruktur erforderlich ist. Außerdem wird sichergestellt, dass Jobs mit höherer Priorität zuerst ausgeführt werden können, wodurch die Vorhersehbarkeit in gemeinsam genutzten Umgebungen verbessert wird.
Durch die dynamische Verwaltung der Ressourcenzuweisung und die Kontrolle der Ausführung über Queues bietet der Service ein Gleichgewicht zwischen Performance, Skalierbarkeit und Kosteneffizienz.
Kernkomponenten von OCI Batch
OCI Batch basiert auf einer Reihe von Kernkomponenten, die zusammenarbeiten, um Batch-Verarbeitungsfunktionen bereitzustellen.
- Der Batchkontext definiert die Umgebung für Workloads, einschließlich Networking, Compute-Flotten und Loggingkonfigurationen. Es sorgt für Konsistenz über alle Jobs hinweg.
- Jobpools werden verwendet, um zugehörige Jobs zu gruppieren und das Planungsverhalten zu verwalten. Sie helfen, Workloads zu organisieren und Prioritäten in Umgebungen mit mehreren Teams zu steuern.
- Ein Job stellt einen vollständigen Workflow dar und kann aus mehreren Aufgaben bestehen. Es definiert, was ausgeführt werden muss und wie Aufgaben miteinander verbunden sind.
- Aufgaben sind die kleinsten Ausführungseinheiten. Jede Aufgabe wird in einem Container ausgeführt und führt einen bestimmten Vorgang aus. Aufgaben können parallel ausgeführt werden oder Abhängigkeiten folgen, was sowohl einfache als auch komplexe Workflows ermöglicht.
- Aufgabenprofile definieren, wie Aufgaben ausgeführt werden, indem Ressourcenanforderungen wie CPU, Speicher, Containerimages und Umgebungsvariablen angegeben werden. Dadurch können Workloads basierend auf ihren Anforderungen optimiert werden.
Real-World-Beispiel: Videoverarbeitungspipeline
Betrachten Sie ein Szenario, in dem Tausende von Videos verarbeitet werden müssen. Beispiel: Formate konvertieren, Miniaturansichten generieren oder Filter anwenden.
Mit OCI Batch kann jedes Video als separate Aufgabe innerhalb eines Jobs behandelt werden. Diese Aufgaben können über mehrere Compute-Ressourcen hinweg parallel ausgeführt werden, wodurch die gesamte Verarbeitungszeit erheblich reduziert wird. Wenn der Workload-Bedarf steigt, stellt OCI Batch automatisch zusätzliche Rechenkapazität bereit, um die Aufgaben zu bewältigen. Sobald die Verarbeitung abgeschlossen ist, werden Ergebnisse gespeichert und Protokolle zur Überwachung generiert. Dieses Muster kann auf viele andere Anwendungsfälle angewendet werden, darunter Datenpipelines, Workloads für maschinelles Lernen und technische Simulationen.
Voraussetzungen
Befolgen Sie die Beispiele für IAM-Policys, um dem OCI-Batchservice Zugriff auf die erforderlichen OCI-Services zu erteilen.
Sie müssen auch die OCI-CLI herunterladen, wenn Sie damit Jobs erstellen möchten.
Aufgabe 1. Batchkontext erstellen
Der Batchkontext ist die oberste Konfigurationsschicht für Ihre Batch-Workloads. Dazu gehören Networking, Flotten, Berechtigungen, Jobprioritätseinstellungen und Loggingkonfiguration.
Um einen Batchkontext zu erstellen, gehen Sie zum Batchservice, und wählen Sie Batchkontexte und dann Batchkontext erstellen aus. Geben Sie die folgenden Details basierend auf Ihrer Umgebung ein.
- Name
- Compartment
- Beschreibung
- VCN
- Subnetz
- Flotte
- Berechtigungen (optional)
- Jobprioritätskonfiguration (optional)
-
Logging-Konfiguration

Aufgabe 2. Jobpool erstellen
Ein Jobpool ist einfach ein logischer Container für Jobs. Wenn Sie einen Job ausführen, wählen Sie einen Jobpool aus, unter dem er erstellt werden soll. Zum Erstellen eines Jobpools sind nur die folgenden Konfigurationen erforderlich.
- Name
- Beschreibung
-
Compartment

Aufgabe 3. Aufgabenprofil erstellen
Ein Aufgabenprofil ist eine wiederverwendbare Konfiguration, mit der die minimal erforderlichen Compute-Ressourcen für Aufgaben definiert werden, wie 1 OCPU und 16 GB Arbeitsspeicher. Sie können mehrere Profile erstellen, die jeweils einer anderen Ressourcenanforderung entsprechen. Zum Erstellen eines Aufgabenprofils benötigen Sie die folgenden Konfigurationen:
- Name
- Beschreibung
- Mindestanzahl OCPUs - Sie können diesen Wert für dieses Beispiel auf 1 setzen
-
Minimaler Arbeitsspeicher in GB - Sie können diesen Wert für dieses Beispiel auf 8 setzen

Aufgabe 4. Lokale Umgebung einrichten und Containerimages pushen
-
Code aus GitHub abrufen und in das richtige Verzeichnis verschieben.
git clone https://github.com/oracle-devrel/technology-engineering.git cd technology-engineering/app-dev/developer-tools-and-lowcode/batch/video-transcoding/ -
Erstellen Sie ein Repository in OCI Container Registry (OCIR).

-
Senden Sie das Containerimage an OCIR. Der Imagepfad muss mit der Region, dem Mandanten-Namespace, dem Repository-Namen und dem Imagetag übereinstimmen, d.h. mit
iad.ocir.io/<tenancy-namespace>/convert_mp4_to_avi:latestdocker build -t <image>:<tag> . docker push <image>:<tag>
-
Erstellen Sie Object Storage-Buckets für Ein- und Ausgabevideos.


-
Videodatei in Object Storage hochladen
Aufgabe 5. Aufgabenumgebung erstellen
Eine Aufgabenumgebung ist die Laufzeitkonfiguration für Ihre Aufgaben. Zum Einrichten einer Aufgabenumgebung benötigen Sie:
- Name
- Beschreibung
- Sicherheitskontext:
- Benutzer-ID: Auf 1 setzen
- Gruppenkennung: Auf 1 setzen
- Dateisystemgruppen-ID: Auf 1 setzen
-
Arbeitsverzeichnis: Stellen Sie dies auf /video

Aufgabe 6. Job weiterleiten
Es gibt verschiedene Möglichkeiten, einen Job an den Batch-Dienst weiterzuleiten. Für dieses Tutorial verwenden wir die OCI-CLI.
- Erstellen Sie eine Datei mit dem Namen
video_conversion_job.json - Kopieren Sie Folgendes und fügen Sie es in
video_conversion_job.jsonein{ "batchJobPoolId": "JOB_POOL_OCID", "compartmentId": "COMPARTMENT_ID", "description": "Task to convert video from MP4 to AVI format", "displayName": "convert_video", "maxWaitSeconds": 0, "tasks": [ { "batchJobPoolId": "JOB_POOL_OCID", "compartmentId": "COMPARTMENT_ID", "description": "Task to convert video from MP4 to AVI format", "displayName": "convert_video", "maxWaitSeconds": 0, "tasks": [ { "batchTaskEnvironmentId": "TASK_ENVIRONMENT_OCID", "batchTaskProfileId": "TASK_PROFILE_OCID", "description": "Task to convert video from MP4 to AVI format", "environmentVariables": [ { "name": "INPUT_BUCKET", "value": "input_bucket" }, { "name": "INPUT_OBJECT", "value": "input.mp4" }, { "name": "OCI_BUCKET", "value": "output_bucket" }, { "name": "OUTPUT_FILENAME", "value": "output.avi" }, { "name": "OCI_NAMESPACE", "value": "TENANCY_NAMESPACE" }, { "name": "OCI_REGION", "value": "REGION" } ], "fleetAssignmentPolicy": { "type": "BEST_FIT" }, "name": "convert_video", "type": "COMPUTE" } ], "waitForState": [ "ACCEPTED" ], "waitIntervalSeconds": 0Ersetzen Sie Folgendes entsprechend Ihrer Umgebung:
- JOB_POOL_OCID
- COMPARTMENT_ID
- TASK_ENVIRONMENT_OCID
- TASK_PROFILE_OCID
- TENANCY_NAMESPACE
- REGION
-
Führen Sie den folgenden Befehl aus:
oci batch batch-job create --from-json file://video_conversion_job.jsonDie Ausführung des Jobs dauert bis zu 10 Minuten. Beachten Sie den Job in der OCI-Konsole, um zu sehen, in welcher Phase er sich befindet.
Aufgabe 7. Ergebnisse validieren
- Gehen Sie in der OCI-Konsole zu Object Storage.
- Suchen Sie den Ausgabe-Bucket, und prüfen Sie, ob transcodiertes Video vorhanden ist.
OCI-Batch- vs. herkömmliche Ansätze
Herkömmliche Batch-Verarbeitungslösungen erfordern häufig die Verwaltung der Infrastruktur, die Konfiguration von Scheduler und die manuelle Skalierung. Dies erhöht die Komplexität und den Betriebsaufwand. Mit OCI Batch werden diese Herausforderungen jedoch beseitigt, indem eine verwaltete Umgebung bereitgestellt wird, in der Planung, Ausführung und Ressourcen-Provisioning automatisch verarbeitet werden. Dies erleichtert die Ausführung großer Workloads ohne umfassende Infrastrukturkenntnisse.
Best Practices
Um OCI Batch effektiv zu verwenden, sollten Workloads unter Berücksichtigung der Skalierbarkeit konzipiert werden. Das Aufteilen großer Jobs in kleinere Tasks ermöglicht eine bessere parallele Ausführung und verbesserte Performance. Außerdem ist es wichtig, geeignete Aufgabenprofile zu definieren, damit Ressourcen effizient zugewiesen werden. Die richtige Protokollierung und Überwachung sollte aktiviert werden, um einen Einblick in die Jobausführung zu gewährleisten. Durch die Verwendung von Jobpools und Prioritäten wird sichergestellt, dass kritische Workloads pünktlich ausgeführt werden, insbesondere in gemeinsam genutzten Umgebungen.
Schlussfolgerung
Der OCI Batch-Service bietet eine optimierte und skalierbare Möglichkeit, Batch-Workloads in der Cloud auszuführen. Durch die Verarbeitung von Joborchestrierung, Planung und Compute-Bereitstellung in einem einzigen Service reduziert es die betriebliche Komplexität und verbessert die Effizienz. Für Unternehmen, die sich mit groß angelegten, rechenintensiven Workloads befassen, bietet OCI Batch eine zuverlässige und flexible Lösung, mit der sich Teams auf die Bereitstellung von Ergebnissen konzentrieren können, anstatt die Infrastruktur zu verwalten.
Verwandte Links
- OCI Batch Service - Managed Compute Orchestration Engine für Cloud-native Workloads
- OCI-Batchservice
Bestätigungen
- Autoren: Payal Sharma (Senior Cloud Architect), Matthew McDaniel (Staff Cloud Engineer)
Weitere Lernressourcen
Sehen Sie sich weitere Übungen auf docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im YouTube-Kanal von Oracle Learning zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Deploy Cloud Native Batch Workloads Using Oracle Cloud Infrastructure Batch Service
G56467-01