Was ist Infrastructure as Code? Automatisieren Sie die Erstellung Ihrer Infrastruktur

Infrastruktur als Code zu behandeln, ist die intelligente und moderne Art, Software in der Cloud bereitzustellen. Hier erfahren Sie, was das ist und warum es besser ist. [...]

(c) pixabay.com

Da immer mehr Unternehmen auf die Cloud umsteigen, wird die Fähigkeit, einen physischen Server bereitzustellen und zu konfigurieren, immer unwichtiger für die Entwicklung und Bereitstellung moderner Software.

In der komplexen, softwaregesteuerten Welt von heute, in der man die Computerinfrastruktur oft weder sieht noch hört, ist die Fähigkeit, diese Infrastruktur mit Hilfe von deklarativem Code statt mit manuellen Konfigurationen oder sogar Skripten bereitzustellen und zu verwalten, für den Betrieb von Anwendungen im Webmaßstab unerlässlich.

Eine kurze Geschichte von Infrastructure as Code

Während Systemadministratoren bereits seit den 1990er Jahren Skripte zur Verwaltung ihrer Infrastruktur verwenden, hat sich die Praxis, Infrastructure as Code (IaC) zu behandeln, erst Ende der 2000er Jahre durchgesetzt, als Ingenieure wie der Devops-Pionier Andrew Clay-Shafer, der Chef-Mitbegründer Adam Jacob und der Puppet-Gründer Luke Kanies begannen, diese Terminologie zu verwenden.

In einer Welt verteilter Anwendungen war die manuelle Anpassung von Servern niemals skalierbar, und die Skripterstellung hatte ihre eigenen Grenzen, so dass die Möglichkeit, die Infrastrukturbereitstellung zu automatisieren, in den Anfangstagen der Cloud für viele First Mover zu einem zentralen Bedürfnis wurde.

Heute wird die zugrunde liegende Infrastruktur in der Regel als Code bereitgestellt, dank beliebter früher Tools in diesem Bereich wie Chef, Puppet, SaltStack und Ansible. Aber die Technologie entwickelt sich schnell, und die Dinge haben sich seither weiterentwickelt. Im Folgenden erläutern wir die Grundlagen von Infrastructure as Code und warum es heute die Grundlage moderner Softwareentwicklungspraktiken ist.

Infrastructure as Code definiert

In Infrastructure as Code: Dynamic Systems for the Cloud Age erklärt Kief Morris, dass sich Infrastructure as Code auf drei Kernpraktiken beschränkt: „Definieren Sie alles als Code, testen und liefern Sie alles kontinuierlich während der Arbeit, und bauen Sie Ihr System aus kleinen, lose gekoppelten Teilen auf.“

Als Arbeitsdefinition bietet Morris an, dass IaC „ein Ansatz zur Infrastrukturautomatisierung ist, der auf Praktiken der Softwareentwicklung basiert. Er legt den Schwerpunkt auf konsistente, wiederholbare Routinen für die Bereitstellung und Änderung von Systemen und deren Konfiguration“.

In der Praxis bedeutet dies in der Regel, dass Devops-Teams Änderungen an einer Umgebungsbeschreibung und der Version des Konfigurationsmodells mithilfe einer gut dokumentierten Sprache wie JSON oder YAML vornehmen. Sobald diese Umgebung konfiguriert ist, können Änderungen an der Quelle und nicht am Ziel vorgenommen werden, was sicherere und regelmäßigere Änderungen an der Infrastruktur in einem weitaus größeren Umfang ermöglicht.

Wo sich Infrastructure as Code und Devops treffen

Als Möglichkeit zur Automatisierung der Erstkonfiguration und der nachfolgenden Änderungen ist Infrastructure as Code ein wichtiger Bestandteil moderner Devops-Praktiken, bei denen Entwickler und Betreiber Hand in Hand arbeiten müssen, um Software schneller und häufiger bereitzustellen. Durch die Automatisierung und Versionierung von Infrastruktur-Builds können IaC-Tools dazu beitragen, dass sich Anwendungsentwickler auf das konzentrieren können, was sie am besten können, und dass Systemadministratoren sich nicht mehr mit manuellen Prozessen herumschlagen müssen.

Die Verwendung von Code zur Bereitstellung und Wartung der Infrastruktur trägt dazu bei, Entwickler und Betriebsspezialisten zu einem früheren Zeitpunkt im Softwareentwicklungszyklus zusammenzubringen und die Disziplin, Klarheit und Wiederholbarkeit der Softwareentwicklung im Betrieb zu verankern. Da Automatisierung und Zusammenarbeit zu den wichtigsten Grundsätzen der Devops-Praktiken gehören, werden IaC-Tools auch zu einem zentralen Dreh- und Angelpunkt für die effektive Zusammenarbeit dieses Teams.

Die Vorteile von Infrastructure as Code

Die wichtigsten Vorteile der Behandlung von Infrastructure as Code liegen in der Abkehr von manuellen Prozessen und der Freiheit, die die Automatisierung den Devops-Teams bietet. Dies bringt eine gewisse Kostenersparnis mit sich und kann auch die Geschwindigkeit erhöhen, mit der diese Teams Änderungen an ihren Anwendungen sicher bereitstellen können.

