Stellen Sie sich vor, Sie arbeiten für ein Unternehmen, das Webanwendungen für seine Kunden entwickelt. Jedes Mal, wenn Sie einen neuen Kunden für eine Webanwendung gewinnen, besuchen Sie AWS oder einen anderen Cloud-Anbieter. Am Ende haben Sie 2 VMs, um die App und die zugehörige Datenbank auszuführen. Sie benötigen mindestens zwei Kopien dieser Infrastruktur für Produktion und Staging und beginnen dann mit der Bereitstellung des Codes für diesen Kunden. Und dieser Prozess beginnt für jeden neuen Kunden von vorne. Stattdessen führen Sie mit Infrastructure as Code (IaC) ein kleines Stück Code aus, und das war's, Sie sind startklar!

Infrastruktur- und Betriebsteams (I&O) müssen ihre traditionellen Infrastrukturarchitekturstrategien mit IaC aufbrechen. Dies beinhaltet Investitionen in Hybrid Cloud, Container, zusammensetzbare Infrastruktur und die Automatisierung zur Unterstützung dieser Workloads. Während wir mit hoher Geschwindigkeit durch das allgegenwärtige Internet der Dinge (IoT) und Edge Computing rasen, wird eine ganzheitliche Strategie für IaC für Unternehmen wichtiger denn je. Es wird interessant sein, die Leistungsfähigkeit von Infrastructure as Code für die Bereitstellung von Drupal-basierten Webanwendungen zu erleben. Bevor wir darauf eingehen, wollen wir uns ansehen, wie IaC zu einer effizienten Softwareauslieferung beiträgt.
Behebung von Umgebungsabweichungen in der Release-Pipeline

Laut Microsoft bezieht sich Infrastructure as Code auf die Steuerung der Infrastruktur (Netzwerke, virtuelle Maschinen, Load Balancer, Verbindungstopologie) in einem beschreibenden Modell, indem die gleiche Versionierung wie das DevOps-Team für den Quellcode verwendet wird. Nach einem ähnlichen Prinzip, dass derselbe Quellcode dieselbe Binärdatei erzeugt, erzeugt ein IaC-Modell dieselbe Umgebung, wann immer es angewendet wird. Es ist eine integrale DevOps-Praxis und wird in Kombination mit Continuous Delivery verwendet.
Infrastructure as Code bezieht sich auf die Steuerung der Infrastruktur in einem beschreibenden Modell, indem die gleiche Versionierung wie das DevOps-Team für den Quellcode verwendet wird.
IaC wurde entwickelt, um die Umgebungsabweichung in der Release-Pipeline zu beheben, weil:
- Die Teams müssen die Einstellungen der separaten Bereitstellungsumgebungen ohne IaCs verwalten.
- Im Laufe der Zeit wird jede Umgebung zu einer Snowflake. Mit anderen Worten, es führt zu einer einzigartigen Konfiguration, die nicht automatisch reproduziert werden kann.
- Inkonsistente Umgebungen verursachen Bereitstellungshindernisse.
- Bei Snowflakes stellen die Verwaltung und Wartung der Infrastruktur manuelle Prozesse dar, die schwer zu verfolgen sind und zu Fehlern beitragen.
Idempotenz, ein Prinzip von IaC, ist die Eigenschaft, bei der der Bereitstellungsbefehl die Zielumgebung immer in dieselbe Konfiguration versetzt, unabhängig vom Ausgangszustand der Umgebung. Dies wird entweder durch die automatische Konfiguration eines bestehenden Ziels oder durch die Neuerstellung einer frischen Umgebung durch Verwerfen der bestehenden Umgebung erreicht.
Mit IaC können DevOps-Teams Anwendungen frühzeitig im Entwicklungszyklus in produktionsähnlichen Umgebungen testen. Diese Teams erwarten, dass sie mehrere Testumgebungen und On-Demand-Umgebungen bereitstellen können. Als Code dargestellte Infrastruktur kann auch validiert und getestet werden, um häufige Bereitstellungsherausforderungen zu vermeiden. Gleichzeitig stellt die Cloud dynamisch Umgebungen auf der Grundlage von IaC-Definitionen bereit und baut sie ab.
Die Implementierung von Infrastructure as Code hilft bei der schnelleren und skalierbaren Bereitstellung stabiler Umgebungen. Indem sie den gewünschten Zustand ihrer Umgebungen über Code darstellen, vermeiden die Teams die manuelle Konfiguration von Umgebungen und erzwingen Konsistenz. Infrastrukturbereitstellungen sind wiederholbar und schützen vor Laufzeitproblemen, die durch Konfigurationsabweichungen oder fehlende Abhängigkeiten verursacht werden. DevOps-Teams können in Kombination mit einem einheitlichen Satz von Praktiken und Tools arbeiten, um Anwendungen und ihre unterstützende Infrastruktur schnell, zuverlässig und skalierbar bereitzustellen.
Vorteile von Infrastructure as Code

