image

AWS CDK

Entwickelt mit:

Infrastructure as Code

In einem Kundenprojekt wurde ich gebeten, eine Serverless Solution, zu AWS CDK zu migrieren. In diesem Zuge wurde der Deployment-Prozess auf die neuen CDK Pipelines für Continuous Integration and Continuous Deployment (CI/CD) umgestellt.

Wann immer einen Commit für den App-Quellcode in AWS CodeCommit gemacht wird, erstellt, testet und verteilt CDK Pipelines automatisch die neue Version der gesamten Serverless App auf ein definiertes Konto.

Da die CI/CD Pipeline selbst ebenfalls Teil des AWS CDK Stacks ist, passt sich Pipeline in einem selbst mutierenden Prozess an.


Die Herausforderung

Standardisierung
Das Produktionssystem teilte seine Umgebung mit anderen Projekten. Ebenfalls hatten Teammitglieder über die Konsole Zugriff auf die Produktionsumgebung. Eine klare Trennung in einzelne Accounts für die jeweils Projektumgebung sowie standardisierte Zugriffsrichtlinien für Teammitglieder waren erforderlich.

Migrieren
Die zuvor erstellten Ressourcen und ihre Daten mussten in die separaten Produktionsumgebung verschoben und wiederhergestellt werden.


Die Vorteile für meinen Kunden

Cross-Account Deployments
Der CloudFormation Stack der App kann jetzt von einem separaten Nicht-Produktionskonto aus bereitgestellt werden. Teammitglieder benötigen keinen Zugriff mehr auf die Prod-Umgebung, um Deployments vorzunehmen. Dies minimierte das Risiko von Stack-Drift oder versehentlichem Löschen von Ressourcen.

Vollautomatisierter CI/CD-Prozess
Durch die Migration des deployment Prozesses von CloudFormation auf CDK-Pipelines, kann das Projekt von allen Vorzügen einer CI/CD-Pipeline profitieren. Änderungen am System können problemlos in jeder Testumgebung bereitgestellt werden, ohne dass manuelle Schritte beim Erstellen, Testen und Bereitstellen erforderlich sind.


Die Lösung

CDK Pipelines ist ein sich selbst aktualisierender CI/CD-Prozess für Infrastruktur-as-Code-Systeme. Dies bedeutet, dass alle Änderungen am Anwendungs-Stack oder der CDK Pipeline selbst automatisch zu einer Aktualisierung des Anwendungs-Stacks oder zu einer Neukonfiguration der Bereitstellungspipeline führen.

Das folgende Bild zeigt eine Pipeline, die als CDK Pipeline erstellt wurde:

CDK Pipeline with CodePipeline

Um zu sehen, wie dieser Prozess im Detail funktioniert, gibt es einen guten Artikel im AWS Developer Blog.


Anmerkung

Für mich klingt das ein bisschen wie Baron Münchausen,.

  • Autor

    Andreas
  • Categories

    DevOps, CI/CD, AWS CDK, CloudFormation, Serverless