Anpassung einer IBM Cloud einsatzfähigen Architektur zum Aufbau einer eigenen Infrastruktur

Dieses Tutorial führt Sie durch die Erstellung einer benutzerdefinierten, einsatzfähigen Architektur auf der Grundlage einer vorhandenen IBM Cloud® einsatzfähigen Architektur, die Ihren Geschäftsanforderungen entspricht. In diesem Tutorial lernen Sie, wie Sie die Terraform-Dateien herunterladen, die Variablen aktualisieren und dann die aktualisierte Architektur testen.

Wenn Sie mit einer IBM Cloud einsatzfähigen Architektur beginnen, müssen Sie sich nicht um die Erstellung einer Infrastrukturarchitektur von Grund auf kümmern. Sie können einen Schnelleinstieg erhalten, indem Sie eine bereitstellbare Architektur von IBM Cloud verwenden und sie entsprechend Ihren Anforderungen konfigurieren.

Stellen Sie sich vor, Sie sind ein Experte für Cloud-Automatisierungstechnik bei Example Corp, einem fiktiven Unternehmen. Ihr Infrastrukturarchitekt hat den IBM Cloud Katalog durchforstet und die Cloud-Automatisierung für Code Engine entdeckt, eine einsatzfähige Architektur, die die meisten Ihrer Anforderungen erfüllt. Ihr Infrastrukturarchitekt muss jedoch die folgenden Änderungen vornehmen, um die Anforderungen Ihres Unternehmens zu erfüllen:

  • Entfernen Sie unerwünschte Variablen.
  • Beschränken Sie IBM Cloud auf die US-Einsatzregionen.
  • Aktualisieren Sie die einsatzfähige Architektur, um auf die KI-Anwendung von Example Corp zu verweisen.

Dieses Lernprogramm verwendet ein fiktives Szenario, um Ihnen zu helfen, einige der Konfigurationsoptionen für eine implementierbare Architektur kennenzulernen und zu verstehen. Es wird erklärt, wie man eine bereitstellbare Architektur anpasst, um die Bereitstellung einer containerisierten Anwendung auf IBM Cloud Code Engine zu automatisieren. Das bestehende Container-Image unter icr.io/codeengine/helloworld wird als Beispielanwendung verwendet. Passen Sie beim Durcharbeiten des Tutorials jeden Schritt an die Bedürfnisse Ihres Unternehmens an.

Vorbereitende Schritte

  1. Um eine Architektur aufzubauen, müssen Sie mit Terraform vertraut sein.

  2. Vergewissern Sie sich, dass Sie ein nutzungsabhängiges Konto oder ein Abonnementkonto verwenden; navigieren Sie hierzu in der IBM Cloud-Konsole zu Verwalten > Konto > Kontoeinstellungen.

  3. Erstellen Sie ein Repository zum Speichern Ihrer einsatzfähigen Architektur. Für dieses Lernprogramm wird GitHub verwendet. Weitere Informationen finden Sie unter Repository erstellen.

  4. Installieren Sie z. B. einen Editor Ihrer Wahl, Visual Studio Code.

  5. Stellen Sie sicher, dass Ihnen die folgenden IBM Cloud Identity and Access Management (IAM) Rollen zugewiesen sind:

    • Administrator für alle IAM Account Management-Dienste, alle Account Management-Dienste und alle identitäts- und zugriffsfähigen Dienste.
    • Editor für den Dienst Katalogverwaltung.
    • Managerdienst-Zugangsrolle für Schematics.
    • Andere Rollen, die für bestimmte Ressourcen in Ihrer verteilbaren Architektur erforderlich sind. Die Cloud-Automatisierung für Code Engine erfordert die Writer-Service-Zugriffsrolle, die auf alle Ressourcen für den Code Engine-Service beschränkt ist.

    Weitere Informationen finden Sie unter Zuweisung des Zugriffs auf Kontoverwaltungsdienste und Verwaltung des Zugriffs auf Ressourcen.

Implementierbare Architekturdateien herunterladen

