AWS CloudFormation: Neues Feature verkürzt Debugging
Neue Opt-In-Funktion setzt Rollback von Ressourcen in AWS CloudFormation aus
Neue Opt-In-Funktion setzt Rollback von Ressourcen in AWS CloudFormation aus
AWS CloudFormation (CFN) ermöglicht eine einfache Modellierung von AWS- oder Drittanbieter-Ressourcen. Kam es dabei zu Fehlern, musste bisher ein umfassendes Rollback zum letzten funktionierenden Status vorgenommen werden. Ein neues Feature für AWS CloudFormation soll nun eine einfachere Fehlerbehebung ohne komplettes Rollback ermöglichen. Wir haben das neue Feature umfassend getestet!
AWS CloudFormation ist einer von vielen Amazon Web Services (AWS), die für eine moderne IT-Entwicklung in der Cloud zur Verfügung stehen. AWS- oder Drittanbieter-Ressourcen lassen sich mit AWS CloudFormation, einem Infrastructure-as-Code (IaC)-Tool, einfach modellieren und über den gesamten Lebenszyklus hinweg schnell und konsistent bereitstellen und verwalten.
Bei Arvato Systems verwenden wir AWS CloudFormation in den meisten Kundenprojekten für die Bereitstellung aller AWS-Ressourcen. Dies ermöglicht uns, einen wiederholbaren, versionierbaren Zustand der Kundeninfrastruktur zu erreichen.
Für eine serverlose Anwendung werden z.B. DynamoDB-Datenbank, API-Gateway, Lambda-Funktionen und die zugehörigen Berechtigungen in einem CloudFormation-Template definiert und im Ziel-Account bereitgestellt. Dies geschieht zunächst in einer Testumgebung und wird nach erfolgreichem Test mit einem identischen Template in einer Produktionsumgebung eingerichtet. Da die Ressourcennamen oder -größen in den verschiedenen Umgebungen unterschiedlich sein können, bietet CloudFormation die Möglichkeit, diese in den verschiedenen Phasen durch Parametrisierung entsprechend anzupassen.
Das CloudFormation Template beschreibt auch die Konfiguration der gewünschten Ressourcen und ihrer Abhängigkeiten in einem Stack. Durch die Verwendung eines Templates kann ein kompletter Stack als eine Einheit beliebig oft erstellt, aktualisiert und gelöscht werden, anstatt die Ressourcen einzeln verwalten zu müssen. So können Stacks über mehrere AWS-Konten und Regionen hinweg verwaltet und bereitgestellt werden.
Da es sich bei AWS CloudFormation um ein natives AWS-Tool handelt, können wir es ohne Drittanbieter-Tools problemlos nutzen. Aus diesem Grund kommt dieser Service in unseren Kundenprojekten häufig zum Einsatz.
Während die Wiederholbarkeit der Infrastruktureinrichtung ein wichtiger Bestandteil der Stabilität ist, die für eine robuste Produktionsumgebung erforderlich ist, arbeitet AWS selbst ständig auf Basis von Kundenfeedback an der Verbesserung des Services.
CloudFormation's neuestes Feature zur Verkürzung des Entwicklungszyklus mit Stack-Failure-Optionen.
Die Erstellung von Ressourcen in AWS CloudFormation kann zeitaufwändig und fehleranfällig sein. Je nach Art und Anzahl der Ressourcen kann dies mehrere Minuten oder sogar Stunden dauern. Selbst wenn die Syntax einer Vorlage vor der Bereitstellung getestet wird, können während des eigentlichen Builds noch Fehler auftreten. Bisher bestand das Verhalten von CloudFormation darin, den Build abzubrechen und auf den letzten Arbeitszustand zurückzusetzen. Die neue Funktion zur Deaktivierung des Rollbacks verhindert nun diesen automatischen Rollback erfolgreich bereitgestellter Ressourcen, wodurch zuvor fehlgeschlagene Ressourcen erstellt oder aktualisiert werden können.
Wir haben die neue Funktion in unseren Entwicklungsprozessen ausgiebig getestet: Das neue Feature ermöglicht eine wesentlich zeitsparendere Korrektur von Fehlern. Insbesondere bei Ressourcen mit langer Entwicklungszeit wie CloudFront oder EC2-Instanzen mit Startskripten, die am Anfang eines größeren Templates stehen, können Fehler nun deutlich schneller behoben werden. Die verkürzte Durchlaufzeit sorgt für mehr Effizienz, da der Entwickler nicht immer zwischen verschiedenen Aufgaben hin- und herspringen muss, um seine Zeit effektiv zu nutzen, sondern sich auf das jeweilige Problem konzentrieren kann. Die neue Funktion muss nicht global gesteuert werden, sondern kann pro Stack ein- oder ausgeschaltet werden. Außerdem hat man die Möglichkeit, im Falle eines Fehlers ohnehin ein vollständiges Rollback zu aktivieren.
Wünschenswert aus unserer Sicht wäre die Verfügbarkeit des Features in der CodePipeline, damit es auch in der Automatisierung genutzt werden kann. Wir haben dieses Feedback an das CloudFormation-Team weitergeleitet, das diese Funktionsanforderung derzeit prüft.
Insgesamt scheint die neue Funktion gut durchdacht zu sein. Die Benutzeroberfläche ist sauber und intuitiv. Die Zeitersparnis ist in einigen Fällen beträchtlich. Wir werden unseren Kunden auf jeden Fall empfehlen, sie weiterhin zu nutzen, um die Debugging-Zeiten zu verkürzen.
Hier können Sie mehr zum Feature auf dem AWS Blog nachlesen.