So arbeiten Batchobjekte zusammen

OCI Batch verwendet eine Ressourcenhierarchie, um große Workloads zu definieren, zu gruppieren und auszuführen. Jedes Objekt hat eine bestimmte Rolle, von der Gruppierung von Jobs bis zur Definition der Ausführung von Aufgaben. Um Batchjobs effizient einzurichten und zu verwalten, müssen Sie wissen, wie diese Objekte zusammenarbeiten.

Schlüsselbeziehungen zwischen OCI-Batchobjekten

  1. Batchkontext: Ein Batchkontext ist der Container der obersten Ebene für Ihre Workloads. Sie enthält alle auszuführenden Jobs, wie Netzwerkeinstellungen, Flotten, Berechtigungen, Logs und Jobpriorisierungsregeln. Verwenden Sie verschiedene Batchkontexte, um Arbeitslasten zu isolieren. Weitere Informationen finden Sie unter Batchkontexte verwalten.
  2. Jobpools: Jeder Batchkontext organisiert Jobs in Jobpools. Jobpools gruppieren zugehörige Jobs und erleichtern so deren Verwaltung und Priorisierung. Verwenden Sie Jobpool-Tags, um Jobs in einem Jobpool zu priorisieren und bei der Zugriffskontrolle und Planung zu helfen. Weitere Informationen finden Sie unter Verwalten von Jobpools und Konfigurieren der Jobpriorisierung.
  3. Jobs: Jobs stellen eine Gruppe zugehöriger Arbeiten in einem Jobpool dar. Jeder Job fungiert als logische Gruppe für eine oder mehrere Aufgaben. Jobs werden in ihrem Jobpool anhand von Jobpooltags und Jobtags priorisiert, die während des Jobpools oder Joberstellungsprozesses angewendet werden. Die Jobpriorisierung bestimmt, welche Jobs zuerst basierend auf Priorisierungsregeln im Batchkontext ausgeführt werden. Weitere Informationen finden Sie unter Jobs verwalten und Jobpriorisierung konfigurieren.
  4. Aufgaben: Aufgaben sind einzelne Ausführungseinheiten innerhalb eines Jobs. Sie definieren Aufgaben beim Erstellen eines Jobs. Weitere Informationen finden Sie unter Job erstellen. Jede Aufgabe umfasst die folgenden Komponenten:
    1. Aufgabenumgebung: Die Aufgabenumgebung definiert die Laufzeitumgebung für die Aufgabe, einschließlich Containerimage, Ausführungsbenutzer- und Gruppeneinstellungen und erforderlichen NFS-Volume-Mounts. Aufgabenumgebungen können wiederverwendet werden. Sie können eine Aufgabenumgebung einmal definieren und mehreren Aufgaben zuweisen. Weitere Informationen finden Sie unter Aufgabenumgebungen verwalten.
    2. Aufgabenprofile: Aufgabenprofile geben die minimalen Compute-Ressourcen an, die für eine Aufgabe erforderlich sind. Aufgabenprofile können wiederverwendet werden und helfen, den Ressourcenbedarf aufgabenübergreifend zu standardisieren. Weitere Informationen finden Sie unter Verwalten von Aufgabenprofilen.
    3. Berechtigungsansprüche: Berechtigungen werden zur Kontrolle begrenzter Ressourcen, wie Softwarelizenzen, verwendet. Erstellen Sie Berechtigungen für die Ressourcen, die Sie haben. Wenn Sie einer Aufgabe eine Berechtigung zuweisen, wird die Aufgabe nur ausgeführt, wenn ein Berechtigungsslot verfügbar ist. Beim Ausführen einer Aufgabe wird ein Slot verwendet, der freigegeben wird, wenn die Aufgabe abgeschlossen ist. Berechtigungen stellen keine Verbindung zu Lizenzservern her. Sie erzwingen die maximale Anzahl gleichzeitiger Aufgaben unter Verwendung des angegebenen Limits.
    4. Aufgabenabhängigkeiten: Abhängigkeiten geben die Ausführungsreihenfolge an, um sicherzustellen, dass Voraussetzungsaufgaben vor dem Start abhängiger Aufgaben abgeschlossen werden.
  5. Flottenzuweisung: Eine Flotte stellt die OCI-Ausprägungskonfiguration dar, mit der Aufgaben ausgeführt werden, die ihr zugewiesen sind. Wenn eine Aufgabe zur Ausführung bereit ist, plant Batch sie gemäß der definierten Flottenzuweisungs-Policy für eine verfügbare Compute-Flotte, die den im Aufgabenprofil angegebenen Ressourcenanforderungen (OCPUs und RAM) entspricht. Weitere Informationen finden Sie unter Flottenzuweisungs-Policys im Thema Aufgaben mit Flotten abgleichen.
  6. Jobpriorisierung: Die Jobpriorisierung bestimmt, welche Jobs und Aufgaben zuerst ausgeführt werden, wenn mehrere Jobs um Ressourcen konkurrieren. Batch verarbeitet Priorisierung anhand von Tags und Gewichtungen, die Sie im Batchkontext konfigurieren. Jobs erben und können Prioritäten aus ihrem Jobpool überschreiben. Administratoren können Richtlinien festlegen, damit dringende Projekte vor Jobs mit niedrigerer Priorität ausgeführt werden. Sie können Tags anwenden, wenn Sie Jobs weiterleiten oder Pools einrichten. Batch verwendet diese Einstellungen, um Jobs in der Queue gemäß den Regeln des aktuellen Batchkontexts einzustufen. Legen Sie die Jobpriorisierung fest, wenn Sie einen Batchkontext erstellen. Weitere Informationen finden Sie unter Batchkontexte verwalten und Jobpriorisierung konfigurieren.