- Minimierung von Schatten-IT: Eine schnelle Reaktion auf neue IT-Anforderungen durch IaC-gestützte Bereitstellung gewährleistet eine höhere Sicherheit, die Einhaltung der IT-Standards des Unternehmens und hilft bei der Budgetierung und Kostenzuordnung.
- Zufriedene Kunden: Die Bereitstellung einer hochwertigen Servicekomponente innerhalb kurzer Zeit führt zu Kundenzufriedenheit und einer verbesserten Wahrnehmung der IT innerhalb eines Unternehmens.
- Reduzierung der Betriebskosten: Ein Unternehmen kann ein vollständig getestetes und konformes neues IT-Infrastruktur-Asset in wenigen Minuten entweder mit minimalem oder gar keinem menschlichen Eingriff konfigurieren und bereitstellen. Dies spart eine enorme Menge an Arbeitszeit und sicherheitsbezogenem finanziellem Risikopotenzial.
- Reduzierung der Investitionsausgaben: Ein Entwickler, der die Aufgabe mehrerer Teammitglieder allein erledigt, insbesondere im Kontext von DevOps, kommt den Investitionsausgaben des Projekts sehr zugute.
- Standardisierung: Wenn die Erstellung neuer Infrastruktur codiert ist, gibt es Konsistenz in den Anweisungen und Standardisierung.
- Sicherere Änderungshandhabung: Die Standardisierungssicherung ermöglicht sicherere Änderungen mit geringeren Abweichungsraten.
Herausforderungen bei der Verwendung von Infrastructure as Code
- Organisatorischer Widerstand gegen Veränderungen: Die größten organisatorischen Herausforderungen ergeben sich aus Budgetbeschränkungen, da diese die Fähigkeit einer Organisation beeinträchtigen können, Mitarbeiter einzustellen oder umzuschulen, was zu einem allgemeinen Widerstand gegen Veränderungen führt.
- Der Mangel an internem Fachwissen: Der Mangel an internem Fachwissen kann ein technisches Hindernis darstellen.
- Mangel an Werkzeugen, Fähigkeiten und die Angst vor Kontrollverlust: Da IaC-Sprachen eher codeartig als skriptartig sind, fühlen sich Entwickler im Allgemeinen wohler damit, aber dies stellt Probleme für das Ops-Team dar. Ops ist mehr besorgt über Konfigurationskontrollkonflikte, da sie traditionell die gesamte Kontrolle über Konfigurationen hatten.

Infrastructure as Code Tools