Der Mitbegründer von Simple Thread, Justin Etheredge, schrieb in einem Blogbeitrag aus dem Jahr 2020: „Infrastructure as Code gibt Ihnen die Freiheit, Änderungen vorzunehmen, ohne befürchten zu müssen, dass Sie Dinge in einen nicht wiederherstellbaren Zustand versetzen. Und es gibt Ihnen ein besseres Verständnis dafür, wie die Umgebung so entstanden ist, wie sie ist, was Ihnen mehr Selbstvertrauen gibt, die notwendigen Änderungen vorzunehmen.“

In seinem Buch skizziert Morris sieben wesentliche Vorteile von IaC gegenüber herkömmlichen Bereitstellungsmethoden. Diese sind:

  • Nutzung der IT-Infrastruktur als Grundlage für eine schnelle Bereitstellung von Werten
  • Verringerung des Aufwands und des Risikos von Änderungen an der Infrastruktur
  • Ermöglichung für die Nutzer der Infrastruktur, die benötigten Ressourcen dann zu erhalten, wenn sie sie benötigen
  • Bereitstellung gemeinsamer Tools für Entwicklung, Betrieb und verwandte Funktionen
  • Schaffung zuverlässiger, sicherer und kosteneffizienter Systeme
  • Sichtbarmachen von Governance-, Sicherheits- und Compliance-Kontrollen
  • Verbesserung der Geschwindigkeit bei der Fehlersuche und Fehlerbehebung

Infrastructure-as-Code-Tools

Die Tools, die für die Implementierung von Infrastructure as Code erforderlich sind, lassen sich in zwei Lager einteilen: Konfigurationsorchestrierung und Konfigurationsmanagement.

Die beliebtesten Orchestrierungs-Tools sind AWS CloudFormation, Google Cloud Deployment Manager, HashiCorp Terraform, Microsoft Azure Resource Manager und Pulumi, die es Entwicklern auf unterschiedliche Weise ermöglichen, die Bereitstellung der Infrastruktur zu automatisieren.

Was das Konfigurationsmanagement betrifft, so sind Tools von Drittanbietern wie Ansible, Chef, Puppet und SaltStack nach wie vor beliebte Methoden zur Konfiguration, Speicherung und Automatisierung von Builds virtueller Serverumgebungen, während viele Entwickler Docker für ihre Container-Images verwenden.

Viele dieser Tools können im Tandem verwendet werden, da sich Ansible, Chef, Puppet und SaltStack auf die Verwaltung von Konfigurationen auf einer bereits vorhandenen Infrastruktur konzentrieren, während Provisioning-Tools wie Terraform diese Infrastrukturschicht abstrahieren.

Erste Schritte mit Infrastructure as Code

Die Einführung von Infrastructure as Code ist in der Regel Teil einer umfassenderen organisatorischen Umstellung auf die Cloud und Devops-Praktiken. Auch wenn sich diese Umstellung ziemlich einschüchternd anhört, ist die Implementierung von Infrastructure as Code der Schlüssel zur Modernisierung Ihres Ansatzes zur Erstellung und Ausführung von Software.

„Manchmal kann es etwas länger dauern, Änderungen mit Infrastructure as Code vorzunehmen“, warnt Etheredge, „aber das ist eine der Situationen, in denen man langsamer werden muss, um schneller zu werden. Wenn Sie bei der Durchführung von Änderungen über Ihre Skripte sorgfältig vorgehen, werden Sie bei einem Ausfall oder bei der Fehlersuche zweifellos unzählige Stunden sparen. Außerdem haben Sie viel mehr Vertrauen in Ihre Änderungen, da Sie die Änderungen in einer Testumgebung testen können, anstatt auf gut Glück die Aktualisierung direkt in der Produktionsumgebung durchzuführen. Selbst in kleinen Umgebungen kann sich das enorm auszahlen.

Oder, wie Morris schrieb: „Die Automatisierung Ihrer Infrastruktur ist mit Arbeit verbunden, vor allem, wenn Sie lernen, wie man es macht. Aber wenn man es tut, hilft es einem, Änderungen vorzunehmen, einschließlich des Aufbaus des Systems überhaupt.

*Scott Carey ist der Gruppenredakteur für die Unternehmenstitel von IDG UK und schreibt hauptsächlich für InfoWorld.


Mehr Artikel

News

Bad Bots werden immer menschenähnlicher

Bei Bad Bots handelt es sich um automatisierte Softwareprogramme, die für die Durchführung von Online-Aktivitäten im großen Maßstab entwickelt werden. Bad Bots sind für entsprechend schädliche Online-Aktivitäten konzipiert und können gegen viele verschiedene Ziele eingesetzt werden, darunter Websites, Server, APIs und andere Endpunkte. […]

Frauen berichten vielfach, dass ihre Schmerzen manchmal jahrelang nicht ernst genommen oder belächelt wurden. Künftig sollen Schmerzen gendersensibel in 3D visualisiert werden (c) mit KI generiert/DALL-E
News

Schmerzforschung und Gendermedizin

Im Projekt „Embodied Perceptions“ unter Leitung des AIT Center for Technology Experience wird das Thema Schmerzen ganzheitlich und gendersensibel betrachtet: Das Projektteam forscht zu Möglichkeiten, subjektives Schmerzempfinden über 3D-Avatare zu visualisieren. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*