Bereitstellung von Cloud Foundry-Anwendungen in Code Engine: Erste Schritte
Cloud Foundry-Benutzer – Willkommen bei IBM Cloud® Code Engine.
Code Engine ist eine vollständig verwaltete, serverunabhängige Plattform, die Ihre containerisierten Workloads ausführt. Code Engine erstellt sogar Container-Images für Sie aus Ihrem Quellcode. Die Funktionen von Code Engine sind so konzipiert, dass Sie sich auf das Schreiben von Code konzentrieren können und nicht auf die Infrastruktur, die zum Hosten erforderlich ist.
Code Engine wurde unter Berücksichtigung der folgenden wichtigen Ziele entwickelt:
- Konzentrieren Sie sich auf Ihren Code. Code Engine bietet eine vereinfachte Entwicklererfahrung. Sie benötigen keine Kenntnisse über die zugrunde liegende Infrastruktur und müssen diese nicht verwalten können.
- Unterstützung für moderne Laufzeitmerkmale, wie z. B. automatische Skalierung, Skalierung auf null im Leerlauf und nahtlose Integration mit verwalteten Services und Sicherheit.
- Unterstützung für alle Ihre Cloud-nativen Anwendungen, unabhängig davon, ob es sich um 12-Faktor-Apps, ereignisgesteuerte Funktionen oder bis zur Fertigstellung ausgeführte Batch-Jobs handelt. Wenn es containerisiert werden kann, kann Code Engine es ausführen.
- Bezahlen Sie nur für die Ressourcen, die Sie tatsächlich nutzen.
Wenn Sie einen Cloud Foundry-Hintergrund haben, klingen viele dieser Funktionen vertraut. Code Engine enthält jedoch auch einige neue Funktionen, die es Ihnen ermöglichen, über das Cloud Foundry-Angebot hinaus zu gehen, einschließlich Anwendungen, die auf Null skaliert werden können und für die keine Gebühren anfallen. Nachdem Sie den syntaktischen Unterschied der Benutzererfahrung hinter sich haben, werden Sie und Ihre Anwendungen sich in Code Engine wie zu Hause fühlen.
Lassen Sie uns eine einfache hello world-App bereitstellen, um zu sehen, wie Code Engine funktioniert. Führen Sie die Schritte aus, um ein Projekt zu erstellen, Ihren Code aufzubauen und Ihre App bereitzustellen.
Lesen Sie die Begriffe für Cloud Foundry und Code Engine, bevor Sie mit diesem Lernprogramm beginnen.
Ziele
- Machen Sie sich mit den Ähnlichkeiten zwischen Code Engine und Cloud Foundry vertraut.
- Hier erfahren Sie mehr über den allgemeinen Prozess der Bereitstellung von Apps in Code Engine.
- Stellen Sie eine Anwendung aus dem Code auf Ihrem lokalen System mit Code Engine bereit.
Voraussetzungen
Bevor Sie mit Code Engine beginnen können, müssen Sie Ihr Konto einrichten und die CLI installieren.
-
Alle Code Engine-Benutzer müssen über ein nutzungsabhängiges Konto verfügen.
-
Während Sie Code Engine über die Konsole verwenden können, konzentrieren sich die Beispiele in dieser Dokumentation auf die Befehlszeile. Daher müssen Sie die Code Engine-CLI installieren.
ibmcloud plugin install code-engineWeitere Informationen finden Sie unter Code Engine-Benutzerschnittstelle einrichten. Weitere Informationen zur CLI finden Sie unter Code Engine-CLI-Referenz.
Melden Sie sich bei IBM Cloud an.
Führen Sie die folgenden Schritte aus, um sich bei Ihrem IBM Cloud-Konto anzumelden und eine Ressourcengruppe als Ziel auszuwählen.
-
Melden Sie sich bei der IBM Cloud-CLI an.
ibmcloud login -
Führen Sie den folgenden Befehl aus, um eine Ressourcengruppe als Ziel festzulegen. Führen Sie
ibmcloud resource groupsaus, um eine Liste Ihrer Ressourcengruppen abzurufen.ibmcloud target -g <resource_group>Beispielausgabe
Targeted resource group default
Projekt erstellen
Ein „Projekt“ in Code Engine ähnelt einem Cloud Foundry-„Bereich“ insofern, als zusammengehörige Workloads in einer logischen Sammlung gruppiert werden, die für Entwickler aussagekräftig ist. Sie können Workloads nach beliebigen Kriterien in verschiedene Projekte gruppieren, z. B. nach der Organisationsstruktur des Unternehmens, nach Abhängigkeiten zwischen den Workloads oder nach Entwicklungs-, Test- und Produktionsumgebungen. Beachten Sie, dass Workloads in einem einzelnen Projekt ein privates Netz gemeinsam nutzen und innerhalb der Sicherheitsgrenze des Projekts isoliert sind. Alle Workloads innerhalb eines Projekts können frei miteinander kommunizieren, ohne dass sie von Workloads außerhalb des Clusters gesehen werden müssen. Wenn Workloads in verschiedenen Projekten miteinander kommunizieren möchten, muss die Datenübertragung entweder das Internet oder ein internes privates IBM-Netz verwenden. Weitere Informationen finden Sie unter Optionen für Sichtbarkeit für eine Code Engine-Anwendung.
Erstellen Sie in Code Engine ein Projekt namens sample.
ibmcloud ce project create --name sample
Beispielausgabe
Creating project 'sample'...
ID for project 'sample' is 'abcdabcd-abcd-abcd-abcd-abcd12e3456f7'.
Waiting for project 'sample' to be active...
Now selecting project 'sample'.
OK
Beachten Sie, dass Ihr Projekt auch für den Kontext ausgewählt ist, sodass alle nachfolgenden anwendungsbezogenen Befehle im Geltungsbereich dieses neuen sample-Projekts liegen.
Verzeichnis und Quellcode erstellen
-
Erstellen Sie ein Verzeichnis namens
myappauf Ihrer lokalen Workstation und navigieren Sie in dieses Verzeichnis. Speichern Sie in diesem Verzeichnis alle Dateien, die zum Erstellen des Image und zum Ausführen Ihrer App erforderlich sind.mkdir myapp && cd myapp -
Erstellen Sie eine Datei mit dem Namen
server.jsund kopieren Sie den folgenden Quellcode in diese Datei.const http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end( "Hello world\n" ); }).listen(8080);In diesem Beispiel wird Node.js verwendet. Sie können Code aus einer beliebigen unterstützten Laufzeit ersetzen.
Anwendung implementieren
Übertragen Sie Ihren Code mit dem Befehl application create an Code Engine. Sie müssen einen Namen für Ihre Anwendung und die Position des Quellcodes angeben. Im folgenden Beispiel wird eine Anwendung mit der Bezeichnung
myapp erstellt, welche die Strategie buildpack verwendet und die Position für den Quellcode im aktuellen Verzeichnis (.) angibt.
ibmcloud ce app create --name myapp --build-source . --strategy buildpacks
Beispielausgabe
Creating application 'myapp'...
Packaging files to upload from source path '.'...
Submitting build run 'myapp-run-220999-210706331'...
Creating image 'private.us.icr.io/ce--6ef04-khxrbwa0lci/app-myapp:220418-0207-askql'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220000-210706331' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK
https://myapp.abcdbwa0lci.us-south.codeengine.appdomain.cloud
Das ist alles. Sie haben jetzt eine mit dem Internet verbundene Anwendung. Der Code in der Anwendung selbst entspricht dem Code, der für eine Cloud Foundry-Anwendung verwendet wird. Nur die Code Engine-Befehle unterscheiden sich geringfügig.
Sehen wir uns den vorherigen Befehl app create genauer an. Beachten Sie, dass die Ausgabe des Befehls app create Informationen zum Fortschritt der Buildausführung enthält, bevor die
App erstellt und bereitgestellt wird.
- Code Engine empfängt eine Anfrage zur Erstellung einer Anwendung aus Quellcode (anstatt sie direkt aus einem Image zu extrahieren).
- Code Engine sucht nach einer IAM-Service-ID und einem API-Schlüssel, die dem ausgewählten Projekt zugeordnet sind. Diese Service-ID muss zum Lesen und Schreiben in IBM Cloud Container Registryberechtigt sein. Wenn keine Service-ID vorhanden ist, erstellt Code Engine eine ID für Sie. Beachten Sie, dass diese Service-ID für nachfolgende Code Engine-Build-Anforderungen verwendet wird, die von demselben Projekt ausgeführt werden.
- Dieses Beispiel erstellt Code aus einer lokalen Quelle (
--build-source .). Der Quellcode wird in eine Archivdatei gepackt und in einen verwalteten Namensbereich innerhalb der IBM Cloud Container Registry-Instanz in Ihrem Account hochgeladen. Beachten Sie, dass Sie nur IBM Cloud Container Registry für Ihre lokalen Builds verwenden können. Weitere Informationen zu IBM Container Registry, einschließlich Informationen zu Kontingenten und Zugriffsbeschränkungen, finden Sie unter Erste Schritte mit IBM Cloud Container Registry. - Code Engine erstellt Ihren Quellcode in einem Image. Das Quellen-Image wird in demselben Namensbereich wie Ihre Quellenarchivdatei erstellt.
- Nachdem der Build abgeschlossen ist, wird Ihre Anwendung implementiert. Sie können über die bereitgestellte URL auf Ihre Anwendung zugreifen.
Mit Code Engine erhalten Sie automatisch viele der gleichen Funktionen wie Cloud Foundry, wie z. B. automatische Skalierung und Blue-Green-Rollout von Updates, aber Sie kommen auch in den Genuss neuerer Funktionen, wie z. B. die Skalierung bis auf Null, die sicherstellt, dass keine Kosten für Sie anfallen, wenn Ihre Anwendung nicht aktiv ist.
Möchten Sie mehr über Ihre Optionen zur Erstellung Ihres Quellcodes erfahren? Weitere Informationen finden Sie in den Beschreibungen der Befehle application create und job create.
Möchten Sie mehr über Anwendungen und Jobs erfahren? Siehe Mit Apps in Code Engine arbeiten und Mit Jobs und Jobausführungen arbeiten.
Bereinigen
Nach Beendigung dieses Lernprogramms können Sie die Ressourcen, die Sie erstellt haben, mit den folgenden Befehlen löschen.
Anwendung löschen
ibmcloud ce app delete --name myapp
Wenn Sie Ihre App löschen, werden auch die zugehörigen Build-Dateien gelöscht.
Löschen Sie zuletzt die Images, die der Build aus IBM Cloud Container Registry erstellt hat.
- Navigieren Sie in der IBM Cloud-Konsole zu Registry.
- Suchen Sie das Archiv und das Image, die Ihrer Anwendung zugeordnet sind, indem Sie nach Ihrem Anwendungsnamen suchen.
- Wählen Sie das Archiv und das Image aus und löschen Sie sie.
Nächste Schritte
- Haben Sie gerade erst mit der Migration begonnen? Lesen Sie den Abschnitt Erste Schritte.
- Vergleichen Sie Cloud Foundry-Terminologie mit Code Engine.
- Bereitstellung von Cloud Foundry-Anwendungen in Code Engine: Erste Schritte (aktuelle Seite)
- Verwendet Ihre Anwendung Servicebindungen? Dann informieren Sie sich über die Migration Ihrer Servicebindungen.
- Erfahren Sie mehr über Skalierung und Datenverkehrsmanagement.
- Suchen Sie Code Engine-Äquivalente zu Cloud Foundry-Befehlen.
- Fügen Sie über die Konsole eine angepasste Domänenzuordnung hinzu.
- Sie haben noch Fragen? Lesen Sie Häufig gestellte Fragen zur Migration von Cloud Foundry-Anwendungen zu Code Engine.
Weitere Informationen
- Informieren Sie sich über die Code Engine-Preisstruktur.
- Probieren Sie weitere Code Engine-Lernprogrammeaus.
- Erkunden Sie weitere Themen zu Code Engine.