Definition: Mixtur aus IaaS und DevOps

Was ist Infrastructure as Code (IaC)?

| Autor / Redakteur: Stefan Luber / Florian Karlstetter

Infrastructure as Code ist eng verknüpft mit DevOps und Cloud Computing und dient zur Bereitstellung von IT-Infrastrukturleistungen auf Basis von maschinenlesbarem Code.
Infrastructure as Code ist eng verknüpft mit DevOps und Cloud Computing und dient zur Bereitstellung von IT-Infrastrukturleistungen auf Basis von maschinenlesbarem Code. (Bild: gemeinfrei (© Gerd Altmann) / Pixabay)

Infrastructure as Code stellt IT-Infrastrukturleistungen wie Rechenleistung, Speicher und Netzwerk auf Basis von maschinenlesbarem Code zur Verfügung. Die Infrastruktur wird ähnlich wie Software programmiert. Das IaC-Konzept ist eng mit dem DevOps-Konzept und dem Cloud-Computing-Modell Infrastructure as a Service (IaaS) verknüpft.

Die Abkürzung IaC steht für Infrastructure as Code. Es handelt sich um einen konzeptionellen Ansatz aus dem IT-Umfeld, der die Bereitstellung von Infrastrukturleistungen wie Rechenleistung (Computing), Speicherplatz (Storage) und Netzwerk (Networking) mithilfe von maschinenlesbarem Code ermöglicht. Oft wird IaC auch als programmierbare Infrastruktur bezeichnet.

Zur Bereitstellung von Infrastrukturleistungen müssen keine manuellen Konfigurationsarbeiten ausgeführt werden. Die Infrastruktur wird über Skripte oder Programmfiles beschrieben und automatisiert gemäß den Vorgaben konfiguriert. Das Erstellen der Infrastruktur ist ein mit dem Programmieren von Software vergleichbarer Vorgang.

Infrastructure as Code ist eng mit dem DevOps-Konzept und dem Cloud-Computing-Modell Infrastructure as a Service (IaaS) verknüpft. Vorteile von IaC sind, dass sich Infrastrukturleistungen schneller, kostengünstiger und in beliebigem Umfang bereitstellen, anpassen oder erweitern lassen. Grundlage für Infrastructure as Code bilden virtualisierte Umgebungen und das Cloud Computing. In diesen Umgebungen lassen sich Ressourcen ohne die Notwendigkeit eines manuellen Zugriffs auf die eigentlichen physischen Hardwareressourcen softwaredefiniert verwalten. IaC wird von zahlreichen Cloud-Computing-Anbietern wie Google, Amazon oder Microsoft unterstützt.

Gängige Tools zur Programmierung der Infrastruktur

Zur Programmierung der Infrastruktur kommen Tools wie Terraform, Chef, Puppet, Ansible, Packer, AWS CloudFormation oder der Google Cloud Deployment Manager zum Einsatz. Teils handelt es sich um spezifische Tools für die jeweiligen Cloud-Umgebungen, teils um anbieterübergreifend nutzbare Open-Source-Tools.

Die prinzipielle Funktionsweise von Infrastructure as Code

Um hardwarebasiert Computing-Ressourcen wie Rechenleistung, Speicherplatz oder Netzwerk über maschinenlesbaren Code zu programmieren, ist eine Abstraktionsschicht zwischen Hardware und Konfigurationsmanagementtool notwendig. In der Regel handelt es sich bei diesen Abstraktionsschichten um verschiedene Formen der Virtualisierung. Dem Anwender werden Schnittstellen oder Tools bereitgestellt, über die sich die einzelnen Ressourcen mithilfe einer definierten Code-Sprache programmieren lassen.

Die Programmierung kann je nach Umgebung und Konzept deklarativ oder imperativ erfolgen. Die deklarative Programmierung gibt die genaue Zielumgebung vor, während die imperative Programmierung die auszuführenden Aktionen definiert, um eine gewünschte Zielumgebung zu erstellen. Der Programmcode kann per Push- oder per Pull-Methode umgesetzt werden. Bei der Pull-Methode lädt sich die zu konfigurierende Umgebung den Programmcode selbst von einem Konfigurationsserver. Die Push-Methode sorgt dafür, dass der Konfigurationsserver den Programmcode an die zu konfigurierenden Komponenten überträgt.

Infrastructure as Code im Umfeld des Cloud-Computing-Modells Infrastructure as a Service (IaaS)

Das IaC-Konzept lässt sich zwar grundsätzlich auch in On-Premises-Umgebungen anwenden. Typisch ist die Programmierung von Infrastrukturleistungen per Programmcode allerdings für das Cloud-Computing-Modell Infrastructure as a Service (IaaS). IaC soll die Bereitstellung der IaaS-Ressourcen effizienter gestalten und beschleunigen, da eine manuelle Verwaltung vieler verschiedener Services und Ressourcen im Cloud-Computing-Umfeld kaum mit vertretbarem Aufwand zu leisten ist.

