Einführung in IBM Cloud Code Engine

IBM Cloud® Code Engine ist eine vollständig verwaltete, serverunabhängige Plattform, die Ihre containerisierten Workloads ausführt, einschließlich Web-Apps, Mikroservices, ereignisgesteuerten Funktionen oder Batch-Jobs. Code Engine erstellt sogar Container-Images für Sie aus Ihrem Quellcode. Alle diese Workloads können nahtlos zusammenarbeiten, da sie alle in derselben Kubernetes-Infrastruktur gehostet werden. Code Engine ist so konzipiert, dass Sie sich auf das Schreiben des Code konzentrieren können und nicht die Infrastruktur zum Hosten des Codes beachten brauchen.

Lernen Sie zunächst einige Schlüsselbegriffe für Code Engine kennen und beginnen Sie dann mit einer der folgenden Optionen.

Was sind Code Engine Projekte, Anwendungen, Stellen, Funktionen und Flotten?

Machen Sie sich vor dem Einstieg mit einigen wichtigen Begriffen von Code Engine vertraut.

Code Engine Bedingungen
term Beschreibung
Projekt Ein Projekt besteht aus einer Reihe von Code Engine-Entitäten wie zum Beispiel Anwendungen, Jobs oder Builds. Projekte werden zum Verwalten von Ressourcen und bereitstellen von Zugriff auf ihre Entitäten verwendet.
Anwendung Eine Anwendung oder App führt den Code für die Verarbeitung von HTTP-Anforderungen aus. Eine Anwendung verfügt über eine URL für eingehende Anforderungen. Die Anzahl der aktiven Instanzen einer Anwendung wird abhängig von der eingehenden Workload automatisch nach oben oder unten (auf null) skaliert.
Build Ein Build oder ein Image-Build ist ein Mechanismus, mit dem Sie ein Container-Image aus Ihrem Quellcode erstellen können. Code Engine unterstützt die Erstellung aus einer Dockerfile und Cloud Native Buildpacks.
Funktion Eine Funktion ist ein zustandsloser Codeschnipsel, der als Reaktion auf eine HTTP Anfrage Aufgaben ausführt.
Job Ein Job führt eine oder mehrere Instanzen Ihres ausführbaren Codes parallel aus. Im Gegensatz zu Anwendungen, die für die Verarbeitung eingehender Anforderungen einen HTTP-Server verwenden, werden Jobs einmalig ausgeführt und nach ihrer Ausführung beendet.
Flotte Eine Flotte, auch serverlose Flotte genannt, führt eine oder mehrere Instanzen von Benutzercode aus, um eine Reihe festgelegter Aufgaben zu erledigen. Fuhrparks sind für die Bewältigung großer, rechenintensiver Arbeitslasten ausgelegt. Im Gegensatz zu Aufträgen sind Flotten mandantenfähig, implementieren eine dynamische Aufgabenwarteschlange und bieten volle Kontrolle über die Konfiguration der Maschinenprofile. Weitere Informationen finden Sie unter Was ist der Unterschied zwischen Stellen und Flotten?

Weitere Informationen zu Begriffen finden Sie unter Code Engine-Terminologie.

Sie wissen nicht, was Sie wählen sollen? Code Engine-Planung enthält weitere Informationen hierzu.

Wie lassen sich Anwendungen, Jobs, Funktionen und Flotten vergleichen?

