Infrastructure-as-Code

Viele Organisationen ziehen die Bereitstellung der IT-Infrastruktur durch codebasierte Definitionen, die oft als “Infrastructure-as-Code” (IaC) bezeichnet werden, in Betracht, oder sie haben bereits damit begonnen. Der Prozess dazu umfasst in der Regel die folgenden Schritte:

  1. Wählen Sie eine Automatisierungssprache aus, z. B. CloudFormation, Terraform, ARM-Vorlagen, Bicep oder andere.
  2. Definieren Sie eine Vielzahl von Infrastruktureinstellungen, z. B. die Konfiguration des virtuellen Netzwerks, die Spezifikation eines virtuellen Computers und eingehende Load Balancer oder Reverse-Proxys.
  3. Führen Sie den “Build” dieser Umgebung über ein manuelles, vom Benutzer initiiertes Werkzeug oder einen anderen automatisierten Prozess aus.

Das Ergebnis der IaC-Bereitstellung ist eine Reihe von Ressourcen, die erfolgreich von Hand bereitgestellt werden können, indem einzelne Konfigurationen und Einstellungen ausgewählt werden, die jedoch durch IaC mit hoher Konsistenz bereitgestellt, automatisch erneut bereitgestellt oder leicht angepasst werden können, damit sie neuen Spezifikationen entsprechen.

ArcGIS ist im Allgemeinen mit vielen IaC-Ansätzen und -Systemen kompatibel, die häufig für die Verwendung in einer bestimmten Cloud-Umgebung oder einem bestimmten Cloud-System konzipiert sind, z. B. AWS CloudFormation, Azure ARM-Vorlagen oder GCP Cloud Deployment Manager. Esri erstellt außerdem Werkzeuge für bestimmte Anbieter, insbesondere AWS CloudFormation-Vorlagen und Azure ARM-Vorlagen, die als Grundlage für weitere Konfigurationen verwendet oder erweitert werden können.

Nachdem die Infrastruktur mit einem IaC-Anbieter oder -Werkzeug bereitgestellt wurde, kann die ArcGIS-Software entweder manuell oder automatisch auf diesen Systemen bereitgestellt werden. Weitere Informationen finden Sie unter Automatisieren der ArcGIS-Softwarebereitstellung.

Einige IaC-Muster sind für häufige Bereitstellungen konzipiert, bei denen Änderungen häufig oder bei jeder Änderung des Codes an die Infrastruktur übertragen werden. Es kann schwierig sein, dieses Muster mit ArcGIS-Systemen abzugleichen, da sowohl ArcGIS Pro als auch ArcGIS Enterprise auf eine relativ stabile und konsistente Netzwerk- und Infrastrukturumgebung angewiesen sind. Daher wird empfohlen, wenn IaC-Änderungen erforderlich sind, diese Änderungen entweder sorgfältig wie jede Änderung an einem IT-System eines Unternehmens vorzunehmen (Planen, Testen, Überprüfen, Anpassen) oder diese Systeme mit anderen DevOps-Werkzeugen zu kombinieren, die die Automatisierung der Softwarebereitstellung ermöglichen, sodass das gesamte System in regelmäßigen Abständen neu erstellt und bereitgestellt werden kann.

IaC und ArcGIS

