Flotten-Arbeitsbelastungen

IBM Cloud® Code Engine ist eine vollständig verwaltete, serverlose Plattform, auf der Ihre containerisierten Workloads, einschließlich Flotten-Workloads, ausgeführt werden. Erfahren Sie mehr über den Betrieb von Flotten in Code Engine.

Was sind Flotten?

Eine Flotte, auch serverlose Flotte genannt, ist eine Code Engine Rechenkomponente, die eine oder mehrere Instanzen von Benutzercode parallel ausführt, um eine große Warteschlange rechenintensiver Aufgaben zu erledigen. Flotten können sich mit Virtual Private Clouds verbinden, um Benutzerdaten sicher auszutauschen, wenn sie sich mit anderen Diensten verbinden. Im Gegensatz zu Batch-Aufträgen bieten Fleets dynamisches Task-Queuing und Single-Tenant-Isolation und sind sowohl mit vCPU als auch mit GPUs kompatibel.

Wie funktionieren die Flotten?

Flotten bestehen aus drei Hauptelementen: Aufgaben, Instanzen und Arbeitsknoten. Eine einzelne Aufgabe wird von einer einzelnen Instanz von Benutzercode erledigt, die auf einem Arbeitsknoten läuft. Jeder Arbeitsknoten kann mehrere Aufgaben gleichzeitig ausführen, so dass viele Aufgaben parallel erledigt werden können. Wenn eine Aufgabe abgeschlossen ist, wird eine neue Instanz auf dem Arbeitsknoten gestartet, um die nächste verfügbare Aufgabe in der Warteschlange zu erledigen. Dieser Vorgang wiederholt sich auf jedem Arbeitsknoten, bis alle Aufgaben abgeschlossen sind. Dann werden die Arbeitsknoten automatisch deprovisioniert.

Wie unterscheiden sich Flotten von Arbeitsplätzen?

Im Gegensatz zu Batch-Aufträgen, die in erster Linie für kleine bis mittelgroße Aufgaben gedacht sind, sind Flotten für die Ausführung großer, rechenintensiver Aufgaben konzipiert. In der nachstehenden Tabelle finden Sie die spezifischen Unterschiede zwischen Arbeitsplätzen und Flotten.

Code Engine Flotten und Arbeitsplätze im Vergleich
Merkmal Flotten Jobs
Isolation Single-Tenant Multi-Tenant
Größe der Aufgabe Große Aufgaben Kleine bis mittelgroße Aufgaben
Bereitstellung Dynamische Warteschlange Statische Anordnung
Konfiguration der Maschine Volle Kontrolle über das Maschinenprofil Keine Kontrolle über das Maschinenprofil
VPC-Verbindung Verbindet sich nativ mit einer bestehenden VPC Erfordert privaten Pfad

Was sind die wichtigsten Merkmale der Arbeit mit Code Engine Flotten?

Lesen Sie die folgenden Themen, um mehr über die Arbeit mit Flotten in Code Engine zu erfahren.

Automatische Skalierung

Mit einer Flotte können Sie die Vorteile der Großparallelität nutzen, um große, rechenintensive Aufgaben zu erledigen. Code Engine skaliert die Arbeitsknoten in Ihrer Flotte automatisch, um die Ressourcenanforderungen möglichst effizient zu erfüllen. Sie können Code Engine die Profile der bereitgestellten Worker bestimmen lassen oder ein bestimmtes Profil auswählen, z. B. einen GPU-Typ. In jedem Fall skaliert Code Engine automatisch die Anzahl der Mitarbeiter, um die größtmögliche Effizienz zu erreichen.

Die Anzahl der eingesetzten Worker richtet sich nach der Anzahl der zu erledigenden Aufgaben, den für eine Instanz Ihres Codes erforderlichen Ressourcen und der maximalen Anzahl gleichzeitiger Instanzen, die Sie gleichzeitig ausführen möchten. Durch die Anpassung dieser Einstellungen können Sie Ihre Flotte so skalieren, dass sie sowohl 1 als auch mehrere Millionen Aufgaben erledigen kann.

Stellen Sie sich zum Beispiel vor, Sie haben 4 Aufgaben zu erledigen. Für jede Instanz des Codes zur Erfüllung einer Aufgabe wird 1 vCPU and 2 GB memory benötigt, so dass sich ein Gesamtbedarf von 4 vCPU and 8GB memory ergibt. Wenn Sie die maximale Anzahl gleichzeitiger Instanzen auf 2 festlegen, kann Code Engine einen Arbeitsknoten mit 2 vCPU and 4 GB memory bereitstellen, um 2 Instanzen gleichzeitig auszuführen. Wenn Sie die maximale Anzahl gleichzeitiger Instanzen auf 4 festlegen, kann Code Engine 2 der gleichen Worker-Knoten einsetzen, um alle 4 Instanzen gleichzeitig auf beiden Workern auszuführen. Im zweiten Szenario wird die Flotte schneller fertig, aber es müssen mehr Arbeitskräfte eingesetzt werden. Denken Sie daran, dass es eine unendliche Anzahl von Kombinationen für die automatische Bereitstellung von Arbeitsknoten gibt und dass Arbeitsknoten mit verschiedenen Profilen bereitgestellt werden können.

Die automatische Skalierung ist für GPUs nicht verfügbar. Um GPUs für eine Flotte bereitzustellen, müssen Sie den Typ des bereitzustellenden GPU-Workers angeben.

Spezifikation von Aufgaben und Instanzen

