Ich muss einen neuen Staging-Prozess für unsere Entwicklung und Tests erstellen.
Zu einem bestimmten Zeitpunkt werden nur etwa 4 Git-Zweige aktiv entwickelt und getestet. Innerhalb jedes Git-Zweigs müssen möglicherweise Datenbankentwicklungsskripte (Straight SQL) ausgeführt werden sowie Evolutionsskripte aus dem Backend für eine stärkere Verarbeitung (im Wesentlichen handelt es sich um HTTP-Routen, die innerhalb der App mithilfe von Administratoranmeldeinformationen aufgerufen werden müssen, die die Datenbank ausführen Migrationen und andere Änderungen, deren Skript in den oben genannten einfachen SQL-Evolutionsskripten zu schwierig / nicht möglich wäre).
Unsere Live-Datenbank hat eine mittlere Größe von ~ 4,2 GB. Wir haben einen brandneuen Dell PowerEdge-Server, der zur Einrichtung bereit ist und mir zur Verfügung steht.
Ich würde mich über Ratschläge zu folgenden Fragen freuen und wissen, wie erfahrene DevOps dies angehen würden:
Wie kann ich mehrere verschiedene Zweige auf dem Staging-Server ausführen? Diese Zweige werden häufig angezeigt und verschwinden, wenn sie die Qualitätssicherung bestehen. Sie werden zum Master zusammengeführt und freigegeben.
Wie würde ich das DB-Evolutionssystem einrichten, um sicherzustellen, dass es für jeden Zweig immer die richtige DB hat? Jeder Zweig kann Änderungen an der Datenbank auf unterschiedliche Weise vornehmen, die nicht unbedingt miteinander kompatibel sind, bis sie zusammengeführt werden.
Wie halte ich diese Filialen auf dem neuesten Stand? Gibt es eine Möglichkeit, Commits für jeden Zweig automatisch abzurufen?
Würde mich über weitere Eingaben freuen, da ich ein bisschen verloren bin, wie ich das alles einrichten soll. Der aktuelle Workflow ist für alle Beteiligten schwierig: Entwickler haben eine vollständig isolierte lokale Kopie der App, die lokal ausgeführt wird, und QA verfügt über 3-4 rotierende Laptops, die als Staging- "Server" fungieren.