Mit dem richtigen Code lassen sich eine Vielzahl verschiedener Ressourcen schnell und automatisiert gemäß den spezifischen Anforderungen erstellen, verändern oder erweitern. Nahezu alle Cloud-Computing-Anbieter von IaaS-Leistungen stellen entsprechende Schnittstellen oder Tools für die Programmierung der Infrastruktur per maschinenlesbarem Code zur Verfügung.

Infrastructure as Code und DevOps

Eng verknüpft ist IaC mit dem DevOps-Konzept. Der Begriff DevOps setzt sich aus den beiden Wörtern Development und Operations zusammen. Das DevOps-Konzept sorgt für eine engere Verknüpfung von Software-Entwicklung (Development) und IT-Betrieb (Operations). Ziel von DevOps ist es, die Zusammenarbeit von Systemadministration und Software-Entwicklung effizienter zu gestalten und dadurch zu verbessern.

Infrastructure as Code passt perfekt zu diesem Ansatz, da die Programmierung der Infrastrukturleistungen die Systemadministration den Softwareentwicklern zugänglich macht. Die Aufgabenbereiche Entwicklung und Betrieb nähern sich fachlich wie personell einander an. Entwickler erhalten mehr Möglichkeiten, die Infrastruktur zu beeinflussen und Operations ist enger in den Entwicklungsprozess der Software eingebunden. Neue Software lässt sich automatisiert auf speziell hierfür per Programmcode bereitgestellten Ressourcen in den operativen Betrieb überführen. Das Deployment der Software und die Anpassung der Infrastruktur wird in einem einzigen integrierten Prozess realisiert und dadurch wesentlich effizienter, schneller und kostengünstiger.

Tools für Infrastructure as Code

Es existieren zahlreiche IaC-Tools. Teilweise handelt es sich um spezifische Tools zur Programmierung der Infrastrukturleistungen einer bestimmten Cloud-Computing-Umgebung, teilweise um Open-Source-Tools, die mit den Services verschiedener Anbieter nutzbar sind. Kommen Cloud-Computing-Ressourcen verschiedener Anbieter zum Einsatz, sind Tools für ein anbieterübergreifendes Management der Ressourcen zu bevorzugen. In der Regel unterstützen die Cloud-Computing-Anbieter verschiedene IaC-Tools und -Sprachen.

Bekannte und häufig verwendete IaC-Tools sind:

Vorteile von Infrastructure as Code

Das Konzept Infrastructure as Code und die Bereitstellung von Infrastrukturservices über maschinenlesbaren Code bietet zahlreiche Vorteile. Einzelne Hardwarekomponenten müssen nicht mehr aufwendig manuell konfiguriert werden, sondern lassen sich über einen Programmcode automatisiert, schnell, flexibel und in großer Zahl gemäß den individuellen Anforderungen bereitstellen.

Mit dem gleichem Code können viele verschiedene Maschinen fehlerfrei und in gleicher Qualität dimensioniert und konfiguriert werden. Die Kosten zur Konfiguration der Infrastruktur sinken, gleichzeitig ist die Umgebung flexibler und leichter zu skalieren. Durch eine engere Verknüpfung von Betrieb und Softwareentwicklung (DevOps) verkürzen sich Entwicklungsprozesse und die Zusammenarbeit der Prozessbeteiligten verbessert sich.

Weitere Vorteile von Infrastructure as Code sind:

  • Hardware-Setups und Ressourcen werden wie Software testbar
  • selbst komplexe Änderungen der Infrastruktur lassen sich nach der Erstellung des Codes binnen kürzester Zeit durchführen
  • Veränderungen der Ressourcen sind zu beliebigen Zeiten unabhängig vom verfügbaren Personal automatisiert durchführbar
  • das Risiko manueller Bedien- oder Tippfehler lässt sich reduzieren
  • Downtimes der Infrastruktur während der Änderungen oder Anpassungen reduzieren sich
  • einmal erstellter Programmcode kann beliebig oft wiederverwendet werden
  • Infrastrukturservices lassen sich wie Software mithilfe einer Versionsverwaltung managen - Services und Ressourcen sind in beliebigen Versionen wiederherstellbar
  • Infrastructure as Code und Infrastructure as a Service ergänzen sich im Cloud-Computing-Umfeld perfekt
  • Infrastrukturen lassen sich beliebig duplizieren - beispielsweise für Betriebs-, Staging- oder Testumgebungen
  • Tools ermöglichen die anbieterübergreifende Programmierung von Infrastrukturleistungen mit gleicher Programmiersprache
Was ist Function as a Service (FaaS)?

Definition: serverloses Cloud Computing mit Function as a Service

Was ist Function as a Service (FaaS)?

05.10.18 - Function as a Service (FaaS) ist ein serverloses Cloud Computing Angebot. Der Provider stellt dem Anwender einzelne Funktionen bereit, die sekundengenau abgerechnet werden. Die eigentliche Infrastruktur des Anbieters bleibt den Anwendern verborgen. Die Funktionen liefern Ergebnisse zurück und lassen sich für das Entwickeln, Betreiben oder Managen von Applikationen nutzen. lesen

