Ich bin nicht so erfahren, aber ich habe an einigen großen Java EE-Projekten (mit Maven2) gearbeitet, bei denen die Installation / Bereitstellung auf den verschiedenen Plattformen sehr unterschiedlich gehandhabt wurde.
1) Eine davon war, Snapshots für die Entwicklung zu verwenden und dann ein Maven-Release von Komponenten und Haupt-Webanwendungen zu erstellen. So ist die Lieferung:
- war/ear-Dateien
- Posten auflisten
- Eigenschaftsdateien
- sgdb-Dateien
- einige andere
Und die Teams werden diese Dateien verwenden, um die neuen Anwendungsversionen auf den verschiedenen Plattformen zu installieren. Ich denke, dieser Prozess ist streng und erlaubt es, die verschiedenen Konfigurationen, die in der Produktion übergeben werden, immer einfach zu halten, aber er ist nicht wirklich flexibel, der Prozess ist ein bisschen schwerfällig und er hat uns dazu gebracht, manchmal einige schmutzige Dinge zu tun, wie das Überschreiben einer Klasse eines War, um eine Regression zu patchen... Es handelt sich um eine E-Commerce-Website mit 10 Millionen Besuchern pro Monat und einer Verfügbarkeit von 99,89 %.
2) Eine andere Möglichkeit, die ich gesehen habe, ist, die Quellen auf jeder Plattform auszuchecken und dann die Snapshot-Artefakte in einem lokalen Repository zu installieren. Dann wird der Anwendungsserver diese Snapshots des Ordners .m2 verwenden. Es gibt keinen wirklichen Auslieferungsprozess, denn um eine neue Version in Produktion zu bringen, müssen wir nur die Quellen der Komponenten/Webapps aktualisieren, eine Maven Clean Install durchführen und den Anwendungsserver neu starten. Ich denke, es ist flexibler, aber ich sehe einige Nachteile und dieser Ansatz scheint mir gefährlich. Diese Website hat ein Frontoffice, ich kenne die Zahlen nicht, aber es ist viel weniger als die 1. Sie hat auch ein großes Backoffice, das für die meisten Mitarbeiter eines Unternehmens mit 130 000 Mitarbeitern zur Verfügung steht.
Ich denke, je nach Website, ihrer Darstellung in der Öffentlichkeit und der erforderlichen Verfügbarkeit müssen wir die Bereitstellungsstrategie an den Bedarf anpassen.
Ich bin nicht hier, um zu fragen, welche Lösung die beste ist, sondern frage mich, ob Sie verschiedene Dinge gesehen haben und welche Strategie Sie in welchem Fall anwenden würden?