Zunächst müssen Sie die implementierbaren Architekturdateien herunterladen. Die Dateien enthalten eine main.tf Datei, die das Terraform-Stammmodul aufruft.

  1. Klicken Sie in der Konsole IBM Cloud auf Katalog.

  2. Geben Sie Cloud automation for Code Engine in die Suchleiste ein und wählen Sie die Architektur aus der Liste der Suchergebnisse aus.

  3. Wählen Sie v4.2.2 als Produktversion.

    Dieses Tutorial wurde auf Basis der Version 4.2.2 von Cloud Automation für Code Engine erstellt. Sie können jedoch eine andere Version der verteilbaren Architektur auswählen, wenn Sie dies wünschen.

  4. Vergewissern Sie sich, dass die Variante Neue Code Engine Anwendungen ausgewählt ist.

  5. Klicken Sie in der Zusammenfassungsanzeige auf Implementierungsoptionen prüfen.

  6. Wählen Sie Mit Code arbeiten > Bundle herunterladen aus, um das Bundle herunterzuladen.

  7. Öffnen Sie das heruntergeladene Bundle auf Ihrem lokalen Computer.

  8. Entpacken Sie das .tar.gz Bundle, um auf die Dateien in einem Ordner zuzugreifen und sie zu bearbeiten. Der extrahierte Ordner Example-corp-infrastructure wurde umbenannt, um ihn leichter auffindbar und benutzerfreundlicher zu machen.

    Nachdem Sie das Bundle erfolgreich heruntergeladen und extrahiert haben, werden die folgenden Dateien und Ordner angezeigt:

    • automation folder
    • ibm_catalog.json
    • main.tf
    • outputs.tf
    • provider.tf
    • README.md
    • variables.tf
    • version.tf

Liste der Variablen bearbeiten

Als Ihr Infrastrukturarchitekt IBM Cloud Code Engine untersuchte, beschloss er, die Region und den API-Schlüssel IBM Cloud zu ändern. Die anderen Variablen, die in der Architektur enthalten sind, werden für Ihre Zwecke nicht benötigt, so dass Sie sie mit Ihrem bevorzugten Editor Visual Studio Code entfernen müssen.

  1. Öffnen Sie in Visual Studio Codedie Datei variables.tf.

  2. Verschieben Sie die folgenden Variablen an den Anfang der Datei variables.tf.

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    Die Reihenfolge der Variablen spielt keine Rolle.

  3. Löschen Sie alle anderen Variablen und speichern Sie die Datei.

Aktualisierung der Datei main.tf

Nachdem Sie nun die Datei variables.tf aktualisiert haben, stellen Sie sicher, dass die Konfigurationsinformationen in der Datei main.tf korrekt sind. Da Sie Code Engine verwenden möchten, um eine von Example Corp erstellte Anwendung auszuführen, müssen Sie Informationen über Ihre Anwendung angeben.

  1. Öffnen Sie die Datei main.tf.

  2. Aktualisieren Sie die Variable app_name und geben Sie "example-corp-ai-app" als Namen der Anwendung ein.

  3. Aktualisieren Sie die Variable image_reference und geben Sie "icr.io/codeengine/helloworld" ein, die das Docker-Image für Ihre Anwendung ist.

  4. Fügen Sie die Variable project_name hinzu und geben Sie "example-corp-ce-project" als Namen für Ihr Projekt Code Engine ein.

  5. Fügen Sie die Variable provider_visibility hinzu und setzen Sie sie auf "public".

  6. Vergewissern Sie sich, dass die Variablen ibmcloud_api_key, prefix und region wie im folgenden Beispiel gezeigt enthalten sind:

    module "deploy-arch-ibm-code-engine" {
      source      = "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/offering/source/archive//solutions/apps?archive=tgz&catalogID=7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3&flavor=apps&installType=fullstack&kind=terraform&name=deploy-arch-ibm-code-engine&version=v4.2.2"
      ibmcloud_api_key      = var.ibmcloud_api_key
      prefix      = var.prefix
      existing_resource_group_name      = var.existing_resource_group_name
      region      = var.region
      app_name      = "example-corp-ai-app"
      image_reference      = "icr.io/codeengine/helloworld"
      project_name      = "example-corp-ce-project"
      provider_visibility      = "public"
    }
    
  7. Speichern Sie die Datei.

Ihre Architektur ist nun so kodiert, dass sie auf Ihre AI-App von Example Corp. verweist und so konfiguriert ist, dass die Variablen für IBM Cloud API-Schlüssel, Präfix und Region verwendet werden.

Aktualisierung der Datei ibm_catalog.json

Die Datei ibm_catalog.json ist eine Manifest-JSON-Datei, die zum automatischen Importieren von Versionsinformationen verwendet wird, wenn Sie eine einsatzfähige Architektur in einen privaten Katalog einbinden. Da Sie die verteilbare Architektur geändert haben, haben Sie eine völlig neue Architektur für Ihre Bedürfnisse geschaffen. Aktualisieren Sie die folgenden Informationen in der Datei ibm_catalog.json, um Ihre Änderungen wiederzugeben.

Weitere Informationen zur Manifestdatei und ihrem Inhalt finden Sie unter Katalogmanifest lokal bearbeiten.

Produktinformationen aktualisieren

