Im Rahmen der Nutzung von Cloud-Infrastrukturen zeigen Erfahrungen, dass Entwickler- und insbesondere Programmierkenntnisse immer wichtiger werden, um Software-defined-Infrastructure-Umgebungen (SDI) aufzubauen. Schließlich werden massiv skalierbare und hochverfügbare Cloud-Infrastrukturen und -Systeme heute und zukünftig konfiguriert, indem sie mit Code oder Skripten programmiert werden – Stichwort: “Infrastructure as Code” (IaC).
Als Teil der digitalen Transformation gehen immer mehr Unternehmen dazu über, ihre individuelle Digital Infrastructure Platform (DIP) zu entwickeln. Dabei handelt es sich um einen Stack von Software- und Service-Komponenten, die auf unterschiedlichen Ebenen für die notwendige Unterstützung sorgen. Insbesondere die Infrastrukturen der großen Public-Cloud-Anbieter (Amazon Web Services, Microsoft Azure, Google Cloud Platform, IBM Softlayer/ Bluemix) sind Programmierbaukästen, mit denen sich virtuelle Infrastrukturen auf den Cloud-Umgebungen entwickeln lassen, auf welchen dann Web-Applikationen und eigene Services betrieben werden.
Damit nimmt auch die Bedeutung von “Infrastructure as Code” stetig zu, da eine Cloud-Anwendung ist nur so viel wert ist wie die Architektur, auf der sie basiert, denn eine Anwendung muss direkt für die jeweilige Cloud-Umgebung entwickelt werden. Dies impliziert, dass Skalierbarkeit und Hochverfügbarkeit von Beginn an mit zu berücksichtigen sind.
Die Cloud-Anwendung muss also in der Lage sein, eigenständig weitere virtuelle Maschinen hochzufahren, wenn mehr Leistung benötigt wird (Skalierbarkeit) beziehungsweise die nicht mehr benötigten virtuellen Maschinen auch selbstständig wieder herunterzufahren. Analog verhält es sich, wenn eine virtuelle Maschine in einen fehlerhaften Zustand fällt. Hierfür muss die Anwendung selbst dafür sorgen, dass entsprechend eine virtuelle Maschine als Ersatz hochgefahren wird und die defekte Maschine aus dem System verschwindet (Hochverfügbarkeit).
Eine Cloud-Anwendung muss daher jede beliebige virtuelle Maschine (VM) einer Cloud-Infrastruktur als Teil der Applikation betrachten. Dies liegt unter anderem daran, dass jederzeit eine VM ausfallen kann und eine andere neu hochgefahren werden muss. Hinzu kommt, dass auch die Daten, auf die eine Anwendung zugreift, sich zwangsläufig nicht mehr an einem einzigen Ort befinden, sondern über die Cloud verteilt gespeichert sind.
Wie sich damit gut erkennen lässt, können die so genannten Legacy-Anwendungen somit nicht ohne weiteres 1:1 in die Cloud migriert und damit skalierbar und hochverfügbar betrieben werden. Stattdessen sollten Anwendungen für die Cloud an die Eigenschaften einer (proprietären) Cloud-Infrastruktur angepasst und bestmöglich auf deren Spezifikation abgestimmt werden. Kurzum müssen native Cloud-Anwendungen von Beginn an für die Cloud entwickelt werden. Dazu gehört es, die Anforderungen der entsprechenden Cloud-Infrastruktur zu analysieren und individuell zu berücksichtigen.
Wie der Name bereits verrät, handelt es sich bei “Infrastructure as Code” um die Entwicklung von Programmcode. Auf Basis von Skripten und durch Tools wie Chef, Puppet, Ansible oder Salt unterstützt, wird beschrieben, wie eine Infrastruktur aussehen soll.
Innerhalb des Skript-Codes wird zum Beispiel festgehalten,
Auf Basis dieses Skripts beziehungsweise des Programmcodes wird somit automatisiert eine IT-Infrastruktur “aufgespannt”, innerhalb derer alle vorab definierten Ressourcen existieren. Die gesamte Infrastruktur ist damit “Software-defined” entwickelt auf Basis von Code, wie man es normalerweise nur aus der Programmierung von Applikationen kennt.
Ein großer Vorteil des “Infrastructure as Code” Konzepts besteht in der Wiederverwendbarkeit beziehungsweise Anpassbarkeit des verwendeten Skripts/Code. Damit besteht die Möglichkeit, dieselbe Infrastruktur zu einem anderen Zeitpunkt oder an einer anderen Stelle (zum Beispiel eine andere Region beim selben Cloud-Anbieter) erneut aufzubauen – und dies durch die erneute “simple” Ausführung desselben Skripts. Zudem lässt sich der Automatisierungsgrad damit auf nahezu 100 Prozent bringen. Zum Zeitpunkt des Deployments der Infrastruktur ist damit keine menschliche Interaktion mehr notwendig. Außerdem lassen sich damit Ausnahmesituationen berücksichtigen, indem die Infrastruktur anhand von weiteren Services und Tools wie “Netflix Simian Army” in der Lage ist, sich “selbständig zu heilen”.
“Infrastructure as Code” ist unter den “coolen Jungs” schon seit mehreren Jahren weit verbreitet und wird in den nächsten ein bis zwei Jahren endgültig auch in der Breite einen wichtigen Platz in IT-Abteilungen einnehmen (müssen), um die Entwicklung und den Betrieb moderner, Cloud-nativer Applikationen zu unterstützen.
Eine wesentliche Erkenntnis der “Infrastructure as Code” Ära folgt der Logik: Der Administrator 1.0 klickt, der Admin 2.0 programmiert. Somit ändert sich auch das Skillset dieser Berufsgruppe maßgeblich. Der moderne Administrator ist ein Entwickler und sollte u.a. die folgenden Kenntnisse besitzen:
Es ist daher nicht verwunderlich, dass z.B. in Berlin derzeit bis zu 20.000 Euro Headhunter-Gebühren bezahlt werden, um Mitarbeiter mit diesem Skillset zu bekommen. Wer sich aus technischer Perspektive tiefer mit dem Thema “Infrastructure as Code” auseinandersetzen möchte, dem ist das Buch “Infrastructure as Code: Managing Servers in the Cloud” von Kief Morris zu empfehlen.
Einsatz von KI-Lösungen wirbelt auch in deutschen Unternehmen die Liste der Top-Technologieanbieter durcheinander.
Echtzeitüberweisungen erfüllen die Erwartungen der Nutzer an Geschwindigkeit, sind jedoch anfällig für spezifische Sicherheits- und…
Application Portfolio Management (APM) verspricht Transparenz, mehr IT-Leistung und Effizienz – theoretisch.
Im Berichtszeitraum Mitte 2023 bis Mitte 2024 wurden täglich durchschnittlich 309.000 neue Schadprogramm-Varianten bekannt.
KI kommt in der Cybersicherheit zum Einsatz, etwa um Abweichungen im Netzwerkverkehr zu identifizieren. Ist…
Ungepatchte und veraltetete Maschinen-Software ist ein beliebtes Einfallstor für Hacker, warnt Nils Ullmann von Zscaler…