Zautomatyzowane rozwiązanie do wdrażania wielu aplikacji internetowych Java
Szukam rozwiązań, najlepiej open source, które mogą zarządzać wdrożeniami wielu współzależnych aplikacji internetowych Java.
Rozwiązanie wymaga zdolności do tworzenia i przechowywania specyfikacji wydania zawierającej wiele elementów dla wersji poszczególnych wersji aplikacji i odpowiednich innych artefaktów (konfiguracja bazy danych, konfiguracja apache itp.).
Następnie specyfikacja musi zostać przeanalizowana, a każdy element musi zostać wdrożony / wykonany w środowisku docelowym. Środowisko docelowe jest oparte na systemie Linux. Aplikacje internetowe to waniliowe wojny działające na standardowym serwerze aplikacji j2ee.
Dużo zapytać?
Obecnie myślę, że wszystkie bity są na miejscu - artefakty binarne są wydawane wraz zwtyczka maven release i stąd dostępne z naszegomaven repo do wdrożenia,Baza danych jest wersjonowany zdbdeploy ikonfiguracja apache jest wersjonowanysvn. Nie znam jednak żadnego narzędzia, które może połączyć wszystkie te kroki w wielu aplikacjach.
Moim obecnym preferowanym podejściem jest użycie postaci sparametryzowanej kompilacji dla hudson do stworzenia specyfikacji. Następnie druga sparametryzowana kompilacja, aby wybrać wstępnie utworzoną specyfikację i wdrożyć / wykonać ją w wybranym środowisku.
Jednak wydaje się, że jest to dużo pracy i mniej niż optymalne rozwiązanie niestandardowe.
Czy ktoś wie, jakie wcześniej zbudowane lepsze pomysły? lub sugestie, jak się do tego zbliżyć - może silnik przepływu pracy byłby lepszy niż hudson? może niestandardowa aplikacja internetowa?
Uwagi:
Środowiska docelowe są wstępnie zbudowane ze wszystkimi wymaganiami - np. zainstalowano serwer Java i serwer aplikacji, uruchomiono bazę danych itp. Jest to mniej pytanie dotyczące konfiguracji środowiska i więcej pytań dotyczących wdrażania.
Automatyzacja wdrażania pojedynczych aplikacji stanowi problem z wieloma rozwiązaniami, np. ładunki, skrypty instalowania mrówek itp. Jednak potrzebuję czegoś, co może łączyć wiele wdrożeń. Na przykład. rozpocznij ładunek w określonych wersjach wielu aplikacji i ich wymaganiach.