- Die Open-Source-Engine Puppet betont die Unterstützung des Konfigurationsmanagements auf zahlreichen Plattformen, so dass, wenn ein System per IP erreichbar ist, es konfigurierbar sein muss.
- Puppet Enterprise erweitert das Open-Source-Puppet und bietet eine webbasierte Benutzeroberfläche, um Einblick in Konfigurationen, Abhängigkeiten und Ereignisse zu ermöglichen.
- Die Open-Source-Engine Chef nutzt einen imperativen Ansatz mit Unterstützung für verschiedene Betriebssysteme, Container und Cloud-Dienste.
- Chef Automate baut auf der Open-Source-Automatisierungs-Engine Chef auf, die die jeweiligen Projekte von Habitat und InSpec integriert und eine webbasierte GUI und ein Dashboard für die Compliance-Transparenz bietet.
- Das Open-Source-Projekt Salt bietet die Möglichkeit, die modulare Software mit oder ohne Agenten und mit Push- oder Pull-Prozessen auszuführen.
- SaltStack Enterprise baut auf dem Open-Source-Angebot Salt auf und bietet Ihnen eine Enterprise-GUI und API für die Integration.
- Normation Professional Services verkauft Plug-ins für die Unterstützung von Window/AIX, Auditing und die Integration von HTTP-Datenquellen.
- Rudder ist eine Open-Source-Automatisierungsplattform, die den Schwerpunkt auf kontinuierliche Zuverlässigkeit legt.
- Das Open-Source-Projekt Ansible betont Minimalismus und einfache Bedienung. Es benötigt keine Agenten und stützt sich auf SSH und WinRM, um Mitgliedsknoten fernzusteuern, was die Ressourcennutzung und den potenziellen Netzwerkverkehr begrenzt.
- Ansible Tower ist eine Enterprise-Lösung für Ansible, die den Schwerpunkt auf die Verbesserung der Analyse- und Compliance-Funktionen des Open-Source-Projekts legt.
- Microsoft Azure Automation ist eine SaaS-basierte Suite für die Prozessautomatisierung.
- Microsoft PowerShell DSC ist eine Konfigurationsmanagement-Ausführungs-Engine, die hauptsächlich für Windows entwickelt wurde und seit kurzem auch Linux und MacOS unterstützt.
- CFEngine Community Edition ist eine Open-Source-Automatisierungs-Engine, die als der Vater des modernen Konfigurationsmanagements gilt.
- Die Enterprise-Version von CFEngine bietet eine GUI/ein Dashboard zur Verwaltung und Überwachung des Knotenzustands, eine benutzerbasierte und rollenbasierte Verwaltung, eine umfangreichere Berichterstattung, Asset-Management-Funktionen und Module zur Unterstützung von AIX und Windows
Infrastructure as Code für Drupal
Eine Digitalagentur zeigte, wie man den gesamten Bereitstellungsprozess von Anfang bis Ende mithilfe von Ansible automatisiert. Ansible ist agentenlos, hat ein großartiges Ökosystem und die YAML-Syntax ist leicht zu lesen, zu verstehen und zu warten. Dies könnte auch mit jedem anderen Provisionierungstool wie Chef oder Puppet automatisiert werden.

Das Projekt umfasste die Integration der Ansible-Playbooks in ihre Codebasis. Sie wird zusammen mit dem Drupal-Code gespeichert. Außerdem gilt es in der gesamten Branche als bewährte Methode, Infrastruktur und Bereitstellung als Teil des Codes zu betrachten. Es handelt sich immer noch nicht um ein technisch 100%iges Infrastructure-as-Code-Setup, da sie nur die Provisionierungsskripte eingecheckt haben und nicht den Code, um die eigentlichen Server zu starten. Die Playbooks gehen davon aus, dass die Server bereits mit Docker vorhanden sind, Docker Compose installiert ist und SSH-Zugriff besteht.
Dieses Setup machte den Bereitstellungsprozess konsistent und wiederholbar, da jeder Entwickler mit den erforderlichen Berechtigungen im Team das Skript ausführen und jedes Mal die gleichen Ergebnisse erzielen konnte. Wenn der Build fehlschlägt, wird außerdem laut und deutlich angezeigt, wo genau etwas schief gelaufen ist.
Herausforderungen im Projekt
Sie garantierten keinen Rollback für diesen Prozess. Wenn Sie beispielsweise eine Bereitstellung durchführen und diese fehlschlägt, müssen Sie den Rollback auf den vorherigen Zustand manuell durchführen. Es werden jedoch DB-Backups gespeichert. Es wäre also keine schwierige Aufgabe, einen Rollback-Mechanismus mit dem Tag Rollback und einigen Parametern hinzuzufügen, z. B. auf welchen Commit zurückgesetzt werden soll, welche DB zurückgesetzt werden soll usw.
Durchzuführende Schritte
Ein wichtiger Vorläufer der Automatisierung ist die Dokumentation und ein Skript für jeden Schritt. Sie teilten die Aufgaben in zwei Kategorien ein, nämlich
- Einrichten des Systems, z. B. Erstellen von DB-Backup-Verzeichnissen
- Ausführen der DB-Updates über Drush
Ansible hat das Konzept von Tags, für die 2 Tags definiert wurden, nämlich 'setup' und 'deploy'.
Die Liste der reinen Setup-Aufgaben umfasste:
- Erstellung eines Verzeichnisses für die Speicherung von DB-Dateien
- Erstellung eines Verzeichnisses zur Speicherung von DB-Backups
- Erstellung eines Verzeichnisses zur Speicherung von Datei-Backups
Die Liste der Aufgaben für Setup und Bereitstellung umfasste:
- Erstellung eines Backups von Dateien und DB
- Klonen des korrekten Codes, d. h. des angegebenen Branch oder Bleeding Edge.
- Erstellung einer .env-Datei
- Erstellung und Start der neuesten Container für alle Dienste
- Ausführen von Composer Install und DB-Updates, Importieren der Konfiguration aus Dateien und Leeren des Caches (Drupal-spezifisch)
Es ist wichtig, Ihre Server vor der Bereitstellung der Anwendung zu sichern. Ansible hilft bei der verschlüsselten Speicherung sensibler Informationen wie DB-Anmeldeinformationen, des SSH-Schlüsselpaars und der Server-Benutzeranmeldeinformationen. Dieses Setup ermöglicht es Ihnen, auf einfache Weise Produktionsrepliken oder Nicht-Produktionsumgebungen zu erstellen.
In den kommenden Jahren
IaC hat eine glänzende Zukunft mit seiner Fähigkeit, Rechenressourcen bereitzustellen und zu verwalten. Obwohl es seine eigenen Implementierungsbarrieren mit sich bringt, überwiegen die Vorteile, die es bietet, die Herausforderungen, vor denen es derzeit steht, bei weitem.
Da die Tools und Frameworks, die mit Infrastructure as Code verbunden sind, ausgereift sind, hat es das Potenzial, zum Standard für die Bereitstellung und Steuerung von Infrastruktur zu werden.

