Per Mausklick kann man bei AWS zum Beispiel einen virtuellen Server (EC2) starten, die Firewall (SecurityGroup) ändern oder auch einen DNS-Eintrag (Route53) setzen. Für den Einstieg ist die Weboberfläche (AWS Management Console) scheinbar perfekt geeignet. Alles funktioniert einfach und schnell. Aber wenn das Setup wächst und wächst, Mitarbeiter wechseln oder nach Monaten nochmal Änderungen vorgenommen werden müssen führt das schnell zu Kopfschmerzen.
Häufige Probleme
- Bei Änderungen an der Konfiguration kommt es zu Fehlern, die den Produktivbetrieb stören.
- Bereitstellung neuer Ressourcen erfordert hohen manuellen Aufwand.
- Bei Sicherheitslücken ist nicht klar, an welchen Stellen ein Update erforderlich ist.
- Fehler fallen in der Testumgebung nicht auf, weil sich diese zu stark von der Produktivumgebung unterscheidet.
- Dokumentation und Realität passen nicht 100%ig zueinander.
Lösung
Die oben beschriebenen Probleme lassen sich mit einer Konfigurationsverwaltung lösen, die perfekt an die Anforderungen der Cloud angepasst ist. Für AWS heißt diese Lösung CloudFormation. Das zugrundeliegende Prinzip heißt Infrastructure as Code. AWS lässt sich nicht nur per Weboberfläche konfigurieren, sondern die Konfiguration kann auch in Form von Code (JSON) abgelegt werden. Mit CloudFormation lässt sich dieser Code dann ausführen und die Konfiguration anwenden.
Das hat verschiedene Vorteile.
- Wissen wandert aus dem Kopf der Mitarbeiter in Code und ist damit dokumentiert und standardisiert.
- Die Konfiguration lässt sich automatisiert und ohne manuellen Aufwand auf verschiedene Umgebungen anwenden (z.B. Test- und Produktivumgebung).
- Die Dokumentation erfolgt nicht in separaten System sondern direkt dort, wo die Konfiguration selbst stattfindet.
- Die Anwendung von Änderungen ist ohne großen Aufwand über AWS Regionen und Konten hinweg möglich.
- Der Code (Vorlage) wird 1:1 in Konfiguration der AWS Ressourcen übersetzt.
- Peer-Review von Änderungen an Konfiguration zur Qualitätssicherung wird möglich.
- Änderungen an Konfiguration werden archiviert und nachvollziehbar.
Prozess
Wie sich Infrastructure as Code in einem Prozess umsetzen lässt zeigt das folgende Schaubild.
Dank der AWS API lässt sich der Prozess einfach mit einem Continuous Integration Server (z.B. Jenkins) standardisieren.
Fazit
In der Cloud eröffnen sich auf im Hinblick auf das Thema Konfigurationsverwaltung neue Möglichkeiten. Mit Infrastructure as Code lassen sich Prozesse im IT-Management neu gestalten. Die Wart- und testbarkeit von Systemen kann so gesteigert werden.