Vergleich von „ Code Engine “-Anwendungen, Aufgaben, Funktionen und Flotten
Merkmal Anwendung Job Funktion Flotte
Ausführungszeit (Dauer) Langwierig (10 Minuten pro Anfrage) Langfristig (bis zu 24 Stunden) Kurzer Lauf (2 Minuten oder weniger) Langfristig (Minuten bis Wochen)
Latenzzeit beim Start Mittel Geplanter Start Niedrig Niedrig
Beendigung Kontinuierlicher Betrieb Durchlauf bis zur Fertigstellung Durchlauf bis zur Fertigstellung Durchlauf bis zur Fertigstellung
Aufruftask Auf Anfrage oder im Dauerbetrieb Geplant Auf Anfrage, sofortige Geplant
Programmiermodell Container-basierte Erstellung und Ausführung Container-basierte Erstellung und Ausführung Sprachspezifische Quellcodedateien und Metadaten zu Abhängigkeiten Container-basierte Erstellung und Ausführung
Parallelität Parallele Ausführung, flexibel Geringe bis mittlere parallele Ausführung Hochparallele Ausführung Hochparallele Ausführung und Warteschlangen
Scale-out Basierend auf der Anzahl der Anfragen Basierend auf der Definition des Arbeitsaufkommens Auf der Grundlage von Ereignissen oder direkten Aufrufen Basierend auf der Anzahl der Aufgaben und gleichzeitigen Instanzen
Isolation Multi-Tenant Multi-Tenant Multi-Tenant Single-Tenant
GPU-Unterstützung Nein Nein Nein Ja
Kontrolle über die Maschinenkonfiguration Keine Steuerung Keine Steuerung Keine Steuerung full control
VPC-Konnektivität Über Private Path Über Private Path Über Private Path Nativ (über Subnetz-Pool)
Optimiert für Lang laufende, hochkomplexe Arbeitslasten und bedarfsorientierte Skalierung Geplante oder geplante Arbeitslasten mit hohem Ressourcenbedarf Anlaufzeit und schnelles Scale-out Groß angelegte, rechenintensive Workloads

Weitere Informationen finden Sie unter Planung für Code Engine.

Bereitstellen Ihrer ersten Code Engine Anwendung

Erstellen Sie Ihre erste Code Engine-App mithilfe des icr.io/codeengine/helloworld-Image.

  1. Öffnen Sie die Code Engine konsole.
  2. Wählen Sie Erstellen beginnen.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Bitte beachten Sie, dass Sie über ein ausgewähltes Projekt verfügen müssen, um eine Anwendung bereitstellen zu können.
  4. Wählen Sie Anwendung aus.
  5. Geben Sie einen Namen für die Anwendung ein, zum Beispiel myapp. Verwenden Sie einen Namen für die Anwendung, der innerhalb des Projekts eindeutig ist.
  6. Wählen Sie „ Vorhandenes Container-Image verwenden “ aus und geben Sie als Image-Referenz „ icr.io/codeengine/helloworld “ an. Für dieses Beispiel brauchen Sie die Standardwerte nicht zu ändern. Weitere Informationen über den Code, der für dieses Beispiel verwendet wird, finden Sie unter helloworld.
  7. Klicken Sie auf Erstellen.
  8. Nachdem sich der Anwendungsstatus in Bereit geändert hat, können Sie die Anwendung testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL.

Beispielausgabe

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-5b5895fdf7-abcd
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1
z=Set env var 'SHOW' to see all variables

Sie haben Ihre erste Anwendung für Code Engine bereitgestellt und getestet. Gehen Sie zum Tutorial: Bereitstellen von Anwendungen oder Arbeiten mit Anwendungen in Code Engine, um weitere Optionen für Anwendungen auszuprobieren.

Ersten Code Engine-Job ausführen

Erstellen Sie Ihren ersten Code Engine-Job und führen Sie ihn mit dem icr.io/codeengine/helloworld-Image aus.

  1. Öffnen Sie die Code Engine konsole.
  2. Wählen Sie Erstellen beginnen.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Bitte beachten Sie, dass Sie über ein ausgewähltes Projekt verfügen müssen, um einen Job erstellen zu können.
  4. Wählen Sie Job aus.
  5. Geben Sie einen Namen für den Auftrag ein, zum Beispiel myjob. Verwenden Sie einen Namen für den Job, der innerhalb des Projekts eindeutig ist.
  6. Geben Sie icr.io/codeengine/helloworld als Imagereferenz an. Für dieses Beispiel brauchen Sie die Standardwerte nicht zu ändern. Weitere Informationen über den Code, der für dieses Beispiel verwendet wird, finden Sie unter helloworld.
  7. Klicken Sie auf Erstellen.
  8. Klicken Sie auf Ihrer Jobseite auf Job übergeben, um einen Job auf der Basis der aktuellen Konfiguration zu übergeben.
  9. Akzeptieren Sie im Teilfenster "Job übergeben" alle Standardwerte und klicken Sie erneut auf Job übergeben, um Ihren Job auszuführen.