Batch-Workflow auf hoher Ebene


Containerdiagramm des Batch-Dienstes, das die Beziehung zwischen seinen Komponenten veranschaulicht. Ein OCI-Benutzer leitet Workloads in den Batchkontext (den Container der obersten Ebene) weiter, der einen oder mehrere Jobpools enthält. Jeder Jobpool verwaltet zugehörige Jobs, und jeder Job besteht aus mindestens einer Aufgabe. Das Diagramm zeigt Jobpool 1 mit Job 1 (enthält Task 1, Task 2, Task 3) und Jobpool 2 mit Job 2 (enthält Task 1, Task 2). Die visuelle Darstellung zeigt, wie Aufgaben innerhalb von Jobs gruppiert werden, die über Jobpools in einem Batchkontext auf OCI verwaltet werden.

  1. Images und externe Ressourcen vorbereiten: Zum Starten, Erstellen und Übertragen Ihrer Containerimages in die Oracle Cloud Infrastructure (OCI)-Registry. Richten Sie den erforderlichen Dateispeicher im Voraus ein, und stellen Sie sicher, dass Sie über die richtigen Berechtigungen für den Zugriff auf Speicher- und Containerimages verfügen. Wenn Sie alle erforderlichen Bilder und externen Abhängigkeiten im Voraus organisieren, wird eine reibungslose Ausführung Ihrer Batchjobs sichergestellt.
  2. Logging und Networking einrichten: Erstellen Sie als Nächstes Loggruppen und die erforderlichen Logs. Konfigurieren Sie Ihr virtuelles Cloud-Netzwerk (VCN) und den Subnetzzugriff, damit Batchjobs sicher mit anderen OCI-Ressourcen kommunizieren können.
  3. Umgebung definieren: Definieren Sie die Umgebung, in der jeder Job ausgeführt wird. Sie können Batchkontexte erstellen, um verschiedene Workloads zu isolieren, Jobs in Ihrem Mandanten zu priorisieren und Ressourcen für verschiedene Projekte zu verwalten.
  4. Aufgabenprofil definieren: Erstellen Sie Aufgabenprofile, um die minimalen Hardwareanforderungen für Ihre Aufgaben zu definieren, wie OCPUs, Arbeitsspeicher und Festplattenspeicher. Durch Angabe dieser Einstellungen stellen Sie sicher, dass Aufgaben auf Compute-Flotten mit der entsprechenden Größe geplant werden, wodurch Ressourcennutzung und -kosten optimiert werden. Aufgabenprofile sind für Flottenzuweisungs-Policys unerlässlich, sodass Batch jede Aufgabe je nach Anforderung mit der am besten geeigneten Ressourcenkonfiguration abgleichen kann.
  5. Batchkontext erstellen: Richten Sie einen Batchkontext als Container der obersten Ebene für die Organisation und Verwaltung Ihrer Jobs ein. Definieren Sie Netzwerk-, Logging-, Flotten- und Berechtigungseinstellungen, die für die Workload erforderlich sind.
  6. Jobpools erstellen: Erstellen Sie Jobpools in jedem Batchkontext, um zugehörige Jobs zusammenzuhalten und Workloads nach Bedarf zu isolieren. Sie können Autorisierungs-Policys für den Benutzerzugriff anwenden und bestimmte Ressourcen verschiedenen Projekten oder Teams innerhalb von Jobpools zuordnen. Verwenden Sie Jobpool-Tags, um die Priorität von Jobs in jedem Pool festzulegen.
  7. Jobs definieren: Jobs sind die Haupteinheiten der Batchverarbeitung. Sie leiten sie zur Ausführung an bestimmte Jobpools weiter. Jeder Job besteht aus einer oder mehreren Aufgaben, die abgeschlossen werden müssen. Jobs werden während der Ausführung mit Prioritätsebenen für dynamische Anpassungen getaggt. Dadurch wird sichergestellt, dass kritische Jobs die erforderlichen Ressourcen erhalten.
  8. Aufgaben definieren: Definieren Sie einzelne Aufgaben in jedem Job. Aufgaben sind die grundlegenden Berechnungsschritte, die für den Workflowabschluss erforderlich sind. Jede Aufgabe wird durch eine Compute Task definiert, die den auszuführenden Befehl, die Umgebung und das Aufgabenprofil angibt. Jede Aufgabe wird in einer Batch-Aufgabenumgebung ausgeführt, die alle auszuführenden Schritte enthält, wie z.B. das Containerimage und alle erforderlichen Volume Mounts. Es ist auch mit einem Aufgabenprofil verknüpft, das sicherstellt, dass die Aufgabe mit der richtigen Flotte abgeglichen wird, indem die erforderliche minimale CPU und der erforderliche Arbeitsspeicher definiert werden.
  9. Ausführen und überwachen: Leiten Sie Jobs weiter, und verfolgen Sie den Fortschritt über das Job-Dashboard.