Blog

Rationalisierung von Arbeitsabläufen mit Funktionsverzweigungen und logischen Stapeln

Joris Conijn

Joris Conijn

Aktualisiert Oktober 14, 2025
4 Minuten

Effiziente Zusammenarbeit und optimierte Bereitstellungsprozesse sind in modernen Entwicklungsworkflows von entscheidender Bedeutung, insbesondere für Teams, die an komplexen Projekten arbeiten. Feature Branches und stapelbasierte Entwicklungsansätze bieten leistungsstarke Möglichkeiten, um Änderungen zu isolieren, effektiv zu testen und eine nahtlose Integration sicherzustellen. Die richtigen Strategien können jedoch die Verwaltung von Ressourcen, Abhängigkeiten und Umgebungen zu einer Herausforderung machen. In diesem Blog erfahren Sie, wie Sie die Arbeitsabläufe von Feature Branches optimieren, gekapselte logische Stacks beibehalten und bewährte Verfahren wie die Benennung von Ressourcen anwenden, um die Übersichtlichkeit, Skalierbarkeit und Kosteneffizienz zu verbessern.

Arbeiten mit Feature-Zweigen

Ich habe eine starke Vorliebe für die Kapselung von Dingen in logischen Stapeln. Diese Stacks sollten eine minimale Anzahl von Abhängigkeiten haben. Und Sie sollten in der Lage sein, mehrere Instanzen einzusetzen. Lassen Sie mich zunächst erklären, warum Sie mehrere Instanzen desselben Stacks bereitstellen möchten. Die Antwort ist ganz einfach! Feature-Zweige! Wenn Sie in einem Team mit mehreren Personen arbeiten, arbeiten Sie möglicherweise an verschiedenen Stories. Daher möchten Sie nicht dieselbe Umgebung mit Ihren Änderungen aktualisieren. Meine Änderung könnte Ihre Änderung kaputt machen und andersherum. In diesem Fall wird es schwieriger herauszufinden, warum etwas fehlgeschlagen ist. Wenn Sie Ihre eigene Umgebung bereitstellen, wirken sich Ihre Änderungen nur auf Ihre Umgebung aus. Wenn Sie fertig sind, können Sie Ihre Änderungen gründlich testen, bevor Sie sie in den Hauptzweig einbinden.

Arbeiten mit mehreren Stapeln

Sie können mehrere Stacks verwenden, jeder mit seinem eigenen Verantwortungsbereich, um die Dinge klein und einfach zu halten. Dies birgt jedoch auch die Gefahr, die Kapselung aufzubrechen und Abhängigkeiten einzuführen, wie z.B. eine RDS-Datenbank. Sie müssen sie in einem Basis-Stack erstellen und an andere Stacks weitergeben. Dies ist erforderlich, weil die Komponenten in den anderen Stacks den Endpunkt benötigen, um sich mit ihm zu verbinden, wodurch eine Abhängigkeit entsteht.

Dieses Beispiel gilt für die traditionelleren Lift-and-Shift-Ansätze. Wir raten jedoch immer zu einer Modernisierung, um alle Vorteile der Cloud nutzen zu können. Und warum? Einfach: In unserem Beispiel benötigten wir eine RDS-Instanz. Wenn Sie eine RDS-Instanz pro Stack erstellen, haben Sie mehrere Instanzen und müssen pro RDS-Instanz bezahlen, was die Kosten in die Höhe treibt. Wenn Sie zu Serverless wechseln, zahlen Sie nur für die Nutzung. Dadurch können Sie die Datenbank in Ihre Stacks verlagern und die Abhängigkeit aufheben. Ich sage ausdrücklich Option, denn bei relationalen Datenbanken ist es aufgrund der Natur relationaler Datenbanken nicht immer möglich, die Datenbank in zwei Teile aufzuteilen.

Verwenden Sie eine korrekte Benennung für Ihre Ressourcen.

CloudFormation kann die Benennung von Ressourcen für Sie übernehmen. Ein Benennungsschema folgt diesem Muster: StackName + LogicalResourceId + RandomizedString. Dadurch wird sichergestellt, dass Sie keine doppelten Ressourcennamen erhalten. Bei einigen Ressourcen sind Duplikate möglich, bei anderen nicht. Ein garantiert eindeutiger Name ist also aus der Perspektive der Funktionsverzweigungen perfekt. Aber aus Sicht der Verwaltung ist das schlecht. Die meisten Namen werden nach einigen Zeichen abgeschnitten, und die generierten langen Namen sind nicht sehr aussagekräftig.

Durch die Einführung eines Präfixes können Sie einen eindeutigen Namen haben und Ihre Stacks trotzdem mehrfach einsetzen. Sie übergeben das Präfix einfach als Parameter und stellen es jedem Ressourcennamen voran. Für eine IAM-Rolle könnte das zum Beispiel Joris-CheckoutProcess sein. Der Name CheckoutProcess beschreibt, worum es sich handelt, nämlich um eine Rolle, die z.B. von einer Lambda-Funktion verwendet wird, die den Checkout verarbeitet. Das Präfix macht sie eindeutig und gibt Auskunft darüber, wer die Ressource besitzt und erstellt hat. Mit diesem Muster vermeiden Sie die Erstellung einer Schnitzeljagd.

Fazit

Die Einführung von Funktionszweigen und logischen Stapeln ist eine hervorragende Möglichkeit, die effiziente und fehlerfreie Zusammenarbeit in Teamumgebungen zu fördern. Sie können Ihre Entwicklungsabläufe verbessern, indem Sie isolierte Umgebungen für einzelne Änderungen bereitstellen, serverlose Lösungen einsetzen, um Abhängigkeiten zu reduzieren, und beschreibende Namenskonventionen implementieren. Diese Praktiken rationalisieren die Fehlersuche und das Testen und sorgen dafür, dass die Ressourcenverwaltung übersichtlich und kosteneffizient bleibt. Ganz gleich, ob Sie Anwendungen modernisieren oder Altsysteme pflegen, mit diesen Strategien können Sie das volle Potenzial der Cloud-basierten Entwicklung ausschöpfen.

Foto von Min An

Verfasst von

Joris Conijn

Joris is the AWS Practise CTO of the Xebia Cloud service line and has been working with the AWS cloud since 2009 and focussing on building event-driven architectures. While working with the cloud from (almost) the start, he has seen most of the services being launched. Joris strongly believes in automation and infrastructure as code and is open to learning new things and experimenting with them because that is the way to learn and grow.

Contact

Let’s discuss how we can support your journey.