Читать книгу Handbuch Infrastructure as Code - Kief Morris - Страница 132
Motivation
ОглавлениеSie erstellen einen Reusable Stack, um mehrere konsistente Instanzen der Infrastruktur zu betreuen. Nehmen Sie Änderungen am Stack-Code vor, können Sie diese auf eine Instanz anwenden und testen und dann die gleiche Code-Version verwenden, um weitere zusätzliche Instanzen zu erstellen oder zu aktualisieren. Sie können neue Instanzen des Stacks mit minimalem Aufwand provisionieren – eventuell sogar automatisch.
Abbildung 6-5: Mehrere Stack-Instanzen werden aus einem einzelnen Reusable-Stack-Projekt erstellt.
Ein Beispiel: Das ShopSpinner-Team hat gemeinsam nutzbaren Code aus verschiedenen Stack-Projekten extrahiert, die alle einen Anwendungsserver nutzen. Teammitglieder haben den gemeinsamen Code in einem Modul untergebracht, das von jedem der Stack-Projekte verwendet wird. Später haben sie festgestellt, dass die Stack-Projekte für ihre Kundenanwendungen auch sehr ähnlich aussehen. Neben dem Modul zum Erstellen eines Anwendungsservers besaß jeder Stack Code zum Erstellen von Datenbanken und dedizierte Logging- und Reporting-Services für jeden Kunden.
Das Ändern und Testen der Änderungen an diesem Code für die verschiedenen Kunden wurde zunehmend aufwendiger, und ShopSpinner gewann jeden Monat weitere Kunden dazu. Daher entschied das Team, ein einzelnes Stack-Projekt zu erstellen, das einen Kundenanwendungs-Stack definiert. Dieses Projekt nutzt weiterhin das gemeinsame Java-Anwendungsserver-Modul und ein paar weitere Applikationen (Jira und GoCD). Aber es enthält auch Code zum Einrichten des Rests der kundenabhängigen Infrastruktur.
Wird nun ein neuer Kunde gewonnen, nutzen die Teammitglieder das Stack-Projekt für alle Kunden, um eine neue Instanz anzulegen. Beim Beheben von Fehlern oder Umsetzen von Verbesserungen in der Projekt-Codebasis wenden Sie diese auf Testinstanzen an, um sicherzustellen, dass alles in Ordnung ist, dann rollen sie die Änderung nach und nach auf die Kundeninstanzen aus.