Weitere Vorschläge für die Arbeit mit Infrastructure-as-Code in Kombination mit ArcGIS sind:

  • IaC ist ein hervorragendes Werkzeug für die Wartung von Infrastruktur- und Basislinienkonfigurationen, aber nicht für die Aufrechterhaltung des Zustands eines Systems. Der “Zustand” eines ArcGIS-Systems umfasst Benutzer, Elemente, Inhalte, Services und Daten. Während IaC die entsprechende “Hardware” und die Installation der Software festlegen kann, kann die Wiederherstellung des Zustands eines Systems komplex und zeitaufwendig sein.
  • Die Verwendung von IaC zum Bereitstellen der Hardware zu Beginn eines Projekts (oder für eine neue Umgebung) ist einfacher als der Versuch, eine vorhandene Umgebung zu aktualisieren. Aktualisierungen können Netzwerkkonfigurationen, Maschinenbenennungen, Speicher- oder Firewallregeln oder andere Bedingungen, auf die die Software angewiesen ist, anpassen. Wenn die Software diese Änderung nicht kennt oder nicht darauf vorbereitet ist, können diese Änderungen auf Infrastrukturebene zu Instabilität oder Dienstunterbrechungen führen. Als Analogie: Wenn ein funktionierendes ArcGIS-System ein Auto ist, das die Straße entlangfährt, würden Sie nicht erwarten, dass die Reifen des Autos während der Fahrt gewechselt werden oder dass bei laufendem Motor von Benzin auf Diesel umgestellt wird.
  • Andere IaC-Sprachen oder -Anbieter sind wahrscheinlich mit ArcGIS kompatibel. Berücksichtigen Sie bei der Überprüfung eines potenziellen IaC-Ansatzes generell die manuellen Konfigurationsschritte, die für die Hardware und Infrastruktur erforderlich sind, versuchen Sie, diese sequenziell zu automatisieren, und fahren Sie mit der Softwarebereitstellung und -konfiguration fort, sobald die Automatisierung abgeschlossen ist.

DevOps, CI/CD und ArcGIS

DevOps als Begriff bezieht sich im Allgemeinen auf einen codegesteuerten Bereitstellungs-Workflow, bei dem Commits oder Releases automatisch etwas bereitstellen und das ersetzen, was zuvor vorhanden war. Andere Begriffe, die in diesem Bereich verwendet werden, sind Continuous Integration (CI) (kontinuierliche Integration) und Continuous Deployment (CD) (kontinuierliche Bereitstellung), die häufig als CI/CD kombiniert werden. Diese Begriffe stammen aus der Welt des Software-Engineerings und der Erstellung von Anwendungsentwicklungsanwendungen und benutzerdefinierten Softwareanwendungen, in denen kontinuierliche Bereitstellung und Tests zur Unterstützung der Veröffentlichung von Software eingesetzt werden.

ArcGIS ist ein kommerzielles Standardsoftwarepaket und als solches nicht auf die bestehende Verwendung von CI/CD oder DevOps für die Entwicklung benutzerdefinierter Anwendungen in vielen Organisationen ausgerichtet. Nach der Bereitstellung beginnt ArcGIS mit der Erstellung des Zustands und der Konfigurationen in ArcGIS Enterprise, des Portal-Inhalts, der Services, der Benutzerinhalte und der Konfigurationen. Durch die erneute Bereitstellung von ArcGIS Enterprise oder einer neuen ArcGIS Online-Organisation wird dieser vorhandene Zustand gelöscht, es sei denn, es wird eine Sicherung wiederhergestellt. Dies bedeutet, dass Sie das, was Sie erstellt haben, nicht mehr anzeigen können.

Damit DevOps erfolgreich mit ArcGIS-Systemen eingesetzt werden kann, muss eine Organisation sich für eine dieser Vorgehensweisen entscheiden:

  • Behalten Sie eine recht starre Bereitstellung mit festen Inhalten oder sorgfältig verwalteten Inhalten bei, deren Bereitstellung Sie von einem “leeren” System aus automatisieren können. Beispielsweise kann eine einzelne Viewer-Anwendung, die einen statischen Satz dateibasierter Daten enthält, jede Nacht bereitgestellt werden, einschließlich der automatischen Veröffentlichung oder Aktualisierung von Web-Services.
  • Identifizieren Sie eine zuverlässige Methode zum Extrahieren des Zustands, z. B. mit WebGISDR, stellen Sie die Systemkomponenten und die Basiskonfiguration erneut bereit, und stellen Sie dann den Zustand erneut bereit.
Top