Bei der Bereitstellung einer Flotte können die Benutzer die Anzahl der zu erledigenden Aufgaben, die Anzahl der gleichzeitig auszuführenden Instanzen und die Reihenfolge, in der die Aufgaben erledigt werden, angeben. Flotten können an vielen Aufgaben parallel arbeiten, indem sie mehrere Instanzen gleichzeitig starten. Alle Instanzen werden mit der gleichen Menge an vCPU und Speicher wie in der Spezifikation der Flotte erstellt. Zusätzlich können Benutzer eine Aufgabenspezifikationsdatei erstellen, um spezifische Befehle und Argumente für jede Aufgabe bereitzustellen oder um benutzerdefinierte Aufgabenindizes zu erstellen.

Aufgabenspeicherung in COS

Sie können einen COS-Bucket verwenden, um die Aufgaben für Ihre Flotte bereitzustellen, indem Sie beim Erstellen der Flotte einen dauerhaften Datenspeicher und einen Bucket-Unterpfad angeben. Jedes Objekt im COS-Eimer steht für eine einzelne Aufgabe.

Isolation

Im Gegensatz zu Batch-Aufträgen bieten Flotten eine mandantenunabhängige Isolierung. Ihre Flottenmitarbeiter werden nicht mit anderen Nutzern geteilt.

Retries

Jede Flotteninstanz läuft bis zum Ende. Im Falle eines Fehlers startet Code Engine die Instanz jedoch neu. Sie können die maximale Anzahl der Wiederholungsversuche begrenzen, um einen Neustart der fehlgeschlagenen Instanzen zu vermeiden.

Status

Eine Flotte befindet sich im Status Running, wenn mindestens ein Arbeitsknoten bereitgestellt wird. Wenn die Flotte nicht mehr läuft, befindet sie sich im Status Succeeded, wenn alle Aufgaben erfolgreich abgeschlossen wurden, oder Failed, wenn eine oder mehrere Aufgaben fehlgeschlagen sind. Sie können auch eine Flotte stornieren.

Weitere Informationen finden Sie unter Den Status Ihrer Flotte verstehen.

Profil des Arbeitnehmers

Sie können optional das Profil für Ihren Fleet Worker auswählen. Wenn Sie kein Profil angeben, wird Code Engine ein Profil für Sie auswählen.

Code Engine flotten unterstützen die folgenden Profilfamilien:

Ausgeglichen
Instanzprofil
bx2-2x8
bx2-4x16
bx2-8x32
bx2-16x64
bx2-32x128
bx2-48x192
bx2-64x256
bx2-96x384
bx2-128x512
bx2a-2x8
bx2a-4x16
bx2a-8x32
bx2a-16x64
bx2a-32x128
bx2a-48x192
bx2a-64x256
bx2a-96x384
bx2a-128x512
bx2a-228x912
bx2d-2x8
bx2d-8x32
bx2d-16x64
bx3d-2x10
bx3d-4x20
bx3d-8x40
bx3d-16x80
bx3d-24x120
bx3d-32x160
bx3d-48x240
bx3d-64x320
Rechenressourcen
Instanzprofil
cx2-2x4
cx2-4x8
cx2-8x16
cx2-16x32
cx2-32x64
cx2-48x96
cx2-64x128
cx2-96x192
cx2-128x256
cx3d-2x5
cx3d-4x10
cx3d-8x20
cx3d-16x40
cx3d-24x60
cx3d-32x80
cx3d-48x120
cx3d-64x160
Speicher
Instanzprofil
mx2-2x16
mx2-4x32
mx2-8x64
mx2-16x128
mx2-32x256
mx2-48x384
mx2-64x512
mx2-96x768
mx2-128x1024
mx2d-16x128
mx2d-64x512
mx2d-96x768
mx3d-2x20
mx3d-4x40
mx3d-8x16
mx3d-16x160
mx3d-24x240
mx3d-32x320
mx3d-48x480
mx3d-64x640
GPU
Instanzprofil
gx3-16x80x1l4
gx3-32x160x2l4
gx3-64x320x4l4
gx3-24x120x1l40s
gx3-48x240x2l40s
gx2-8x64x1v100
gx2-16x128x1v100
gx2-16x128x2v100
gx2-32x256x2v100
gx3d-24x120x1a100p
gx3d-48x240x2a100p
gx3d-160x1792x8h100
gx3d-160x1792x8h200
gx4d-232x3840x8b300
Flex
Instanzprofil
nxf-2x1
nxf-2x2
bxf-2x8
bxf-4x16
bxf-8x32
bxf-16x64
bxf-24x96
bxf-32x128
bxf-48x192
bxf-64x256
cxf-2x4
cxf-4x8
cxf-8x16
cxf-16x32
cxf-24x48
cxf-32x64
cxf-48x96
cxf-64x128
mxf-2x16
mxf-4x32
mxf-8x64
mxf-16x128
mxf-24x192
mxf-32x256
mxf-48x384
mxf-64x512

Einige Profile sind möglicherweise nicht in allen VPC-Netzwerkzonen verfügbar. Sie können den folgenden CLI-Befehl verwenden, um die von Code Engine unterstützten Worker-Profile für serverlose Flotten in einer Region aufzulisten.

ibmcloud ce fleet worker profiles
  • Wenn Sie die zonale Verfügbarkeit und Kapazität bestimmter Profile wie H100 und L40s wissen möchten, öffnen Sie einen Support-Fall und wählen Sie "Virtual Private Cloud (VPC)" als Thema.
  • Wenn Sie ein bestimmtes VPC-Profil benötigen, das derzeit nicht von Flotten unterstützt wird, öffnen Sie einen Support-Fall und wählen Sie als Thema " Code Engine ".

Wie kann ich mit Flotten beginnen?

Um eine einfache Code Engine Flotte mit dem icr.io/codeengine/helloworld Beispiel-Image zu erstellen und auszuführen, siehe Ausführen Ihrer ersten Code Engine Flotte.