Eine App mithilfe von IBM Cloud Satellite entwickeln und bereitstellen
DevOps Insights wird am 31. August 2026 das Ende des Betriebs erreichen und eingestellt werden. Continuous Delivery wird am 12. Februar 2027 in den folgenden Regionen eingestellt: au-syd, ca-tor, us-east. Code Risk Analyzer wird zu diesem Zeitpunkt ebenfalls in allen Regionen eingestellt. Wenn diese Funktionen in einer Region nicht aktiv genutzt werden, können sie in dieser Region vorzeitig eingestellt werden, sodass keine neuen Instanzen mehr akzeptiert werden. Weitere Informationen
In diesem Lernprogramm erfahren Sie, wie eine offene Toolchain mithilfe von IBM Cloud® Continuous Delivery erstellt und in Satellitebereitgestellt wird. Außerdem erfahren Sie, wie Toolchains im Continuous Delivery-Service implementiert werden und wie eine einfache Webanwendung (App) mithilfe von Toolchains entwickelt und bereitgestellt wird.
IBM Cloud Satellite bietet Public-Cloud-Services für jede Umgebung, sodass Kunden mit strengen gesetzlichen Bestimmungen die Flexibilität und Agilität dieser Services für ihr sicheres lokales Rechenzentrum nutzen können. Continuous Delivery verwendet Satellite-Config, um eine App in einer ganzen Gruppe von Clustern in IBM Cloud Satellitebereitzustellen. Mit Satellite-Config erstellen Sie eine Konfiguration, um anzugeben, welche Kubernetes-Ressourcen Sie in einer Clustergruppe von Kubernetes- oder Red Hat® OpenShift® on IBM Cloud®-Clustern bereitstellen möchten, die an Ihrem Satellite-Standort oder in IBM Cloudausgeführt werden.
Die Toolchain, die in diesem Lernprogramm verwendet wird, implementiert DevOps-Standardverfahren wie Code-Scanning, Abnahmetests, Git -Repositorys sowie Funktionen für kontinuierliche Integration und Continuous Delivery. Nachdem Sie Cluster erstellt und einer Continuous Delivery -Clustergruppe zugeordnet haben, erstellen Sie eine Toolchain, um den Code Ihrer App zu ändern, und übertragen die Änderung per Push-Operation auf das Git Repos and Issue Tracking-Repository. Wenn Sie Änderungen mit Push-Operation auf Ihr Repository übertragen, erstellt und implementiert die Tekton-basierte Delivery Pipeline automatisch den Code.
Tekton ist ein Open-Source-, herstellerneutrales und für Kubernetes entwickeltes Framework, mit dem Sie Anwendungen erstellen, testen und bereitstellen können. Tekton bietet eine Reihe gemeinsamer Komponenten für die Erstellung von Systemen zur kontinuierlichen Integration und kontinuierlichen Bereitstellung. Als Open-Source-Projekt wird Tekton von der Continuous Delivery Foundation verwaltet. Das Ziel ist die Modernisierung von Continuous Delivery durch Bereitstellung von Branchenspezifikationen für Pipelines, Workflows und andere Bausteine. Mit Tekton können Sie bei Cloud-Providern oder lokal Systeme erstellen, testen und implementieren, indem Sie die zugrunde liegenden Implementierungsdetails abstrahieren. Tekton-Pipelines sind in Continuous Delivery integriert. Weitere Informationen zum IBM Cloud® Kubernetes Service finden Sie unter IBM Cloud® Kubernetes Service.
Die in diesem Lernprogramm verwendete Vorlage arbeitet mit dem Standardplan für Kubernetes.
Vorbereitende Schritte
Stellen Sie vor Beginn dieses Lernprogramms sicher, dass die folgenden Ressourcen vorhanden sind:
-
Ein IBM Cloud-Konto. Abhängig von Ihrem IBM Cloud-Kontotyp kann der Zugriff auf bestimmte Ressourcen eingeschränkt sein. Abhängig von den Grenzwerten für Ihren Kontoplan sind bestimmte Funktionen, die für einige der Implementierungsstrategien erforderlich sind, möglicherweise nicht verfügbar. Weitere Informationen zu IBM Cloud-Konten finden Sie unter Einrichten Ihres IBM Cloud-Kontos und Upgrade Ihres Kontos.
-
Ein Kubernetes-Cluster und ein API-Schlüssel. Sie können diese Ressourcen entweder über die Benutzeroberfläche oder über die Befehlszeilenschnittstelle erstellen. Es kann einige Zeit dauern, bis der Cluster bereitgestellt ist. Wenn der Cluster erstellt wird, durchläuft er die Phasen 'Wird bereitgestellt', 'Anstehend' und 'Bereit '. Weitere Informationen zu Kubernetes-Clustern finden Sie unter Kubernetes-Cluster.
-
Eine Satellite -Clustergruppe mit dem Cluster, der für die Toolchain erforderlich ist. Die Toolchain in diesem Lernprogramm unterstützt eine Satellite -Clustergruppe, die nur einen Clustertyp enthält: einen Kubernetes-Cluster oder einen Satellite-Cluster.
-
Eine Instanz des Continuous Delivery-Service.
-
Optional. Geheime Schlüssel, die in einem Vault für die Verwaltung geheimer Schlüssel gespeichert und zentral von einem einzigen Standort aus verwaltet werden. Weitere Informationen zur Auswahl aus den verschiedenen Angeboten für Verwaltung geheimer Schlüssel und Datenschutz finden Sie unter Geheime IBM Cloud-Schlüssel verwalten. Wenn Sie noch nicht über eine Instanz des gewünschten Vault-Providers für die Verwaltung geheimer Schlüssel verfügen, erstellen Sie eine solche Instanz.
-
Optional. Ein Namensbereich, der über die Befehlszeile der Container-Registry erstellt wird. Geben Sie zum Erstellen eines Namensbereichs den folgenden Befehl in der Befehlszeile ein:
ibmcloud cr namespace-add <my namespace>Alternativ können Sie einen Namensbereich auf der Seite Container Registry erstellen. Weitere Informationen zum Erstellen eines Namensbereichs an diesem Standort finden Sie unter IBM Cloud Container Registry-Service.
Toolchain erstellen
In diesem Schritt erstellen Sie eine Anwendung unter Verwendung von Bereitstellungsstrategien in Kubernetes entwickeln und bereitstellen-Toolchain. Der Kubernetes-Zielcluster wird während der Toolchain-Konfiguration mithilfe Ihres IBM Cloud-API-Schlüssels und Ihres Kubernetes-Clusternamens konfiguriert. Sie können diese Einstellungen später ändern, indem Sie die Delivery Pipeline-Konfiguration aktualisieren. Jeder Code, der im Zielzweig des Git-Repositorys zusammengeführt wird, wird automatisch erstellt, validiert und im Kubernetes-Cluster bereitgestellt.
Klicken Sie zum Erstellen einer Anwendung unter Verwendung von Bereitstellungsstrategien in Kubernetes entwickeln und bereitstellen-Toolchain auf
Alternativ können Sie in der IBM Cloud Konsole auf das Menü-Symbol ( ) > Plattformautomatisierung > Toolchains klicken. Klicken
Sie auf der Seite Toolchains auf Toolchain erstellen. Klicken Sie auf der Seite Toolchain erstellen auf Anwendung entwickeln und mithilfe von Bereitstellungsstrategien auf Kubernetes bereitstellen.
Den Toolchain-Namen und die Region konfigurieren
Überprüfen Sie die Standardinformationen für die Toolchain-Einstellungen. Der Name der Toolchain macht sie in IBM Cloud identifizierbar. Stellen Sie sicher, dass der Name der Toolchain innerhalb Ihrer Toolchains für dieselbe Region und Ressourcengruppe in IBM Cloud eindeutig ist.
Die Region der Toolchain kann sich von der Region des Clusters und der Registry unterscheiden.
Die Bereitstellungsstrategie auswählen
Die Toolchain erstellt eine Continuous-Deployment-Pipeline, um das Docker-Image der Anwendung in der Clustergruppe bereitzustellen, die in Satellite definiert ist.
-
Klicken Sie auf Mehrere Cluster über Satellite, um Ihre App mithilfe von Satellite bereitzustellen.
für die Bereitstellung von AppsStrategien für die Bereitstellung -
Klicken Sie auf Weiter.
Repository für den Anwendungsquellcode konfigurieren
Im Anwendungsschritt werden die empfohlenen Optionen für das Quellcode-Repository der Anwendung standardmäßig angezeigt. Um alle verfügbaren Optionen für die zugrunde liegende Git-Integration anzuzeigen, klicken Sie auf Erweiterte Optionen. Standardmäßig verwendet die Toolchain das Standardbeispiel, das die Beispiel-App als von IBM gehostetes Git Repos and Issue Tracking-Repository klont.
Sie können den Namen des App-Repositorys ändern. Die Region des Repositorys bleibt die gleiche wie die Region der Toolchain.
Die Toolchain-Vorlage stellt eine Anwendung 'Hello Containers'-App bereit. Wenn Sie ein vorhandenes Anwendungsrepository für die Toolchain verlinken wollen, wählen Sie Eigene App verwenden aus und geben Sie die URL für das Repository an. Die Toolchain unterstützt nur Links zu vorhandenen Git Repos and Issue Tracking-Repositorys.
Standardmäßig wird die Vorlage des Anwendungsrepositorys in Ihrer Git Repos and Issue Tracking-Organisation geklont. Zum Ändern der Organisation aktivieren Sie Erweiterte Optionen und geben den Eigner des Repositorys an.
Das Bestandsrepository konfigurieren
Das Bestandsrepository zeichnet die Details der Artefakte auf, die von den Toolchains für die kontinuierliche Integration erstellt werden. Sie können entweder ein neues Inventar-Repo erstellen, das ein Klon der Inventar-Repo-Vorlage ist, oder ein bestehendes Inventar-Repo verwenden, das Sie zwischen verschiedenen Toolchains gemeinsam nutzen.
Standardmäßig wird die Bestandsrepository-Vorlage in Ihrer Git Repos and Issue Tracking-Organisation geklont. Um die Organisation zu ändern, wählen Sie Erweiterte Optionen aus und geben den Eigner des Repositorys an.
Geheime Schlüssel sicher speichern
Für mehrere Tools innerhalb dieser Toolchain sind geheime Schlüssel erforderlich, z. B. ein IBM Cloud-API-Schlüssel. Sie müssen alle geheimen Schlüssel sicher in einem Vault für geheime Schlüssel speichern und sie entsprechend den Anforderungen der Toolchain referenzieren.
Mit IBM Cloud können Sie aus verschiedenen Angeboten für das Management geheimer Schlüssel und den Datenschutz auswählen, mit denen Sie Ihre sensiblen Daten schützen und Ihren geheimen Schlüssel zentralisieren können. Im Schritt "Geheime Schlüssel" können Sie angeben, welche Vaultintegrationen für geheime Schlüssel in Ihrer Toolchain hinzugefügt oder entfernt werden sollen. Weitere Informationen zum Hinzufügen und Entfernen von Vaultintegrationen, einschließlich der Voraussetzungen und mithilfe von Hinweisen, finden Sie unter Geheime IBM Cloud-Schlüssel verwalten.
Durch Verwendung von Hinweisen in einer Vorlage wird eine Toolchain automatisch mit vorkonfigurierten geheimen Schlüsseln gefüllt. Sie brauchen keine geheimen Schlüssel manuell aus Vaultintegrationen auszuwählen, die der Toolchain zugeordnet sind.
In diesem Lernprogramm wird IBM Secrets Manager als Vault für geheime Schlüssel verwendet.
IBM Secrets Manager speichert sicher und wendet geheime Schlüssel wie API-Schlüssel, Imagesignatur, oder HashiCorp-Berechtigungsnachweise, die Teil Ihrer Toolchain sind, an.
Weitere Informationen zur Verwaltung Ihrer Geheimnisse in IBM Key Protect oder HashiCorp, finden Sie unter Geheimnisse.
Implementierungsziel konfigurieren
Konfigurieren Sie den Kubernetes-Zielcluster für die Bereitstellung der App. Nachdem die App die Build-, Test- und Scanphase bestanden hat, stellt die Pipeline das erstellte App-Image im Kubernetes-Zielcluster bereit. Diese Implementierung ist jetzt für Abnahmetests oder Integrationstests bereit.
Wenn der API-Schlüssel den erforderlichen Zugriff hat, werden die folgenden Felder automatisch mithilfe des API-Schlüssels geladen, der entweder erstellt, aus einer Vault abgerufen, oder manuell angegeben wird. Wenn der API-Schlüssel gültig ist, werden Werte für die Container Registry-Region und die Namensbereich-Clusterregion, den Namen, den Namensbereich und die Ressourcengruppe automatisch eingetragen. Sie können jedes dieser Felder entsprechend Ihrer Konfiguration aktualisieren.
-
App-Name: Der Name der App. Der Standardname der App ist
hello-containers. -
IBM Cloud-API-Schlüssel: Der API-Schlüssel, der für die Interaktion mit dem
ibmcloud-CLI-Tool in mehreren Tasks verwendet wird. Verwenden Sie eine der folgenden Methoden, um den API-Schlüssel anzugeben, den Sie verwenden möchten:- Klicken Sie auf das Schlüsselsymbol, um einen vorhandenen API-Schlüssel aus einem geheimen Vault Ihrer Wahl zu importieren.
- Kopieren Sie einen vorhandenen API-Schlüssel und fügen Sie ihn ein.
- Klicken Sie auf Neu, um einen API-Schlüssel zu erstellen.
- Generieren Sie eine neue
api-key, wenn kein API-Schlüssel vorhanden ist.
Sie können den generierten API-Schlüssel sofort in einer vorhandenen Vault für geheime Schlüssel Ihrer Wahl speichern.
-
Name der Satellite-Clustergruppe: Der Name der Clustergruppe, die in Satellite erstellt wurde. Ihre App wird in dieser Clustergruppe implementiert.
-
Clusternamensbereich: Wenn der Clusternamensbereich in den Clustern innerhalb der Clustergruppe nicht vorhanden ist, wird er von der Toolchain erstellt.
Optionale Toolintegrationen hinzufügen
Sie können die IBM Cloud® DevOps Insights-Toolintegration ohne zusätzliche Konfiguration zu Ihrer Toolchain hinzufügen.
DevOps Insights ist in der erstellten Toolchain enthalten. Sie brauchen keine Konfigurationsschritte für DevOps Insights anzugeben. Die Pipeline für kontinuierliche Integration verwendet automatisch die DevOps Insights-Instanz, die in der Toolchain enthalten ist. DevOps Insights aggregiert Code-, Test-, Build- und Bereitstellungsdaten, um Einblick in die Geschwindigkeit und Qualität aller Ihrer Teams und Releases zu liefern.
Klicken Sie auf Weiter.
Das Toolchain-Setup abschließen
Klicken Sie auf der Seite 'Übersicht' auf Erstellen. Zum Einrichten Ihrer Toolchain werden mehrere verschiedene Schritte automatisch ausgeführt.
Sie können die einzelnen Toolchain-Integrationen konfigurieren, nachdem die Pipeline erstellt wurde.
Neue Toolchain erkunden
Nach der Erstellung der Toolchain werden alle Toolintegrationen, die Teil der Toolchain sind, in einem Diagramm dargestellt.
Pipelines erkunden
Sie können die Pipelines erkunden, um sich einen Einblick in den Toolchainablauf und die verschiedenen, innerhalb der jeweiligen Pipelines ausgeführten Operationen zu verschaffen. Die soeben erstellte Toolchain enthält drei Pipelines:
- Pipeline für Pull-Anforderungen: Wird ausgeführt, wenn ein Entwickler Änderungen aus seinem Entwicklungszweig mit dem Masterzweig oder einem anderen Zweig im Repository zusammenführt. Über die Pipeline für Pull-Anforderungen werden die Komponententests und statischen Scans für den Anwendungsquellcode ausgeführt.
- Pipeline für kontinuierliche Integration: Wird ausgeführt, wenn Sie eine Änderung mit der Masterverzweigung des Anwendungsquellcodes zusammenführen. Die Pipeline für kontinuierliche Integration führt den Komponententest, die Codeabdeckung und statische Scans für den Anwendungsquellcode, die CIS-Prüfung und die Stücklistenprüfung aus. Die Continuous Delivery-Pipeline generiert auch die binären Build-Artefakte und lädt sie in die IBM Cloud® Kubernetes Service, wie in der Toolchain konfiguriert, hoch. Die Pipeline für kontinuierliche Integration generiert die Metadaten der Build-Artefakte und speichert sie im Bestandsrepository.
- Pipeline für kontinuierliche Bereitstellung: Implementiert Build-Artefakte in der Implementierungsumgebung. Die Pipeline überprüft die erfolgreiche Bereitstellung der App durch Ausführen der Statusprüfung. Sie müssen diese Pipeline manuell auslösen, nachdem die Pipeline für kontinuierliche Integration erfolgreich abgeschlossen wurde. Abhängig von der ausgewählten Bereitstellungsstrategie werden weitere Auslöser zur Continuous-Delivery-Pipeline hinzugefügt.
Ausführen der Pull-Anforderung und der Pipelines für die kontinuierliche Integration
Erstellen Sie zum Starten der Pipeline für Pull-Anforderungen eine Zusammenführungsanforderung in Ihrem App-Repository:
- Klicken Sie auf der Übersichtsseite der Toolchain auf der Karte Repositorys auf das
compliance-app-<timestamp>-App-Repository. - Erstellen Sie im Master-Repository einen Zweig.
- Aktualisieren Sie Code in der Beispielknoten-App oder der Readme-Datei und speichern Sie diese Änderungen.
- Übergeben Sie die Zusammenführungsanforderung.
- Klicken Sie auf der Übersichtsseite der Toolchain auf der Karte Repositorys auf das Repository
pr-pipeline, um die Pipeline für Pull-Anforderungen zu starten. Die entsprechende Zusammenführungsanforderung in Ihrem App-Repository verbleibt im Wartestatus, bis alle Phasen der Pipeline für Pull-Anforderungen erfolgreich abgeschlossen wurden. - Nachdem die Pipeline für Pull-Anforderungen erfolgreich ausgeführt wurde, können Sie sie auswählen, um die abgeschlossenen Schritte zu untersuchen.
Um die Pipeline für kontinuierliche Integration zu starten, führen Sie die Zusammenführungsanforderung für kontinuierliche Integration in Ihrem App-Repository zusammen:
- Wechseln Sie zur Zusammenführungsanforderung.
- Führen Sie die Anforderung zusammen, sodass Ihre Änderungen in den Masterzweig Ihres App-Repositorys kopiert werden. Die Pipeline für kontinuierliche Integration wird automatisch ausgelöst.
- Klicken Sie auf der Übersichtsseite für die Toolchain für die kontinuierliche Integration auf der Karte Repositorys auf das
ci-pipeline-Repository, um die Pipeline für die kontinuierliche Integration zu starten. - Nach erfolgreicher Ausführung der Pipeline für die kontinuierliche Integration können Sie auf die Pipelineausführung klicken, um die abgeschlossenen Schritte zu untersuchen.
Verfahren Shift Left
In der Welt der sicheren App-Entwicklung ist Shift Left ein Verfahren, das Probleme wie Defekte und Sicherheitslücken verhindert und findet und Compliance-Prüfungen frühzeitig im Softwarebereitstellungsprozess durchführt. Zu dieser Praxis, die Qualitätsprüfungen zu einem früheren Zeitpunkt im Entwicklungszyklus durchzuführen, gehören die folgenden Praktiken:
- Führen Sie so früh wie möglich Prüfungen aus, die für den Code oder das Repository selbst ausgeführt werden können und das erstellte Image nicht benötigen. Diese Prüfungen verhindern, dass nicht konformer Code mit dem Masterzweig des Repositorys zusammengeführt wird. Da die Beweise nicht in der Pull-Request-Pipeline gesammelt werden, besteht das Ziel darin, die Konformitätsprüfungen so früh wie möglich im Entwicklungsprozess durchzuführen.
- Alle Prüfungen werden in jeder Pipelineausführung ausgeführt. Wenn eine vorherige Prüfung fehlschlägt, geht die Pipeline zur nächsten Prüfung über. Um zu bewerten, ob Fehler in Ihrer Ausführung auftreten, überprüfen Sie den letzten Schritt Ihrer Pipeline, der über ein Pipeline-Auswertungsprogramm verfügt.
Ergebnisse von Komponententests und Schwachstellenscans werden in der DevOps Insights-Instanz innerhalb der Toolchain veröffentlicht. Klicken Sie zum Überprüfen dieser Ergebnisse auf die Kachel DevOps Insights in der Toolchain und wechseln Sie zur Seite 'Qualitätsdashboard'.
Um zu bewerten, ob Fehler in Ihrer Pipelineausführung auftreten, überprüfen Sie den letzten Schritt Ihrer Pipeline, der über ein Pipeline-Auswertungsprogramm verfügt.
Continuous Delivery-Pipeline kennenlernen
Die Pull-Anforderung und die Pipelines für kontinuierliche Integration sind in allen Bereitstellungsstrategien einheitlich. Das Design und die Implementierung der Continuous Delivery-Pipeline basieren auf der Bereitstellungsstrategie, die Sie zuvor in diesem Lernprogramm ausgewählt haben.
Sie können eine Continuous Delivery-Pipeline auf eine der folgenden Arten starten:
- Lösen Sie die Continuous-Delivery-Pipeline manuell aus.
- Lösen Sie die Continuous-Delivery-Pipeline automatisch nach jeder
Merge-Aktion im Bestandsrepository aus. Nach der Zusammenführung müssen Sie die Ausführung der Continuous Delivery-Pipeline manuell auslösen.
Ein Git Repos and Issue Tracking-Auslöser ist so konfiguriert, dass er eine automatische Continuous Delivery-Pipeline auslöst, er ist jedoch standardmäßig deaktiviert. Sie können diesen Auslöser nach dem ersten Hochstufen einer Änderung aktivieren.
Nächste Schritte
Wenn Sie die in Kubernetes ausgeführte Beispielapp entfernen möchten, müssen Sie den Kubernetes-Cluster bereinigen:
-
Rufen Sie die Homepage von Kubernetes Cluster auf.
-
Wählen Sie den Cluster aus, in dem die Beispielapp ausgeführt wird.
-
Klicken Sie auf Kubernetes-Dashboard.
-
Wählen Sie an der Position, an der die Beispielapp ausgeführt wird, Namensbereich aus.
Kubernetes Namensraum -
Löschen Sie die zugehörigen Bereitstellungen, Services und Ingress-Ressourcen, die im ausgewählten Namensbereich aufgelistet sind.
Sie brauchen Hilfe?
IBM Cloud der KI-Assistent von IBM, der von watsonx unterstützt wird, soll Ihnen dabei helfen, sich mit der Arbeit in IBM Cloud vertraut zu machen und mithilfe des Katalogs verfügbarer Produkte und Dienstleistungen Lösungen zu entwickeln. Siehe "Hilfe vom KI-Assistenten erhalten ".
Weitere Unterstützungsoptionen finden Sie unter Hilfe und Unterstützung für Continuous Delivery.
