Payara Micro

Autoskalowalny klaster Payara Micro dla aplikacji Java

 

Zapewnienie optymalnej wydajności aplikacjom Java EE

Mikrousługi tylko z nazwy są niewielkie. Czas na przetestowanie, w jaki sposób przygotować klaster Payara Micro na zapewnienie bezpiecznego i w pełni automatycznego zarządzania dynamicznie zmieniającą się liczbą serwerów. Dla zaoszczędzenia czasu i zoptymalizowania ilości zamawianych zasobów, wykorzystamy platformę UniCloud.

Mały, prosty, a jednocześnie gotów na podjęcie poważnych zadań. Implementacja gładka i szybka, możliwości szerokie, dostosowywanie się do zmiennego otoczenia błyskawiczne. Czy pojęcia mikro i skalowanie są możliwe do pogodzenia, czy też stoją w opozycji do siebie?

Odpowiedzi jest zapewne wiele, w artykule przedstawiona zostanie jedna z nich. Odpowiedź ta brzmi: Payara Micro w chmurze UniCloud.

Payara Micro[1] jest lekkim serwerem aplikacji, stworzonym w oparciu o GlassFish 4.1 ze wsparciem Java EE 7. Zajmując zaledwie 70 MB, serwer wyposażony został w mechanizmy automatycznego klastrowania Hazelcast, dystrybucję pamięci podręcznej Payara JCache, proste zarządzanie umożliwiające uruchamianie aplikacji .war bezpośrednio z linii komend (bez instalacji serwera aplikacji)[2], wyposażonym we wbudowane API Java. Payara Micro został zoptymalizowany pod kątem nowoczesnej infrastruktury opartej o kontenery. W prosty sposób może zostać zaimplementowany w chmurze, dostarczając zautomatyzowane klastrowanie aplikacji opartych o Java EE.

Implementacja Payara Micro w UniCloud

Pakiet Payara Micro został przygotowany z wykorzystaniem minimalnej ilości węzłów (kontenerów), zawiera jednak wszystkie wymagane narzędzia pozwalające na skalowanie horyzontalne, pozwalające na elastyczne przyjęcie zwiększonego ruchu. Możemy w ten sposób wydajnie obsłużyć ruch przychodzący nawet w przypadku gwałtownego zwiększenia zainteresowania usługą, jak ma to często miejsce podczas emisji materiału reklamowego w mediach.

Implementacja rozwiązania została przygotowana przez firmę Jelastic[3], która umieściła w GitHub repozytoria[4] przygotowane i zoptymalizowane pod kątem UniCloud.

Przetestowanie prezentowanego rozwiązania możliwe jest po założeniu konta trial na platformie UniCloud (www.unicloud.pl)

Rozwiązanie zostało zbudowane z wykorzystaniem kontenerów Docker, z następujących obrazów:

  • jelastic/payara-micro-cluster – serwer aplikacji Payara Micro (domyślnie zainstalowana zostaje jedna instancja, automatycznie skalowalna poziomo w przypadku wzrostu obciążenia)
  • jelastic/haproxy-managed-lb – równoważenie obciążenia za pomocą HAProxy, który automatycznie dodaje/usuwa serwery aplikacyjne w plikach konfiguracyjnych load balancera, gdy ich ilość się zmienia
  • jelastic/storage – dedykowany kontener typu data storage, domyślnie zawiera prostą aplikację do symulacji obciążeń, pozwalającą na przetestowanie możliwości skalowania klastra

Instalacja jest procesem szybkim i zautomatyzowanym, sprowadza się do importu odpowiedniego projektu z GitHub poprzez panel UniCloud:

W oknie, które się pojawi, należy wprowadzić podstawowe parametry tworzonego środowiska, nacisnąć Zainstaluj, i… to właściwie wszystko!

Po chwili pakiety zostaną dostarczone:

Operacje tworzenia i konfigurowania klastra przebiegają w sposób zautomatyzowany i kończą się utworzeniem kompletnego, skonfigurowanego, gotowego do pracy środowiska, z uruchomionym klastrem Payara Micro, przygotowanym do automatycznego dodawania i usuwania węzłów:

W bazie wiedzy UniCloud[5] przedstawiamy pełną procedurę testów, według której możemy przekonać się, że węzły są dodawane i usuwane automatycznie, bez konieczności monitorowania obciążenia, zapewniając nam jednocześnie odpowiednią wydajność i optymalizację kosztów infrastruktury. Procedura obrazuje automatyczne dodawanie i usuwanie węzłów zależnie od zmieniającego się obciążenia.

Mikrousługi, przygotowane z wykorzystaniem minimalnej ilości zasobów, pozwalają na maksymalne zaoszczędzenie opłat za dzierżawę zasobów, jednocześnie dzięki automatycznemu skalowaniu w obu kierunkach, ograniczają ryzyko braku dostępności. W rezultacie uzyskujemy nasz cel: optymalizację wydajności. Czy to rozwiązanie jest ciekawe? Mamy nadzieję, że tak, zarówno dla świata inżynierów jak i ekonomistów. Zachęcamy do samodzielnego przetestowania rozwiązania.

Info:

[1] Payara, Payara Micro:
http://www.payara.fish/payara_micro

[2] Steve Millidge, Introducing Payara Micro:
http://blog.payara.fish/introducing-payara-micro

[3] Jelastic, Blog:
http://blog.jelastic.com/2017/02/21/payara-micro-auto-scalable-cluster-for-javaee-microservices

[4] GitHub, Jelastic JPS Collection:
https://github.com/jelastic-jps/payara

[5] Baza Wiedzy UniCloud:
http://pomoc.unicloud.pl/unicloud/srodowiska-serwery/payara-micro-automatycznie-skalowalny-klaster-mikrouslug

Partnerzy technologiczni

Dell
Cisco
vmware
Emc2
Certum
Microsoft
IBM