Stapeln von einsatzfähigen Architekturen in einem Projekt
Sie können verteilbare Architekturen in einem Projekt zusammenfügen, um eine komplexere End-to-End-Lösungsarchitektur zu erstellen. Sie brauchen Terraform nicht zu programmieren, um die einsatzfähigen Architekturen miteinander zu verbinden. Bei der Konfiguration von Eingabewerten in einer einsatzfähigen Architektur können Sie auf Eingaben oder Ausgaben aus einer anderen Architektur verweisen, um sie miteinander zu verknüpfen. Nachdem Sie die gestapelten Architekturen bereitgestellt haben, können Sie sie einem privaten Katalog als bereitstellbare Architektur hinzufügen, um Ihre End-to-End-Lösung problemlos mit anderen in Ihrem Unternehmen zu teilen.
Dies ist eine experimentelle Funktion, die für Bewertungs-und Testzwecke verfügbar ist und sich möglicherweise ohne vorherige Ankündigung ändern kann.
In einem Projekt können Sie einsatzfähige Architekturen stapeln, die Ihnen bereits in einem Katalog zur Verfügung stehen. Wenn Sie eine einsatzfähige Architektur erstellen, die noch nicht in einen Katalog eingebunden ist, können Sie die einsatzfähige Architektur beim Einbinden erweitern, indem Sie sie mit anderen Architekturen stapeln. Dieser Ansatz bietet mehr Anpassungsoptionen, die nicht zur Verfügung stehen, wenn Sie einsatzfähige Architekturen in einem Projekt stapeln, wie z. B. die Einbeziehung optionaler Architekturen für verschiedene Anwendungsfälle. Dieser Ansatz funktioniert auch, wenn die einsatzfähige Architektur noch nicht in einem privaten Katalog verfügbar ist. Unabhängig davon, welchen Ansatz Sie wählen, um die Architekturen miteinander zu verbinden, ist das Ergebnis eine robustere, einsatzfähige Architektur, die Benutzer mithilfe eines Projekts konfigurieren und einsetzen können.
Vorbereitende Schritte
Vergewissern Sie sich, dass Sie den folgenden Zugang haben. Weitere Informationen zu Zugriff und Berechtigungen finden Sie unter Zugriff auf Projekte zuweisen.
- Die Rolle 'Bearbeiter' für den IBM Cloud-Projektservice.
- Die Rolle "Bearbeiter" und "Manager" für den Service IBM Cloud® Schematics.
- Die Rolle des Anzeigeberechtigten für die Ressourcengruppe für das Projekt.
Fügen Sie die implementierbaren Architekturen, die Sie stapeln möchten, zu Ihrem Projekt hinzu. Weitere Informationen finden Sie unter Implementierbare Architekturen einem Projekt hinzufügen.
Wenn Sie Ihrem Projekt implementierbare Architekturen hinzufügen, geben Sie aussagekräftige Namen an, um sie leichter identifizieren zu können. Wenn Sie z. B. eine infrastrukturell verteilbare Architektur hinzufügen, die die Grundlage für eine
Anwendung bildet, muss diese Infrastruktur zuerst verteilt werden. Andernfalls kann die Anwendung nicht in dieser Infrastruktur bereitgestellt werden. Benennen Sie Ihre implementierbare Infrastrukturarchitektur 1 - infrastructure,
wenn Sie sie Ihrem Projekt hinzufügen. Benennen Sie die Anwendung 2 - application, um anzugeben, dass sie als zweites implementiert werden muss.
Architekturen über die Befehlszeilenschnittstelle stapeln
Nachdem Sie die implementierbaren Architekturen Ihrem Projekt hinzugefügt haben, können Sie sie mit dem folgenden ibmcloud project config-create-Befehl stapeln. Geben Sie in der Option Definition die members an, indem Sie einen Namen und die Konfigurations-ID für die vorhandenen einsatzfähigen Architekturen angeben, die Sie zusammenstellen möchten:
ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION]
Der folgende Befehl erstellt beispielsweise eine einsatzfähige Architektur, die in Ihrem Projekt den Namen StackDev trägt. Es enthält zwei einsatzfähige Architekturen, custom-apache und test-slz, die bereits
als Konfigurationen zum Projekt hinzugefügt wurden:
ibmcloud project config-create \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--definition '{"name": "StackDev", "members": [{"name": "custom-apache", "config_id": "caff3a49-0bf4-40c4-b348-47e5da6e2274"}, {"name": "test-slz", "config_id": "fc7fa3d1-33db-4c40-9570-7604348ab3c4"}]}' \
--output json
Weitere Informationen zu den Befehlsparametern finden Sie unter ibmcloud project config-create.
Erstellen der Stack-Definition mit Hilfe der CLI
Um Ihre verteilbare Architektur in einen privaten Katalog einzubinden, müssen Sie eine Stack-Definition erstellen. Sie definiert, wie die einzelnen einsatzfähigen Architekturen zueinander in Beziehung stehen. Stellen Sie diese Informationen bereit, damit die Benutzer die gesamte Lösung erfolgreich bereitstellen können, wenn sie sie einem Projekt aus dem privaten Katalog hinzufügen.
Die Stack-Definition enthält Eingänge und Ausgänge, auf die in den einsatzfähigen Architekturen der Mitglieder Bezug genommen werden kann. Sie können auch Verweise zwischen einsatzfähigen Architekturen einfügen, wodurch sie für die Benutzer miteinander verbunden werden. Eingaben, die einen bestimmten Wert oder Verweis für eine erfolgreiche Bereitstellung erfordern, müssen in die Stack-Definition aufgenommen werden.
Derzeit können Mitglieder nicht auf Ausgaben aus der Stack-Definition verweisen.
Führen Sie den folgenden ibmcloud project stack-definition-create-Befehl aus, um die Stackdefinition zu erstellen und die Eingaben bereitzustellen:
ibmcloud project stack-definition-create --project-id PROJECT-ID --id
Dabei ist id die Konfigurations-ID der StackDev deployable architecture, die Sie gerade in Ihrem Projekt erstellt haben.
Der folgende Befehl fügt beispielsweise die folgenden drei Eingänge zur Stack-Definition hinzu. Bei diesen Eingaben handelt es sich um erforderliche Zeichenfolgen, die den Benutzern nicht verborgen bleiben, so dass die Benutzer diese Eingabewerte konfigurieren müssen, um die durchgängig einsatzfähige Architektur bereitzustellen:
prefix-Eingabe mitstackDemoals Standardwert.ssh_key-Eingabe ohne Standardwert.ssh_private_keymit einem Standardwert, der Benutzern bei der Konfiguration der Eingabe zur Verfügung steht.
Der Befehl enthält auch Eingabenamen für die beiden einsatzfähigen Architekturen, die zusammen gestapelt werden. Diese Eingaben werden mit Werten als Referenzen gefüllt und für Benutzer gespeichert, die die Lösung zu einem Projekt aus dem privaten Katalog hinzufügen:
- Die implementierbare
test-slz-Architektur enthält eineprefix-Eingabe und einessh_key-Eingabe. - Die implementierbare
custom-apache-Architektur enthält einessh_private_key-Eingabe und eineprerequisite_workspace_id-Eingabe.
Weitere Informationen zum Schreiben von Referenzen finden Sie unter Werte referenzieren.
ibmcloud project stack-definition-create \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--stack-definition '{"inputs": [{"name": "prefix", "type": "string", "hidden": false, "required": true, "default": "stackDemo"}, {"name": "ssh_key", "type": "string", "hidden": false, "required": true}, {"name": "ssh_private_key", "type": "string", "hidden": false, "required": true, "default": "<<-EOF\nINSERT YOUR KEY HERE\nEOF"}], "members": [{"name": "test-slz", "inputs": [{"name": "prefix"}, {"name": "ssh_key"}]}, {"name": "custom-apache", "inputs": [{"name": "ssh_private_key"}, {"name": "prerequisite_workspace_id"}]} ]}' --output json
Weitere Informationen zu den Befehlsparametern finden Sie unter ibmcloud project stack-definition-create.
Referenzierung von Eingaben aus der Stack-Definition innerhalb der einsatzfähigen Architekturen von Mitgliedern unter Verwendung der CLI
Nachdem die Eingänge zur Stack-Definition hinzugefügt wurden, aktualisieren Sie die einsatzfähigen Architekturen, um diese Eingänge zu referenzieren, indem Sie den Befehl ibmcloud project config-update für jede Architektur ausführen,
die Sie zusammen gestapelt haben:
ibmcloud project config-update --project-id PROJECT-ID --id
Der folgende Befehl aktualisiert beispielsweise die bereitstellbare Architektur test-slz, um auf die Eingaben zu verweisen, die der Stack-Definition hinzugefügt wurden:
ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4 \
--definition '{"inputs": {"prefix": "ref:../../inputs/prefix", "ssh_key": "ref:../../inputs/ssh_key"}}' --output json
Da die Architektur custom-apache den Wert ssh_private_key aus der Stackdefinition verwendet, müssen Sie die implementierbare Architektur von custom-apache aktualisieren, um auf diesen Wert zu verweisen.
Die custom-apache-Architektur verwendet auch den Eingabewert schematics_workspace_id als eine seiner Eingaben. Verwenden Sie daher einen Verweis auf diesen Wert:
ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id caff3a49-0bf4-40c4-b348-47e5da6e2274 \
--definition '{"inputs": {"ssh_private_key": "ref:../../inputs/ssh_private_key", "prerequisite_workspace_id": "ref:../test-slz/outputs/schematics_workspace_id"}}' --output json
Weitere Informationen zu den Befehlsparametern finden Sie unter ibmcloud project config-update.
Aktualisierung der Eingabewerte in der Stack-Definition mit Hilfe der CLI
Nachdem die verteilbaren Mitgliedsarchitekturen so konfiguriert sind, dass sie auf die gewünschten Werte verweisen, aktualisieren Sie die Eingabewerte in der Stack-Definition, indem Sie ibmcloud project config-update für die verteilbare
Architektur StackDev ausführen. Der folgende Befehl aktualisiert beispielsweise den Eingabewert prefix, auf den die bereitstellbare Architektur test-slz verweist. Außerdem werden Werte für die Eingaben
ssh_key und ssh_private_key bereitgestellt:
ibmcloud project config-update \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--definition '{"inputs": {"prefix": "kb-stack-0327", "ssh_key": "<publicKey>", "ssh_private_key": "<privateKey>"}}' --output json
Weitere Informationen zu den Befehlsparametern finden Sie unter ibmcloud project config-update.
Nachdem der Eingabewert konfiguriert ist, validieren und implementieren Sie jedes Mitglied der verteilbaren Architektur.
Der folgende Befehl validiert beispielsweise die implementierbare Architektur von test-slz:
ibmcloud project config-validate \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4
Der folgende Befehl genehmigt die implementierbare test-slz-Architektur für die Implementierung:
ibmcloud project config-approve \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4 \
--comment 'I approve'
Der folgende Befehl stellt die implementierbare test-slz-Architektur bereit:
ibmcloud project config-deploy \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id fc7fa3d1-33db-4c40-9570-7604348ab3c4
Einbindung in einen privaten Katalog mit Hilfe der CLI
Nachdem jede verteilbare Architektur eines Mitglieds validiert und verteilt wurde, können Sie Ihre verteilbare Architektur in einen privaten Katalog einbinden, auf den andere zugreifen können. Wenn ein Benutzer Ihre verteilbare Architektur zu
einem Projekt aus dem privaten Katalog hinzufügt, wird jede Architektur, die Sie zusammengefügt haben, in das Projekt aufgenommen. Führen Sie den folgenden ibmcloud project stack-definition-export-Befehl aus:
ibmcloud project stack-definition-export --project-id PROJECT ID
Sie können ein neues Produkt erstellen oder eine Version zu einem vorhandenen Produkt hinzufügen. Der folgende Befehl erstellt beispielsweise ein neues Produkt in Ihrem privaten Katalog mit dem Namen My Apache Stack:
ibmcloud project stack-definition-export --project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 --id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 --settings '{"catalog_id": "702ff97a-e35a-45a4-a0c0-a04e2e052bc8", "label": "My Apache Stack"}' --output json
Während der folgende Befehl eine neue Version eines vorhandenen Produkts erstellt:
ibmcloud project stack-definition-export \
--project-id 0e13c360-45c4-4b68-a53f-bb8f6ac04161 \
--id 4d69cee6-0fb2-4621-96c6-16d987f3d9d7 \
--settings '{"catalog_id": "702ff97a-e35a-45a4-a0c0-a04e2e052bc8", "product_id": "1bf57631-27a2-42cc-ac87-733cca67e8a5", "target_version": "1.0.1"}' --output json
Weitere Informationen zu den Befehlsparametern finden Sie unter ibmcloud project stack-definition-export.
Ihre Architektur ist nun ein Entwurf im privaten Katalog, der noch nicht veröffentlicht wurde, aber für jeden zugänglich ist, der einen Editor-Zugang zum privaten Katalog hat.
Um das Onboarding für Ihren privaten Katalog abzuschließen, bearbeiten Sie die Katalogdetails und geben Sie Informationen wie ein Architekturdiagramm und eine Kategorie an.
Architekturen mithilfe der Konsole stapeln
Nachdem Sie die einsatzfähigen Architekturen zu Ihrem Projekt hinzugefügt haben, konfigurieren Sie sie. Wenn die Architekturen, die Sie stapeln, voneinander abhängig sind, verknüpfen Sie die Architekturen miteinander, indem Sie beim Konfigurieren auf Ein- oder Ausgänge verweisen. Stapeln Sie dann die Architekturen, indem Sie die folgenden Schritte ausführen:
-
Aktivieren Sie das Kontrollkästchen für die einsatzfähigen Architekturen, die Sie zusammen stapeln möchten.
-
Wählen Sie Stack aus.
-
Geben Sie einen Namen für die einsatzfähigen Architekturen an oder wählen Sie eine vorhandene Architektur aus.
Die einsatzfähigen Architekturen sollten zusammenarbeiten, um eine Lösung zu finden. Überlegen Sie sich einen aussagekräftigen Namen für die End-to-End-Lösung, der jede Architektur, die Sie zusammenstellen, genau repräsentiert. Wenn Sie z. B. eine Apache-Anwendung zusammen mit einer Infrastrukturbasis stapeln, geben Sie ihr einen Namen wie
Apache application with infrastructure base, um klar zu erkennen, was die Architektur bereitstellt. -
Klicken Sie auf Weiter.
Definieren von Variablen über die Konsole
Nachdem Sie die einsatzfähigen Architekturen zusammengefügt haben, müssen Sie Variablen für Ihre Benutzer definieren. Ihr Ziel ist es, die einsatzfähigen Architekturen miteinander zu verknüpfen, damit die Benutzer die Eingaben über eine einzige Schnittstelle konfigurieren können, anstatt die Architekturen einzeln zu konfigurieren.
Die Eingabevariablen, die Sie definieren, werden von den Benutzern konfiguriert, nachdem die verteilbare Architektur einem Projekt aus einem Katalog hinzugefügt wurde. In ähnlicher Weise werden die von Ihnen ausgewählten Ausgabevariablen für Benutzer auf der übergeordneten Ebene der Architektur angezeigt. Wählen Sie keine Variablen aus, die Benutzer nicht konfigurieren sollten. Wenn Ihre Architektur beispielsweise einen bestimmten Wert für eine Eingabevariable erfordert, wie z. B. einen Speicherplan, wählen Sie nicht die Eingabe des Speicherplans. Wählen Sie keine Referenzen aus, die die einsetzbaren Architekturen miteinander verknüpfen. Wenn Sie dies tun, kann die Verbindung zwischen diesen Architekturen unterbrochen werden und die gesamte Lösung kann nicht erfolgreich bereitgestellt werden.
Um den Benutzern die Konfiguration zu erleichtern, sollten Sie die Anzahl der erforderlichen Eingabewerte auf ein Minimum reduzieren. Überprüfen Sie die erforderlichen Eingaben für jede Architektur und stellen Sie sicher, dass diese Eingaben konfiguriert sind, indem Sie Verweise auf Eingabewerte in der Stack-Definition hinzufügen oder auf Ausgabewerte anderer Architekturen verweisen.
Führen Sie die folgenden Schritte aus:
-
Klicken Sie auf der Registerkarte Konfigurationen in Ihrem Projekt auf das Symbol Optionen
für die gestapelte bereitstellbare Architektur und wählen Sie Variablen definieren.
-
Wählen Sie auf der Registerkarte Sicherheit alle Variablen aus, die Benutzer konfigurieren müssen.
-
Wechseln Sie zur Registerkarte Erforderliche Eingaben und wählen Sie alle erforderlichen Eingaben aus, die Benutzer konfigurieren müssen.
-
Rufen Sie die Registerkarte Optionale Eingaben auf und wählen Sie alle optionalen Eingaben aus, die Benutzer konfigurieren müssen.
-
Gehen Sie auf die Registerkarte Ausgaben und wählen Sie alle Ausgabevariablen aus, die Sie auf der übergeordneten Ebene anzeigen möchten.
Erleichtern Sie den Benutzern das Auffinden wichtiger Ausgabewerte nach der Bereitstellung der Architektur, z. B. Anwendungs-URLs oder Namen von Anmeldeinformationen. Wählen Sie die wichtigen Ausgabewerte aus den verteilbaren Architekturen der Mitglieder aus, um sie für die Benutzer auf der übergeordneten Ebene anzuzeigen.
-
Klicken Sie auf Weiter und fahren Sie mit der Auswahl der Variablen für die übrigen Architekturen fort.
-
Wenn Sie fertig sind, klicken Sie auf Fertig stellen und konfigurieren Sie die Architektur für die Bereitstellung. Alle Eingänge, die Sie bei der Definition der Variablen ausgewählt haben, müssen möglicherweise konfiguriert werden.
Onboarding in einen privaten Katalog über die Konsole
Nach der Validierung und Bereitstellung der einzelnen bereitstellbaren Architekturen, die Sie zusammengefügt haben, können Sie diese als bereitstellbare Architektur zu einem privaten Katalog hinzufügen, um die Lösung auf einfache Weise mit anderen in Ihrem Unternehmen zu teilen. Weitere Informationen finden Sie unter Gemeinsame Nutzung eines privaten Katalogs.
Führen Sie die folgenden Schritte aus:
- Klicken Sie auf der Registerkarte Konfigurationen in Ihrem Projekt auf das Symbol Optionen
für die verteilbare Architektur und wählen Sie Zum privaten Katalog hinzufügen.
- Wählen oder erstellen Sie den privaten Katalog, dem Sie die verteilbare Architektur hinzufügen möchten.
- Wählen Sie aus, ob es sich um ein neues Produkt oder um eine neue Version eines bestehenden Produkts handelt.
- Geben Sie die Details wie einen Produktnamen (falls zutreffend), die Kategorie, die Variante und die Version an.
- Klicken Sie auf Weiter.
- Überprüfen Sie die Variablen, die Benutzer konfigurieren können, nachdem sie einem Projekt aus dem privaten Katalog eine verteilbare Architektur hinzugefügt haben. Wenn Sie Änderungen vornehmen müssen, können Sie die Variablen definieren.
- Klicken Sie auf Hinzufügen.
Ihre einsatzfähige Architektur ist nun ein Entwurf im privaten Katalog, der noch nicht veröffentlicht wurde, aber für jeden verfügbar ist, der über einen Editor-Zugang zu Ihrem privaten Katalog verfügt. Wenn ein Benutzer Ihre verteilbare Architektur zu einem Projekt aus dem privaten Katalog hinzufügt, wird jede Architektur, die Sie zusammengefügt haben, in das Projekt aufgenommen.
Um das Onboarding Ihrer einsatzfähigen Architektur in Ihren privaten Katalog abzuschließen, bearbeiten Sie die Katalogdetails und geben Sie Informationen wie ein Architekturdiagramm und eine Kategorie an.
Gibt es eine neue Version für eine einsatzfähige Architektur, die Sie mit anderen zusammen erstellt haben? Aktualisieren Sie die Konfiguration in Ihrem Projekt, um die neueste Version zu verwenden, validieren und verteilen Sie die Änderungen und führen Sie dann die Schritte aus, um die aktualisierte Lösung in einen privaten Katalog einzubinden. Wählen Sie das bereits eingeführte Produkt aus und geben Sie eine neue Versionsnummer an. Auf diese Weise stellen Sie sicher, dass die aktualisierte einsatzfähige Architektur weiterhin mit den anderen Architekturen, die Sie zusammen mit ihr gestapelt haben, ordnungsgemäß funktioniert.