Wenn die Protokollierung aktiviert ist, wird das folgende Beispiel in den Protokollen angezeigt. Mehr über das Ausführen von Jobs mit aktivierter Protokollierung erfahren Sie unter Protokolle anzeigen.

Beispiel für die Ausgabe der Logging-Instanz

Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_DOMAIN=us-east.codeengine.appdomain.cloud
CE_JOB=myjob
CE_JOBRUN=myjob-jobrun-xgpmz
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myjob-jobrun-abcde-0-0
JOB_INDEX=0
...
z=Set env var 'SHOW' to see all variables

Sie haben einen Job in der Konsole erstellt und ausgeführt. Weitere Optionen für Jobs können Sie im Lernprogramm: Jobs ausführen ausprobieren oder unter Jobs in Code Engine ausführen kennenlernen.

Ausführen Ihrer ersten Funktion

Erstellen Sie Ihre erste Code Engine Funktion und führen Sie sie mit einem Beispiel-Funktionscode aus.

  1. Öffnen Sie die Code Engine konsole.
  2. Wählen Sie Erstellen beginnen.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Beachten Sie, dass Sie ein Projekt ausgewählt haben müssen, um eine Funktion zu erstellen.
  4. Funktion auswählen.
  5. Geben Sie einen Namen für die Funktion ein. Verwenden Sie für Ihre Funktion einen Namen, der innerhalb des Projekts eindeutig ist.
  6. Wählen Sie „ Node.js “ 22
  7. Klicken Sie auf Erstellen. Ihre Funktion wird mit Beispielcode erstellt. Sie können diesen Code auf der Seite Funktion -> Konfiguration bearbeiten.
  8. Klicken Sie auf Funktion testen und anschließend im Bereich Funktion testen auf Anfrage senden. Um die Funktion auf einer Webseite zu öffnen, klicken Sie auf Funktions- URL.

Beispielausgabe

{
  "args": {
    "__ce_headers": {
      "Accept-Encoding": "gzip, deflate, br",
      "User-Agent": "got (https://github.com/sindresorhus/got)",
      "X-Request-Id": "12340a7b-11c0-4de3-f16b-a6abc27f4146"
    },
    "__ce_method": "GET",
    "__ce_path": "/"
  },
  "env": {
    "HOME": "/root",
    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/lib/nodejs/bin",
    "PWD": "/nodejsAction",
    "SHLVL": "1",
    "_": "/usr/local/lib/nodejs/bin/node",
    "__OW_ALLOW_CONCURRENT": "true",
    "container": "oci"
  }
}

Sie haben Ihre erste Funktion auf Code Engine bereitgestellt und getestet. Gehen Sie zum Abschnitt Ausführen einer Funktion aus einer lokalen Quelle oder Arbeiten mit Funktionen, um weitere Optionen für Funktionen auszuprobieren.

Betrieb Ihrer ersten Flotte

Erstellen und betreiben Sie Ihre erste Code Engine-Flotte mithilfe des Images icr.io/codeengine/helloworld.

  1. Vergewissern Sie sich, dass Sie die erforderlichen Vorbereitungen für den Betrieb einer Flotte getroffen haben.
  2. Öffnen Sie die Code Engine konsole.
  3. Wählen Sie Erstellen beginnen.
  4. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Beachten Sie, dass Sie ein ausgewähltes Projekt haben müssen, um eine Flotte auszuführen.
  5. Flotte auswählen.
  6. Geben Sie einen Namen für die Flotte ein. Verwenden Sie einen Namen, der innerhalb aller Flotten des Projekts eindeutig ist.
  7. Geben Sie icr.io/codeengine/helloworld als Imagereferenz an. Für dieses Beispiel brauchen Sie die Standardwerte nicht zu ändern. Weitere Informationen über den Code, der für dieses Beispiel verwendet wird, finden Sie unter helloworld.
  8. Klicken Sie auf 'Erstellen'.