Technavio-Analysten prognostizieren, dass der globale DevOps-Plattformmarkt im Zeitraum von 2018 bis 2022 eine CAGR von mehr als 20 % verzeichnen wird. Einer der wichtigsten Trends, die auf dem globalen DevOps-Plattformmarkt 2018-2022 zu beobachten sind, ist die Zunahme der Akzeptanzraten von Infrastructure as Code. DevOps-Tools werden von den Unternehmen implementiert, um von der manuellen Konfiguration der IT-Infrastruktur auf eine programmierbare IT-Infrastruktur umzusteigen.
Die Zunahme der Akzeptanzraten von Infrastructure as Code ist ein wichtiger Trend auf dem globalen DevOps-Plattformmarkt.
Der Bericht führt weiter aus, dass einer der wichtigsten Gründe für das Wachstum des globalen DevOps-Plattformmarktes die Notwendigkeit ist, die Markteinführungszeit zu verkürzen. Es wird prognostiziert, dass die Region Asien-Pazifik die maximale Steigerung des Marktanteils des globalen DevOps-Plattformmarktes verzeichnen wird. Die Regionen Amerika und Europa-Naher Osten-Afrika, die derzeit einen großen Marktanteil halten, werden im Prognosezeitraum einen Rückgang des Marktanteils verzeichnen.
Fazit
Kundenorientierte Technologie überträgt die umfassendere Aufgabe des Service Designs auf das Infrastruktur- und Betriebsteam. I&O-Führungskräfte sollten das Design für das gesamte System interagierender Teile besitzen, die aus einem reichhaltigen und dynamischen softwaredefinierten Ökosystem stammen. Infrastructure as Code birgt ein großes Potenzial für die Disruption der traditionellen Infrastrukturarchitekturstrategie und kann für Drupal-Bereitstellungen wirksam sein.
Mit jahrelanger Expertise in der Drupal-Entwicklung bietet Opensense Labs seinen Partnern ein wunderbares digitales Erlebnis.
Sprechen Sie mit unseren Drupal-Experten unter [email protected], um zu erfahren, wie wir Infrastructure as Code mit Drupal implementieren können, um Ihre digitalen Transformationsbemühungen zu unterstützen.
Abonnieren
Verwandte Blogs
Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…
Erklärbare KI-Tools: SHAPs Stärke in der KI

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…
KI-Chatbots: Präzision und Persönlichkeit in Perfektion

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…