Nachdem Sie nun die Konfiguration aktualisiert und Ihre eigene Architektur erstellt haben, müssen Sie auch den Namen und den programmatischen Namen der bereitstellbaren Architektur aktualisieren.

  1. Öffnen Sie die Datei ibm_catalog.json.

  2. Suchen Sie das Feld label und aktualisieren Sie den Namen Ihrer implementierbaren Architektur in Example Corp's infrastructure.

  3. Suchen Sie das Feld name und aktualisieren Sie den programmgesteuerten Namen Ihrer Architektur in deploy-arch-example-corp.

  4. Suchen Sie das Feld version und geben Sie 0.0.1 ein, um die Versionsnummer zu aktualisieren. Wenn das Feld fehlt, fügen Sie es in einer neuen Zeile unmittelbar nach dem Feld name ein:

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. Suchen Sie im Abschnitt flavors das Feld label und aktualisieren Sie den Namen für diese Variante Ihrer einsatzfähigen Architektur auf Deploy Example Corp AI app on IBM Cloud Code Engine. Auf diese Weise ermitteln Sie den Zweck dieser Variante Ihrer einsatzfähigen Architektur und was sie leistet.

  6. Speichern Sie die Datei.

Konfigurationsdaten aktualisieren

Nun möchten Sie sicherstellen, dass die Benutzer Ihrer einsatzfähigen Architektur diese nur in den USA einsetzen können. Aktualisieren Sie dazu die Variableninformationen im Konfigurationsabschnitt der Datei ibm_catalog.json.

  1. Suchen Sie im Abschnitt configuration der Datei ibm_catalog.json die folgenden Variablen und verschieben Sie sie an den Anfang des Konfigurationsabschnitts:

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. Um die Regionen auf die US-Regionen zu beschränken, müssen Sie jede Region als Option für die Variable region hinzufügen, nicht benötigte Abschnitte löschen und die region als erforderliche Variable festlegen.

    {
        "key": "region",
        "type": "string",
        "default_value": "us-south",
        "description": "The region in which to provision all resources created by this solution.",
        "required": true,
        "options": [
            {
                "displayname": "us-east",
                "value": "us-east"
            },
            {
                "displayname": "us-south",
                "value": "us-south"
    
            }
        ],
        "virtual": false
    }
    
  3. Löschen Sie die restlichen Variablen im Konfigurationsabschnitt.

    Wenn Benutzer Ihre Architektur bereitstellen, können sie zwischen den aufgelisteten Regionsoptionen wählen. Eine Liste der verfügbaren Regionen finden Sie unter Regionen.

  4. Speichern Sie die Datei ibm_catalog.json.

Testen der implementierbaren Architektur

Bevor Sie Ihre konfigurierte einsatzfähige Architektur in einen privaten Katalog einbinden und zur Nutzung bereitstellen, sollten Sie Ihre Konfiguration testen, um sicherzustellen, dass die Architektur wie vorgesehen läuft. Führen Sie die folgenden Schritte aus, um Ihre Architektur mit der Terraform-Befehlszeile zu testen:

  1. Erstellen oder aktualisieren Sie eine .netrc Datei, die für die Verwendung von Terraform Modulen von IBM Cloud benötigt wird. Weitere Informationen finden Sie unter ibmcloud catalog utility netrc.

    ibmcloud catalog utility netrc
    
  2. Terraform-Befehlszeilenschnittstelle initialisieren. Weitere Informationen finden Sie unter Arbeitsverzeichnisse initialisieren.

    terraform init
    
  3. Stellen Sie die Ressourcen bereit. Weitere Informationen finden Sie unter Infrastruktur mit Terraform bereitstellen.

    1. Führen Sie terraform plan aus, um einen Terraform-Ausführungsplan für die Vorschau der vorgeschlagenen Aktionen zu generieren.

      terraform plan
      
    2. Führen Sie terraform apply aus, um die Ressourcen zu erstellen, die im Plan definiert sind.

      terraform apply
      

Nächste Schritte

Wenn Ihre einsatzfähige Architektur wie erwartet ausgeführt wurde, haben Sie erfolgreich Ihre eigene einsatzfähige Architektur aus der Cloud-Automatisierung für Code Engine erstellt. Jetzt können Sie Ihre aktualisierten Dateien in das von Ihnen erstellte GitHub-Repository verschieben und Ihr Produkt in einen privaten Katalog integrieren.

Nachdem Sie Example Corp's infrastructure in einen privaten Katalog aufgenommen haben, können Sie ihn für Ihr Unternehmen freigeben. Wenn Sie nicht bereit sind, Ihre einsatzfähige Architektur mit anderen zu teilen, oder wenn Sie nicht Teil eines Unternehmens sind, können Sie die Freigabe überspringen und mit dem nächsten Lernprogramm fortfahren, in dem es um die Bereitstellung von Example Corp's infrastructure mithilfe eines Projekts geht.