Konfiguracja serwera aplikacji – tryb Domain – garść teorii

Tryb Domain w serwerach aplikacji

Dziś opowiemy o trybie Managed Domain w serwerze aplikacji EuroAP i pokrewnych. Omówimy, z jakich elementów i procesów składa się zarządzalna domena.

Platformy aplikacji z rodziny EuroAP (JBoss®) mają dwa tryby działania – Standalone oraz Managed Domain. Obydwa tryby oferują te same funkcjonalności, między innymi: wysoką dostępność, messeging czy klasteryzację. Tryb Managed Domain pozwala ponadto na centralne zarządzanie serwerami. Dzięki temu z jednego miejsca jesteśmy w stanie zmieniać całe grupy serwerów.

Tryb Managed Domain istnieje w EuroAP od wersji 6. Wówczas nazwał się po prostu trybem domeny (ang. Domain Mode). Od wersji 7. nazywamy go zarządzalną domeną (ang. Managed Domain), aby podkreślić jego główny walor – możliwość zarządzania.

Architektura Domain

Tryb Managed Domain koncepcyjnie składa się z:

  • domeny – kolekcja instancji serwerów EuroAP
  • kontrolera domeny (Domain Controller) – inaczej mówiąc master – on jest punktem, z którego zarządzamy całą domeną
  • kontrolera hosta (Host Controller) – zwany też slavem – kontroluje wszystkie instancje serwerów na hoście, przekazuje polecenia z kontrolera domeny
  • kontrolera procesów – proces na hoście odpowiedzialny za startowanie kontrolera hosta i nowych instancji serwerów
  • hosta – pojedyncza maszyna, może być fizyczna lub wirtualna.
  • grupy serwerów – kolekcja serwerów EuroAP, które są zarządzane tak, jakby były jednym serwerem
  • profili – nazwana konfiguracja podsystemów EuroAP. Obszerniej wyjaśniliśmy tę kwestię w artykule Konfiguracja serwera aplikacji – garść teorii.

Zależność między nimi pokazuje rysunek 1 – zarządzalna domena w EuroAP.

serwer aplikacji

Rysunek 1

Na rysunku widzimy 3 hosty. Na każdym hoście jest uruchomiony kontroler procesów. Na host1 działa kontroler domeny oraz graficzna kontrola administratora (Management Console) oraz Management API wykorzystywane przez CLI. Na host2 działają dwie instancje serwera aplikacji: server1 oraz server2. Na host3 działają dwie instancje serwera aplikacji: server3 oraz server4. Server1 i server3 należą do grupy serwerów serverGroupNieparzyste. Server2 i server4 należą do grupy serwerów serverGroupParzyste. Kontroler Domeny komunikuje się z kontrolerami hostów.
Kontrolery hostów komunikują się z instancjami serwera aplikacji.

Domain Controller

Kontroler domeny stanowi owiany już sławą centralny punkt sterowania całą domeną. Jego zadaniem jest pilnowanie, aby wszystkie instancje serwerów były skonfigurowane zgodnie z ustawionymi politykami. W tym celu rozmawia z poszczególnymi kontrolerami hosta.

Ponieważ Domain Controler jest centralny, to wszystkie żądania administracyjne idą przez niego, a on przekazuje je dalej – do kontrolerów hosta. W ramach jego JVM działają też: graficzna konsola administratora (Management Console) oraz Management API używane przez CLI. CLI i graficzna konsola rozmawiają tylko i wyłączanie z kontrolerem domeny.

Kontroler domeny to szczególny kontroler hosta, któremu akurat przytrafiło się zarządzać całą domeną. Oznacza to, że:

1. Kontroler domeny umie wszystko to, co umie kontroler hosta. W szczególności może bezpośrednio odpowiadać za instancje serwerów. Zaleca się, aby zajmował się tylko zarządzaniem domeną, jednak nie jest to konieczne.

2. Każdy inny kontroler hosta może zostać kontrolerem domeny, jeśli zajdzie taka potrzeba. Nie jest to jednak ustawienie domyślne.

serwer aplikacji

Rysunek 2

serwer aplikacji

Rysunek 3

Kontroler domeny zarządza bezpośrednio instancjami serwerów i ma tylko jedną odpowiedzialność – zarządzanie domeną.

Host Controller

Kontroler hosta pełni rolę agenta zarządzania. Kontroler domeny przesyła do niego instrukcje lub konfiguracje, a on przekazuje je dalej do instancji serwerów na danym hoście.

Kontroler hosta wspiera zarządzanie domeną. Serwery EuroAP działają tak samo w domenie, jak i w trybie wolnostojącym. Wynika z tego, że kontroler hosta nie pełni żadnych funkcji, które przypadają serwerom aplikacji.

Kontroler procesów (Process Controller)

Kontroler procesów odpowiada za uruchamianie kontrolerów hosta i serwerów aplikacji. Jest osobnym procesem, na osobnej maszynie wirtualnej Javy. Każdy host ma jeden kontroler procesów.

Grupa serwerów (server group)

Grupy serwerów to logiczny podział serwerów aplikacji. Dzięki nim jesteśmy w stanie zarządzać dużą ilością serwerów, tak jakby były jednym. To grupie definiujemy, z jakim profilem ma działać czy jakie aplikacje ma mieć wdrożone.

W domenie nie odwołujemy się do pojedynczych instancji serwera, lecz właśnie do grup. Instancja nie może istnieć poza grupą.

Procesy i JVM

W celu zapewnienia izolacji wszystkie kontrolery i serwery aplikacji są uruchamiane w osobnych procesach, na osobnych maszynach Javy. Obrazują to rysunki 4 i 5. Na rysunku 4 widzimy tylko najistotniejsze informacje. Natomiast na rysunku 5 są wszystkie procesy uruchamiane dla struktury przedstawionej na rysunku 4.

serwer aplikacji

Rysunek 4

serwer aplikacji

Rysunek 5

Kolejność uruchamiania

Kolejność uruchamiania i interakcje między elementami zostały przedstawione na poglądowym rysunku 6.

Jest to ilustracja odpowiadająca konfiguracji z rysunku 4.

serwer aplikacji

Rysunek 6

Zakończenie

Mam nadzieję, że przedstawiona dziś wiedza pozwoli zrozumieć i w pełni skorzystać z następnego artykułu o konfiguracji trybu zarządzalna domeną (ang. Managed Domain) w serwerach aplikacji z rodziny EuroAP. Materiał pojawi się już niebawem na naszym blogu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *