Startseite
Themen
Infrastruktur als Code
Infrastructure as Code (IaC) verwendet eine übergeordnete beschreibende Codierungssprache um die Einrichtung der IT\-Infrastruktur automatisieren . Diese Automatisierung macht es für Entwickler überflüssig, Server, Betriebssysteme, Datenbankverbindungen, Speicher und andere Infrastrukturelemente jedes Mal manuell bereitzustellen und zu verwalten, wenn sie eine Softwareanwendung entwickeln, testen oder bereitstellen möchten.
In einer Zeit, in der es für ein Unternehmen nicht ungewöhnlich ist, jeden Tag Hunderte von Anwendungen in der Produktion bereitzustellen – und in der die Infrastruktur als Reaktion auf die Anforderungen von Entwicklern und Benutzern ständig hoch- und heruntergefahren, heruntergefahren und skaliert wird – ist es für ein Unternehmen unerlässlich, die Infrastruktur zu automatisieren, um Kosten zu kontrollieren, Risiken zu reduzieren. und reagieren schnell auf neue Geschäftsmöglichkeiten und Wettbewerbsbedrohungen. IaC macht diese Automation möglich.
IaC ist auch eine wesentliche DevOps-Praxis, die für einen wettbewerbsfähigen Softwarebereitstellungslebenszyklus unerlässlich ist. Es ermöglicht DevOps-Teams, die Infrastruktur schnell auf die gleiche Weise zu erstellen und zu versionieren, wie sie den Quellcode versionieren, und diese Versionen zu verfolgen, um Inkonsistenzen zwischen IT-Umgebungen zu vermeiden, die zu ernsthaften Problemen während der Bereitstellung führen können..
Sai Vennam nimmt das Erscheinungsbild der IaC im folgenden Video "What is Infrastructure as Code?" genauer unter die Lupe:
Die Bereitstellung herkömmlicher IT ist ein zeitaufwändiger und kostspieliger Prozess, der die physische Einrichtung der Hardware, die Installation und Konfiguration der Betriebssystemsoftware und die Verbindung zu Middleware, Netzen,, Speicher usw. durch Fachpersonal erfordert.
Virtualisierung und cloudnative Entwicklung beseitigen das Problem der physischen Hardwareverwaltung und ermöglichen es Entwicklern, ihre eigenen virtuellen Server oder Container bei Bedarf bereitzustellen. Die Bereitstellung einer virtualisierten Infrastruktur lenkt jedoch immer noch den Fokus der Entwickler von der Codierung ab, erfordert immer noch, dass sie die Bereitstellungsarbeit für jede neue Bereitstellung wiederholen, und bietet keine einfache Möglichkeit, Umgebungsänderungen zu verfolgen und Inkonsistenzen zu vermeiden, die sich auf Bereitstellungen auswirken.
Infrastructure as Code (IaC) ist der letzte Schritt, der es Entwicklern ermöglicht, eine vollständig dokumentierte, versionierte Infrastruktur durch Ausführen eines Skripts effektiv zu "bestellen". Die Vorzüge sind genau das, was Sie sich vorstellen können:
Eine wichtige Entscheidung bei der Automatisierung der Infrastruktur mit Infrastructure as Code (IaC) und bei der Auswahl einer IaC-Lösung ist die Frage, ob eine veränderliche oder unveränderliche Infrastruktur eingerichtet werden soll.
Veränderliche Infrastruktur ist Infrastruktur , die geändert oder aktualisiert werden kann, nachdem sie ursprünglich bereitgestellt wurden. Die veränderliche Infrastruktur gibt Entwicklungsteams die Flexibilität, Ad-hoc-Serveranpassungen vorzunehmen, um beispielsweise den Entwicklungs- oder Anwendungsanforderungen besser gerecht zu werden oder auf ein aufkommendes Sicherheitsproblem zu reagieren. Es untergräbt jedoch auch einen wichtigen IaC-Vorteil – die Fähigkeit, die Konsistenz zwischen Bereitstellungen oder innerhalb von Versionen aufrechtzuerhalten – und kann die Verfolgung von Infrastrukturversionen erheblich erschweren.
Aus diesen Gründen werden die meisten IaC als unveränderliche Infrastruktur implementiert – Infrastruktur, die nach der ursprünglichen Bereitstellung nicht mehr geändert werden kann. Wenn unveränderliche Infrastruktur geändert werden muss, muss diese durch neue Infrastruktur ersetzt werden. Da neue Infrastrukturen schnell in der Cloud eingerichtet werden können – insbesondere mit IaC – ist eine unveränderliche Infrastruktur viel praktikabler und praktischer, als es sich anhört.
Unveränderliche Infrastruktur bringt IaC zu einem nächsten logischen Schritt, der IaC im Wesentlichen abhärtet, um die Vorteile, die es bietet, weiter zu gewährleisten. Das alles aber beseitigt Konfigurationsabweichung und macht es noch einfacher, Konsistenz zwischen Test - und Bereitstellungsumgebung zu verwalten. Es erleichtert auch die Wartung und Nachverfolgung von Infrastrukturversionen und das sichere Zurücksetzen auf irgendeine Version, wenn dies erforderlich ist.
Bei der Wahl einer IaC-Lösung ist es auch wichtig, den Unterschied zwischen einem deklarativen und einem imperativen Konzept zur Infrastrukturautomation zu verstehen.
In den meisten Organisationen ist das deklarative Konzept — auch bekannt als das funktionale Konzept — die beste Lösung . .Beim deklarativen Ansatz geben Sie den gewünschten Endzustand der Infrastruktur an, die Sie bereitstellen möchten, und die IaC-Software übernimmt den Rest – das Hochfahren der virtuellen Maschine (VM) oder des Containers, das Installieren und Konfigurieren der erforderlichen Software, das Auflösen von System- und Softwareabhängigkeiten und das Verwalten der Versionskontrolle. Der größte Nachteil der deklarative Methode besteht darin, dass sie normalerweise einen erfahrenen Administrator benötigt, um sie zu installieren und zu betreiben , und diese Administratoren spezialisieren sich oft auf ihre bevorzugte Lösung .
Im imperativen Ansatz – auch als prozeduraler Ansatz bezeichnet – unterstützt Sie die Lösung bei der Vorbereitung von Automatisierungsskripts, die Ihre Infrastruktur Schritt für Schritt bereitstellen. Während dies bei der Skalierung mehr Arbeit zu bewältigen sein kann, kann es für vorhandene Verwaltungsmitarbeiter einfacher sein, sie zu verstehen und Konfigurationsskripts zu nutzen, die Sie bereits vorhanden haben.
Die Wahl eines deklarativen oder imperativen Konzepts ist analog zur Verwendung eines GPS oder zum Befolgen von Schritt-für-Schritt-Anweisungen. Mit einem GPS geben Sie eine Adresse ein und das GPS erledigt den Rest, indem es die schnellste Route aufzeichnet und den Verkehr für Sie vermeidet - aber Sie brauchen wahrscheinlich einen Experten, der Ihnen sagt, warum es die getroffenen Entscheidungen getroffen hat. Die Schritt-für-Schritt-Anweisungen basieren auf persönlichen Erfahrungen; der Anbieter kennt die Route und warum er sie gewählt hat, aber wenn Sie auf Hindernisse stoßen oder die Route optimieren möchten, müssen Sie um Hilfe rufen oder die Arbeit selbst erledigen.
Während viele quelloffene IaC-Tools verfügbar sind , sind die am häufigsten verwendeten Tools Ansible und Terraform:
Ansible ( Mit diesem Link außerhalb von ibm.com) ist ein Open\-Source\-Community Projekt von Red Hat gesponsert, das ausgelegt ist , Organisationen zu helfen, die Bereitstellung, das Konfigurationsmanagement und die Anwendungsbereitstellung zu automatisieren. Mit Ansible, einem deklarativen Automatisierungstool, können Sie "Playbooks" (geschrieben in der YAML-Konfigurationssprache) erstellen, um den gewünschten Status für Ihre Infrastruktur anzugeben, und dann die Bereitstellung für Sie durchführen. Ansible is a vielfach eingesetzt Auswahl für automatisierende Einrichtung von Docker Containern undKubernetes Bereitstellungen.
Terraform ist ein weiteres deklaratives Bereitstellungs- und Infrastruktur-Orchestrierungstool, mit dem Ingenieure die Bereitstellung aller Aspekte ihrer Cloud-basierten und lokalen Unternehmensinfrastruktur automatisieren können.
Terraform arbeitet mit allen führenden Cloudanbietern zusammen und lässt Sie den Ressourcenausbau über mehrere Anbieter parallel automatisieren , egal wo physische Server,DNS-Server , oder Datenbanken liegen. Es kann auch Anwendungen bereitstellen, die in irgendeiner Sprache geschrieben wurden.
Im Gegensatz zu Ansible bietet Terraform keine Konfigurationsverwaltungsfunktionen, arbeitet jedoch Hand in Hand mit Konfigurationsmanagement-Tools (z. B. Cloud Formation), um die Infrastruktur automatisch in dem in den Konfigurationsdateien beschriebenen Zustand bereitzustellen und die Update-Bereitstellung bei Bedarf als Reaktion auf Konfigurationsänderungen automatisch zu ändern.
Weitere Informationen zur Auswahl eines IaC- Tool finden Sie unter "Infrastruktur als Code: Chef , Ansible, Puppet oder Terraform? "
Die IaC-Funktionen von IBM, die anpassbare und gemeinsam nutzbare Vorlagen enthalten, können die Grundlage für die Modernisierung von Anwendungen bilden, unabhängig davon, wo Sie sich auf Ihrem Weg in die Cloud befinden.
Machen Sie den nächsten Schritt:
Machen Sie noch heute die ersten Schritte mit einem IBM Cloudkonto.
Erstellen, modernisieren und verwalten Sie Anwendungen sicher und mit Vertrauen in jeder Cloud
Erstellen, implementieren und verwalten Sie sichere cloudnative Anwendungen über mehrere Geräte, Umgebungen und Clouds hinweg mit DevOps Best Practices.