Automatisierte Bereitstellungslösung für mehrere Java-Web-Apps

Ich suche nach Lösungen, vorzugsweise Open Source, die Bereitstellungen mehrerer voneinander abhängiger Java-Webanwendungen verwalten können.

Die Lösung erfordert die Möglichkeit, eine Release-Spezifikation zu erstellen und zu speichern, die mehrere Elemente für release-spezifische Versionen jeder Anwendung und relevante andere Artefakte (Datenbankkonfiguration, Apache-Konfiguration usw.) enthält.

Die Spezifikation muss dann analysiert werden und jedes Element muss dann in einer Zielumgebung implementiert / ausgeführt werden. Die Zielumgebung basiert auf Linux. Web-Apps sind Vanilla-Kriege, die auf einem j2ee-Standard-App-Server ausgeführt werden.

Viel zu fragen?

Momentan denke ich, dass alle Bits vorhanden sind - die binären Artefakte werden mit dem freigegebenmaven release plugin und daher bei uns erhältlichMaven Repo für den Einsatz, dieDatenbank ist versioniert mitdbdeploy und dasapache config ist versioniert insvn. Ich kenne jedoch kein Tool, das all diese Schritte für mehrere Anwendungen zusammenfassen kann.

Mein derzeit bevorzugter Ansatz ist die Verwendung einer Form eines parametrisierten Builds für Hudson, um die Spezifikation zu erstellen. Anschließend wird ein zweiter Build parametrisiert, um eine vorab erstellte Spezifikation auszuwählen und in einer ausgewählten Umgebung bereitzustellen / auszuführen.

Dies scheint jedoch eine Menge Arbeit und eine nicht optimale kundenspezifische Lösung zu sein.

Kennt jemand irgendwelche vorgefertigten besseren Ideen? oder Vorschläge, wie man das angeht - vielleicht wäre eine Workflow-Engine besser als Hudson? Vielleicht eine benutzerdefinierte Web-App?

Anmerkungen:

Die Zielumgebungen sind mit allen vorhandenen Anforderungen vorkonfiguriert - z. Java- und App-Server installiert, Datenbank läuft usw. Dies ist weniger eine Frage zur Umgebungskonfiguration als vielmehr eine Frage zur Bereitstellung.

Die Automatisierung der Bereitstellung einzelner Apps ist bei vielen Lösungen ein Problem, z. Fracht, Ant-Deployment-Skripte usw. Allerdings brauche ich etwas, das mehrere Deployments einschließen kann. Z.B. Starten Sie Ihre Fracht mit bestimmten Versionen mehrerer Apps und deren Anforderungen.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage