Was ist Infrastructure as Code?

Infrastructure as Code (IaC)

Mithilfe von Infrastructure as Code können Unternehmen Änderungen und Konfigurationen in einer Cloud-Umgebung effizienter steuern. IaC bietet DevOps-Verfahren, die es Entwicklungs- und Operations-Teams ermöglichen, enger an der Bereitstellung von virtuellen Computern, virtuellen Netzwerken um diese herum und Anwendungen auf diesen zusammenzuarbeiten.

Imperativ oder deklarativ

Eine der Entscheidungen, die Sie treffen müssen, wenn Sie IaC nutzen wollen, ist die, ob Änderungen an Ihrer Umgebung durch imperative oder deklarative Automatisierung vorgenommen werden sollen. In den meisten Fällen ist IaC deklarativer Natur. Vereinfacht ausgedrückt, geht es bei imperativer Automatisierung um die Funktionsweise des Programms und bei deklarativer um die Ziele, die das Programm erfüllen soll.

Um zwingende Automatisierungsänderungen an Ihrer Infrastruktur vorzunehmen, können Sie ein Command Line Interface (CLI) verwenden. Dabei werden die Änderungen an der Cloud mithilfe eines Skripts zuerst innerhalb eines Containers durchgeführt, dann an den virtuellen Computern (VMs) und schließlich in der virtuellen privaten Cloud. Dies ist eine detaillierte Checkliste. Die Schritte und das Skript sind erneut auszuführen, wenn die Konfiguration nach der Übermittlung an mehrere Computer wieder geändert werden muss.

Eine deklarative Automatisierung setzt voraus, dass ein Ziel festgelegt wird. In diesem Fall verwenden Sie nicht die CLI, um die konkreten Konfigurationsschritte für einen virtuellen Computer anzugeben. Stattdessen geben Sie beispielsweise an, dass Sie einen virtuellen Computer mit angefügter Domäne benötigen. Anschließend übernimmt die Automatisierung. Beim deklarativen Ansatz können Sie einfacher festlegen, welche Aufgaben die Automatisierungstools umsetzen sollen.

Veränderbar oder nicht veränderbar

Konfigurationsverschiebungen stellen bei der Konfiguration von Infrastrukturkomponenten ein großes Problem dar. Sie treten auf, wenn die Infrastruktur veränderbar ist. Das bedeutet, dass sie anfällig für Änderungen ist. Wenn sich eine Komponente der Infrastruktur ändert, ist sie mit den übrigen Komponenten nicht mehr synchronisiert. Im Hinblick auf die Sicherheit ist es entscheidend, dass Konfigurationen in der gesamten Infrastruktur konsistent angewendet werden.

Eine nicht veränderbare Infrastruktur kann nach der Bereitstellung nicht mehr geändert werden. Änderungen treten zwar auf, aber sie werden an den ursprünglichen deklarativen Anweisungen vorgenommen. Sobald die Änderungen umgesetzt sind, werden alle vergleichbaren Geräte oder Konfigurationen konsistent geändert. Aus der Sicherheitsperspektive ist Konsistenz zwingend erforderlich. Hackern reicht eine einzige Sicherheitslücke, um in Ihr System einzudringen. Wenn Sie alle Sicherheitslücken auf die gleiche Weise schließen, machen Sie es Angreifern schwerer.

DevOps

Wenn Anwendungen entwickelt, getestet und in einer Produktionsumgebung bereitgestellt werden, müssen Entwickler häufig auf die Produktion warten – und umgekehrt. Eine glattere, schnellere Bereitstellung ist möglich, wenn die Konfigurationen von Netzwerk und virtuellen Computern durch ein kontrolliertes System vorgenommen werden. Entwickler können Container oder virtuelle Computer dann über eine automatisierte Anforderung mit dem gleichen Maß an Stabilität anfordern, das für den Code gilt. Dies führt zu einer besseren Versionierung, die leichter nachzuvollziehen ist.

Weiterführende Artikel

Weiterführende Forschung