Wenn die Protokollierung aktiviert ist, wird das folgende Beispiel in den Protokollen angezeigt. Informationen zum Betrieb von Flotten mit aktivierter Protokollierung finden Sie unter Anzeigen von Flottenprotokollen.

Beispiel für die Ausgabe der Logging-Instanz

Hello from helloworld! I'm a task of fleet: fleet-abcdef1234! Task Index: 4, Task ID: 2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f6f
Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.eu-de.codeengine.cloud.ibm.com
CE_CPU=1
CE_DOMAIN=eu-de.codeengine.appdomain.cloud
CE_FLEET_ID=1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e
CE_FLEET_NAME=fleet-abcdef1234
...
z=Set env var 'SHOW' to see all variables

Sie haben Ihre Flotte über die Konsole erstellt und betrieben. Gehen Sie zum Abschnitt Flottenbetrieb, um weitere Optionen für Flotten auszuprobieren.

Erstes Container-Image aus Quellcode erstellen

Erstellen Sie den ersten Code Engine-Build, führen Sie ihn aus und stellen Sie das Container-Image anschließend in einer Anwendung bereit.

Code Engine kann Images automatisch in einen Container Registry-Namespace in Ihrem Konto mit Push-Operation übertragen. Darüber hinaus kann ein Namensbereich für Sie erstellt werden. Informationen zum Senden von Images an ein anderes Container Registry-Konto oder an ein privates Docker Hub-Konto finden Sie unter Zugriff auf eine private Container-Registry hinzufügen.

  1. Öffnen Sie die Code Engine konsole.
  2. Wählen Sie Erstellen beginnen.
  3. Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Bitte beachten Sie, dass Sie über ein ausgewähltes Projekt verfügen müssen, um eine Anwendung bereitstellen zu können.
  4. Wählen Sie Anwendung aus.
  5. Geben Sie einen Namen für die Anwendung ein. Verwenden Sie einen Namen für die Anwendung, der innerhalb des Projekts eindeutig ist.
  6. Wählen Sie Container-Image aus Quellcode erstellen aus.
  7. Klicken Sie auf Builddetails angeben.
  8. Akzeptieren Sie die Standardeinstellungen für jede Seite, indem Sie auf Weiter und dann auf Fertig klicken.
  9. Klicken Sie auf Erstellen.

Nach dem Übergeben der Buildausführung wird das Container-Image an Container Registry gesendet und anschließend wird das Image von der Anwendung mit einer Pull-Operation extrahiert und bereitgestellt. Nachdem sich der Anwendungsstatus in Bereit geändert hat, können Sie die Anwendung ausprobieren. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL.

Beispielausgabe

Hello World from:
     ___  __  ____  ____
    / __)/  \(    \(  __)
   ( (__(  O )) D ( ) _)
    \___)\__/(____/(____)
 ____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
 ) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1

Sie haben Quellcode an Code Engine übergeben und ein Container-Image erstellt, das Sie anschließend in einer Anwendung bereitgestellt haben - alles in einer Schnittstelle.

Unter Container-Image erstellen können Sie weitere Optionen für Builds kennenlernen und ausprobieren.

Nächste Schritte für Code Engine

Hier erhalten Sie weiterführende Informationen zu Ausführung dieser Code Engine-Tasks in der Konsole oder in der Code Engine-Befehlszeilenschnittstelle.

Benötigen Sie weitere Codebeispiele? Sehen Sie sich das Samples for IBM Cloud Code Engine GitHub repo an.