Anwendungsworkloads

IBM Cloud® Code Engine ist auf die Bedürfnisse von Entwicklern ausgerichtet, die wollen, dass ihr Code läuft. Code Engine abstrahiert die operative Last der Erstellung, Bereitstellung und Verwaltung von Workloads in Kubernetes, so dass sich die Entwickler auf das konzentrieren können, was ihnen am wichtigsten ist: den Quellcode. Entwickler können ihre Anwendungen, die in einem beliebigen Framework oder einer beliebigen Sprache geschrieben sind, implementieren und skalieren, indem sie die Komplexität der Erstellung und Verwaltung ihrer Workloads an Code Enginedelegieren. Erfahren Sie mehr über die Arbeit mit Anwendungen in Code Engine.

Was sind Anwendungsworkloads?

Eine Anwendung oder App führt den Code für die Verarbeitung von HTTP-Anforderungen aus. Zusätzlich zu den traditionellen HTTP-Anforderungen unterstützt IBM Cloud® Code Engine auch Anwendungen, die WebSockets als Kommunikationsprotokoll verwenden. Die Anzahl der laufenden Instanzen einer Anwendung wird auf der Grundlage der eingehenden Anfragen und Ihrer Konfigurationseinstellungen automatisch nach oben oder unten (auf Null) skaliert. Eine App enthält eine oder mehrere Revisionen. Eine Revision stellt eine unveränderliche Version der Konfigurationseigenschaften der App dar. Bei jeder Aktualisierung einer Konfigurationseigenschaft der App wird eine neue Revision der App erstellt.

Welche Schlüsselfunktionen gibt es bei der Arbeit mit Code Engine-Anwendungen?

Lesen Sie die folgenden Abschnitte, um weitere Informationen zum Arbeiten mit Anwendungen in Code Enginezu erhalten.

Isolation

Code Engine ist ein regionaler Multi-Tenant-Service, bei dem Tenants dieselbe Netz- und Recheninfrastruktur gemeinsam nutzen. Insbesondere die Netz- und Recheninfrastruktur sind gemeinsam genutzte Ressourcen und einige Managementkomponenten werden von allen Tenants einheitlich verwendet. Tenants und ihre Workloads werden jedoch mithilfe von Code Engine-Projekten voneinander isoliert. Code Engine verhindert die Kommunikation zwischen Projekten und ermöglicht die Isolation Ihrer Anwendungen in einer Multi-Tenant-Umgebung. Darüber hinaus gibt es Zugriffssteuerungen, die auf Ressourcenebene ausgeführt werden, damit nur berechtigte Benutzer bestimmte Operationen für Projektressourcen ausführen können, wie z. B. Anwendungen oder andere Code Engine-Workloads.

Weitere Informationen zur Workload-Isolation finden Sie unter Code Engine-Workload-Isolation.

Protokollierung

Wenn Sie mit Code Engine mit der Konsole und aktivierter Protokollierung arbeiten, werden die Protokolle an eine IBM Cloud Logs weitergeleitet, die mit Ihrem Code Engine verbunden ist. In der Dienstinstanz IBM Cloud Logs werden die Protokolle indiziert, was eine Volltextsuche durch alle generierten Nachrichten und eine bequeme Abfrage nach bestimmten Feldern ermöglicht. Siehe Protokolle für Anwendungen abrufen.

Systemereignisinformationen können auch bei der Fehlersuche bei der Ausführung von Aufträgen hilfreich sein. Sie können Systemereignisinformationen mit der CLI anzeigen. Siehe Systemereignisinformationen für Anwendungen abrufen.

Weitere Informationen zur Protokollierung finden Sie im Thema Protokolle anzeigen.

Ausführung von Anwendungen

Unabhängig davon, ob Ihr Code als Quellcode in einer lokalen Datei oder in einem Git Repository vorhanden ist, oder ob Ihr Code ein Container-Image ist, das in einer öffentlichen oder privaten Registrierung vorhanden ist, bietet Code Engine Ihnen eine optimierte Möglichkeit, Ihren Code als Anwendung auszuführen.

Sie können Anwendungen in Code Engine wie folgt bereitstellen und ausführen:

  • Aus einem vorhandenen Container-Image ausführen. Erstellen Sie eine Anwendung und geben Sie einen Verweis auf Ihr Image an, das verwendet werden soll, wenn Sie Ihre App mit Code Enginebereitstellen.

  • Ausführung über vorhandenen Quellcode ohne Container-Image. Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository oder auf Ihrer lokalen Workstation befindet, können Sie auf die Position Ihrer Quelle verweisen, und Code Engine erstellt das Image für Sie. Code Engine unterstützt die Erstellung aus einer Dockerfile und Cloud Native Buildpacks, die Ihren Quellcode untersuchen, um festzustellen, wie er erstellt und als Container-Image gepackt werden muss.