Was ist die Cloud Native Computing Foundation (CNCF)?

Community rund um Microservices und Container

Was ist die Cloud Native Computing Foundation (CNCF)?

10.05.19 - Die Cloud Native Computing Foundation ist ein wichtiges Unterprojekt der Linux Foundation. Die Vereinigung hat sich zum Ziel gesetzt, das Cloud Native Computing zu fördern. Cloud Native Computing basiert auf Open Source Software und nutzt Microservices und Container zur Realisierung der Applikationen. lesen

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

In der Public Cloud auch mit sensiblen Daten arbeiten? Aber sicher!

Anforderungen zum Datenschutz umsetzen

In der Public Cloud auch mit sensiblen Daten arbeiten? Aber sicher!

Unternehmen wissen: Software-Lösungen lassen sich in der Public Cloud schneller und flexibler realisieren, indem sie z.B. auf die bestehenden Infrastruktur-Services von AWS aufsetzen. Ein Anbieter für Softwarelösungen hat dieses Potential an Geschwindigkeit und Flexibilität der Public Cloud erkannt und nach Wegen gesucht, wie Produkte und Angebote auch mit sensiblen Daten in der Public Cloud sicher arbeiten können. lesen

Managed Security für AWS-Umgebungen

Shared Responsibility

Managed Security für AWS-Umgebungen

AllCloud, jüngst als AWS-Migrationskompetenzpartner qualifiziert, erklärt in einem Beitrag, auf welche sechs Punkte man unbedingt achten sollte, um die IT-Sicherheit von auf AWS laufenden Systemen zu gewährleisten. lesen

Gridscale launcht Managed Kubernetes Service

Public-Cloud-Angebot mit fertiger Kubernetes-Umgebung

Gridscale launcht Managed Kubernetes Service

Kubernetes hat sich als Open-Source-Technologie zum De-facto Standard für die Orchestrierung von Microservices und containerisierten Anwendungen und das schnelle Deployment cloud-nativer Workloads entwickelt. Daher steht Public-Cloud-Kunden von Gridscale ab sofort eine betriebsfertig eingerichtete Kubernetes-Umgebung zur Verfügung. lesen

IT-Trends: 6 Empfehlungen für Entscheider

Technologiethemen für 2020

IT-Trends: 6 Empfehlungen für Entscheider

Bereits heute setzen die meisten Unternehmen auf Hybride- oder Multi-Cloud-Lösungen – 2020 werden sich die Themen „On-Premise“ und „Public Cloud“ in ihrer Relevanz noch weiter annähern. Auch Cyberbedrohungen und der Schutz geschäftskritischer Daten sollten 2020 auf der Agenda der Entscheider stehen. lesen

Das beste Zuhause für Anwendungen

Cloud-Migration ohne Strukturveränderung

Das beste Zuhause für Anwendungen

Es gibt bereits viele Überblicke zu Hosting-Plattformen, die sich aber meist auf den Vergleich von Typ X mit Typ Y konzentrieren. Sie berücksichtigen dabei aber nicht unbedingt den Aspekt, warum es auch notwendig ist, den Anwendungen ein neues „Zuhause“ zu geben. lesen

HPE – die „Edge-to-Cloud-as-a-Service“-Company

Kundenkonferenz HPE Discover More 2019

HPE – die „Edge-to-Cloud-as-a-Service“-Company

Auf die Entwicklung einer eigenen Cloud-Plattform hat Hewlett Packard Enterprise verzichtet. Stattdessen bringt sich der Konzern als „Anbieter von As-a-Service-Lösungen vom Netzwerkrand bis zur Cloud“ in Position. lesen

Was ist AWS CloudFormation?

Definition: Infrastructure as Code (IaC) auf Basis von AWS

Was ist AWS CloudFormation?

Mit AWS CloudFormation ist es möglich, Infrastrukturressourcen der Amazon Web Services mit einfachem Textcode zu konfigurieren und bereitzustellen. Es werden zahlreiche Ressourcen der Amazon Web Services unterstützt. Modellierung und Bereitstellung der Services erfolgen über Templates und Stacks. lesen

Die heißesten Cloud-Native-Projekte für das Rechenzentrum

Kubernetes als Basis

Die heißesten Cloud-Native-Projekte für das Rechenzentrum

Die „Cloud 2019 Technology & Services Conference“ steht ins Haus. Im Zuge von Digitalisierung, Cloud-Transformation und Anwendungsmodernisierung kommen Unternehmen um den Einsatz neuster Technologien rund um Container und Cloud Native nicht mehr herum. lesen

Verwaltete Backups in der AWS Cloud

Snapshots und Sicherungen von Amazon-Diensten

Verwaltete Backups in der AWS Cloud

„Wir haben seit einiger Zeit einen datenlastigen Workload in AWS laufen. Welche Möglichkeiten gibt es, um Backups unserer Daten in der AWS Cloud zu erstellen?“ lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46374412 / Definitionen)