Dziś pokażemy, jak stosując jedną dobrą praktykę, zyskujemy elastyczność przechodzenia między równoważnymi serwerami aplikacji EuroAP i JBoss® EAP. Praktyka ta to oddzielenie konfiguracji od instalacji.
Dzięki temu, że obydwa serwery powstają z tych samych źródeł, są sobie równoważne (co w praktyce można uprościć do stwierdzenia, że różnią się logotypem). Mają więc takie same możliwości konfiguracyjne. Gdy oddzielimy konfigurację od samego serwera aplikacji, możemy tę konfigurację podpinać do dowolnego równoważnego serwera aplikacji.
Dobra praktyka – rozdziel konfigurację serwera od jego instalacji
Dobrą praktyką jest skopiowanie czystej konfiguracji serwera aplikacji w inne miejsce niż to, w którym znajduje się jego instalacja. Przy uruchamianiu serwera każdorazowo należy wskazać, gdzie mieści się ta konfiguracja.
Takie podejście ma kilka zalet:
- wydzielamy to, co jest naprawdę istotne dla naszego projektu i co warto utrzymywać w systemie kontroli wersji
- mamy pewność, że żaden update serwera nie naruszy konfiguracji
- możemy przepinać tę samą konfigurację między równoważnymi serwerami aplikacji.
Aby uruchomić serwer aplikacji z inną konfiguracją, należy użyć przełącznika -Djboss.server.base.dir
dla trybu Standalone i -Djboss.domain.base.dir
dla trybu zarządzalnej domeny (ang. Managed Domain).
Ustawienia JBoss® EAP
Zobaczmy, na przykładzie, jak można przepiąć konfigurację.
Rozpakowujemy serwer aplikacji JBoss® EAP i kopiujemy konfigurację do folderu własna_konfiguracja
. Następnie uruchamiamy serwer z wydzieloną konfiguracją:
/demo/jboss-eap-7.3 cp -a standalone/* ../własna_konfiguracja/
/demo/jboss-eap-7.3 cd bin
/demo/jboss-eap-7.3/bin ./standalone.sh -Djboss.server.base.dir="../../własna_konfiguracja/"
Na razie mamy domyślną konfigurację serwera w trybie Standalone. Wdrażamy aplikację i otwieramy udostępnioną przez nią stronę:
/demo/jboss-eap-7.3/bin ./jboss-cli.sh --connect
[stan[email protected]:9990 /] deploy ../../helloWorldStatic.war
[[email protected]:9990 /] deployment-info
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS
helloWorldStatic.war helloWorldStatic.war true true OK
Wyłączamy serwer JBoss® EAP: ./jboss-cli.sh --connect shutdown
Migracja na EuroAP
Rozpakowujemy serwer aplikacji EuroAP i uruchamiamy go z wydzieloną wcześniej konfiguracją:
/demo cd EuroAP-7.3/bin/
/demo/EuroAP-7.3/bin ./standalone.sh -Djboss.server.base.dir="../../własna_konfiguracja/"
Jak widać, po otwarciu serwera wdrożona wcześniej aplikacja jest aktywna.
/demo/EuroAP-7.3/bin ./jboss-cli.sh --connect
[[email protected]:9990 /] deployment-info
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS
helloWorldStatic.war helloWorldStatic.war true true OK
Uwaga! Aby przeglądarka zmieniła nam wygląd strony, prawdopodobnie będziemy musieli ją przeładować, wymuszając także unieważnienie pamięci podręcznej (ang. invalidate cache). W przeglądarce Firefox możemy to zrobić za pomocą skrótu klawiszowego Ctrl+F5
, a w Chrome Ctrl+Shift+R
.
Pokazana tu konfiguracja celowo jest trywialna – chcemy się skupić na łatwości i sposobie przepinania konfiguracji. Zapewniamy, że jeżeli tylko jesteśmy w stanie wyizolować konfigurację od serwera aplikacji, to niezależnie od stopnia jej skomplikowania, pokazana metoda będzie działać.
Naturalnie zastosowana metoda funkcjonuje w obie strony – możemy z łatwością migrować z serwera aplikacji JBoss® EAP do EuroAP oraz odwrotnie. Możemy to wykorzystać, aby porównać i przetestować obydwa rozwiązania lub nawet stosować dwa równoważne serwery aplikacji w zależności od środowiska np. produkcyjne i testowe.
Podsumowanie
Pokazaliśmy, jak łatwa jest migracja między równoważnymi serwerami aplikacji EuroAP i JBoss® EAP, gdy stosuje się dobrą praktykę oddzielania konfiguracji od instalacji serwera aplikacji.
Zdajemy sobie sprawę, że nie każdą konfigurację da się w ten sposób prowadzić, jednak jeśli tylko to możliwe, to naprawdę warto. Zyskujemy w ten sposób nie tylko dodatkowe bezpieczeństwo, w tym zabezpieczenie naszej konfiguracji, ale też niezwykłą elastyczność w doborze narzędzi.
Na koniec uwaga dla czytelników wychodzących poza aspekty czysto techniczne. Serwery aplikacji JBoss® EAP i EuroAP są równoważne, a ich funkcjonalności są takie same. To, co je naprawdę różni, to ekosystem – wsparcie techniczne, stos produktowy producenta oraz jego chęci i możliwości wychodzenia naprzeciw potrzebom klienta.