Weitere Informationen zum Bereitstellen und Ausführen von Anwendungen finden Sie unter Mit Apps in Code Engine.

Skalierung

Code Engine-Anwendungen skalieren abhängig von den eingehenden Anforderungen nach oben oder unten. Anwendungen folgen dem Modell scale-to-zero, bei dem keine Instanzen ohne Datenverkehr erstellt werden, was zu einer Kostenoptimierung führt. Wenn es eine eingehende Anforderung gibt, skaliert eine App automatisch von null nach oben, um die Workload aufzunehmen.

Mit Code Enginekönnen Sie die automatische Skalierung steuern, indem Sie die minimale und die maximale Anzahl von Instanzen festlegen. Sie können auch den gemeinsamen Zugriff der Anwendung angeben, indem Sie die Anzahl der Anforderungen angeben, die für eine bestimmte Anwendungsinstanz parallel ausgeführt werden sollen, um festzustellen, wann eine neue Instanz bereitgestellt wird.

Weitere Informationen zum Skalieren Ihrer App enthält der Abschnitt Anwendungsskalierung konfigurieren.

Sicherheit

Code Engine bietet sofortigen DDOS-Schutz für Ihre Anwendung. Code Engine der DDOS-Schutz wird von Cloud Internet Services (CIS) ohne zusätzliche Kosten für Sie bereitgestellt. Der DDoS deckt Angriffe auf die OSI-Protokollschichten 3 und 4 (TCP/IP) ab, nicht aber auf Schicht 7 HTTP ). Siehe DDoS.

Code Engine stellt auch ein Servicenetz für die Verwendung seiner Netzebene bereit, das den gegenseitigen TLS-Datenverkehr (TLS-Transport Layer Security) für Anwendungen ermöglicht und so die Kommunikation zwischen Service-zu-Service und Benutzer-zu-Service schützt.

Weitere Informationen zur Sicherheit finden Sie unter Code Engine und Sicherheit.

Anwendungen mit Ereignissen auslösen

Sie können Ihre Code Engine-Anwendungen für den Empfang von Cron-Ereignissen, IBM Cloud Object Storage-Ereignissen oder Kafka-Themen konfigurieren. Wenn Sie einen Ereigniserzeuger subskribieren, müssen Sie den Namen Ihrer Zielanwendung angeben, um die Ereignisse zu empfangen.

Weitere Informationen zum Arbeiten mit Ereigniserzeugern finden Sie unter Einführung in Subskriptionen.

Sichtbarkeit

Mit Code Engine können Sie den richtigen Grad an Sichtbarkeit für Ihre Anwendung bestimmen, indem Sie die Endpunkte oder Systemdomänen-Zuordnungen definieren, die für den Empfang von Anfragen verfügbar sind. Eine Anwendung kann im Internet, im privaten Netz von IBM Cloud oder nur für andere Ressourcen in demselben Projekt Code Engine zugänglich gemacht werden.

Standardmäßig erhält jede aktive Anwendung ihren eigenen sicheren TLS-Endpoint, den Sie Ihrer eigenen Domäne zuordnen können.

Darüber hinaus können Sie Ihre eigene benutzerdefinierte Domäne einer Code Engine zuordnen, um Anfragen von Ihrer benutzerdefinierten URL an Ihre Anwendung weiterzuleiten. Wenn Sie Ihre Anwendung auf eine Domäne ausrichten möchten, deren Eigner Sie sind, können Sie eine angepasste Domänenzuordnung verwenden. Wenn Sie eine benutzerdefinierte Domänenzuordnung in Code Engine festlegen, definieren Sie eine 1-to-1 zwischen Ihrem vollqualifizierten Domänennamen (FQDN) und einer Code Engine in Ihrem Projekt.

Weitere Informationen zur Sichtbarkeit finden Sie unter Optionen für die Sichtbarkeit für eine Code Engine-Anwendung und unter Angepasste Domänenzuordnungen für Ihre Anwendung konfigurieren.

Wie kann ich mit Anwendungen beginnen?

Informationen zum Bereitstellen einer einfachen Code Engine-Anwendung mit dem icr.io/codeengine/helloworld-Beispielimage finden Sie unter Erste Code Engine-App erstellen.

Sie können auch ein Anwendungslernprogramm ausprobieren (siehe Anwendungen implementieren und skalieren).

Weitere Informationen zum Arbeiten mit Anwendungen finden Sie unter Mit Apps in Code Engine.