Mit Maven in der Java-Welt ist das ganz einfach
mvn clean deploy
In unserer Konfiguration erledigt dies den gesamten erforderlichen Aufbau der WAR-Datei (bei Bedarf die JAR-Abhängigkeiten einbeziehen), die Bereitstellung auf dem Dev-Webserver und die Erstellung von gespeicherten Testdaten in der Dev-Datenbank. Sobald dies erledigt ist, führt Maven die umfassenden Funktionstests durch SeleniumRC durch, um zu überprüfen, ob die Anwendung funktioniert.
Mit diesem einzigen Befehl wird die Anwendung vollständig auf dem Entwickler-Server-Cluster implementiert, sodass andere Entwickler sofort mit ihr arbeiten können (vorausgesetzt, sie hat die Tests bestanden). Es ist ungewöhnlich, dass eine Dev-Bereitstellung fehlschlägt, da die Entwickler überprüft haben, dass sie lokal funktioniertmvn clean install
.
Das Snapshot-Artefakt (WAR) wird dann in das Maven-Repository kopiert, um es mit anderen Entwicklern zu teilen (gemäß dem Standardverhalten von Maven deploy
).
OK, aber Sie haben nur einen Snapshot für Entwickler bereitgestellt. Was ist mit Test und Produktion?
Die Verteilung auf die Test- und (späteren) Produktionsserver erfolgt über den Maven-Release-Prozess, den wir gerne manuell abwickeln, um sicherzustellen, dass jemand auf verdächtige Ausgaben achtet. Tester arbeiten nur mit freigegebenen Artefakten, nicht mit Schnappschüssen.
Sobald es veröffentlicht ist, wird ein einfaches Build-Skript verwendet, um die WAR-Datei an den Testserver-Cluster zu senden, wobei wiederum jemand den Prozess überwacht, um sicherzustellen, dass nichts schief geht.
Schließlich, nachdem alle Tester zufrieden sind, wird die unveränderte WAR-Datei per SFTP an den Failover-Produktionsserver-Cluster übertragen, wobei jemand ein wachsames Auge hat und im Katastrophenfall eine sofortige Rollback-Position einnimmt.