Java od lat uznawana jest za jeden z najwszechstronniejszych języków programowania. Od aplikacji internetowych przez internet rzeczy, Java jest chętnie wybierana przez programistów. Poniżej przedstawiamy opis uruchomienia serwera aplikacji Java na platformie UniCloud.

Wersje Java

W ramach platformy UniCloud móżesz korzystać ze stosów Java w wersjach:

  • Java 7.x (JDK, OpenJDK)
  • Java 8.x (JDK, OpenJDK, OpenJ9)
  • Java 9.x (JDK, OpenJ9)
  • Java 10.x (JDK, OpenJDK, OpenJ9)
  • Java 11.x (JDK, OpenJDK)
  • Java 12.x (OpenJDK)
  • Java 13.x (OpenJDK)

Istnieje możliwość wyboru preferowanej wersji podczas tworzenia środowiska lub jej zmiany w późniejszym czasie.

Serwery Aplikacji Java

Wśród dużej różnorodności stosów oprogramowania, UniCloud wspiera następujące serwery aplikacji Java:

  • GlassFish
  • Jetty
  • Payara
  • Spring Boot
  • SmartFoxServer 2X
  • Tomcat
  • TomEE
  • WildFly

Tworzenie Środowiska Java

Stworzenie właściwego środowiska jest niezbędne do hostowania aplikacji. Należy otworzyć asystenta topologii kliknąć w zakładkę języka Java, wybrać odpowiedni serwer aplikacji Java, bazę danych lub inne kontenery (jeśli jest to wymagane), określić podstawowe parametry środowiska według własnych preferencji, a następnie kliknąć przycisk Utwórz.

Wszystkie dodane serwery stanowią w pełni odizolowane kontenery zlokalizowane na osobnych hostach w celu zapewnienia większej dostępności, a także wykluczenia ryzyka ingerencji pomiędzy nimi. Istnieje możliwość podpięcia publicznego adresu IP pod którykolwiek z serwerów tak, by był on bezpośrednio dostępny. W przeciwnym wypadku (przy zastosowaniu domyślnych ustawień), zapytania przychodzące do aplikacji będą przekazywane przez loadbalancer.

Wdrożenie Aplikacji Java

Aplikacja Java może być wdrożona po stworzeniu środowiska. W ten sposób UniCloud automatyzuje proces wdrażania, umożliwiając bezproblemowe uruchomienie i działanie projektu.

Wspierane są następujące metody wdrażania:

  • Poprzez aplikację archive – archiwa .war, .zip oraz .ear
  • Poprzez zdalne repozytorium GIT/SVN, używając węzła Maven
  • Za pomocą pluginów – Ant TaskEclipseIntelliJ IDEAMaven oraz NetBeans

Istnieją również osobne instrukcje dotyczące pracy z repozytoriami BitBucket GIT, a także zarządzania projektami poprzez Gitbit oraz WebDAV.

Klastrowanie Java

Wbudowana funkcja klastrowania serwerów aplikacji powiela sesje pomiędzy parami węzłów i eliminuje konieczność użycia dodatkowego oprogramowania lub Memcached w celu zapewnienia większej dostępności aplikacji.

UniCloud zapewnia automatyczne powielanie sesji pomiędzy serwerami Tomcat, GlassFish oraz Jetty za pomocą funkcji multicast, zapewniając aplikacji sieciowej dużą dostępność w klastrze Java. Funkcję Dużej Dostępności (High-Availability) można włączyć w asystencie topologii podczas procesu tworzenia środowiska lub jego dostosowywania.

Dodatkowo, UniCloud zapewnia prekonfigurowane pakiety autoskalowalnych klastrów Java.

Podłączenie Bazy Danych do Aplikacji Java

Zestaw skalowalnych i w pełni sterowalnych serwerów baz danych może zostać w łatwy sposób zainstalowany w środowisku Java. Aby nawiązać połączenie należy dostosować aplikację, postępując według instrukcji odpowiednich dla właściwej bazy danych:

UniCloud zapewnia wysokiej jakości hosting Java, charakteryzujący się ulepszoną dostępnością, skalowalnością i redundancją dla aplikacji.

Zarządzanie Domenami

Do środowiska przeznaczonego na hosting aplikacji Java możesz podpiąć własną, zewnętrzną domenę i używać jej zamiast domyślnej, systemowej nazwy środowiska. Istnieją dwie możliwości przypisywania domen:

  • rekord CNAME: w wypadku używania Wspólnego Równoważnika Obciążenia (Shared Load Balancer); zalecana dla środowisk developerskich oraz testowych
  • rekord A: w wypadku używania Publicznego IP; jest w stanie poradzić sobie z dużym obciążeniem i nadaje się do środowisk produkcyjnych.

Co więcej, istnieje możliwość łatwego przełączania się między domenami, w celu przekierowania ruchu z jednego środowiska do innego (na przykład przełączając się na nowszą wersję aplikacji bez okresu przestoju).

Dla dostępu przez Publiczne IP, ruch może być przekierowany do innego środowiska za pomocą metody SwapExtlps API (również dostępne przez CLI).

Automatyczne Skalowanie Pionowe

Automatyczne skalowanie pionowe pozwala dynamicznie przydzielać dodatkowe zasoby (RAM, procesor) na podstawie bieżącego użycia i zgodnie z granicznymi wartościami ustawionymi dla serwera. Ta funkcja pozwala alokować tylko te zasoby, które w danym momencie są wymagane do prawidłowego, stabilnego działania aplikacji. Pozwala także oszczędzić czas dzięki pełnej automatyzacji przydzielania zasobów(dodawania lub ich odejmowania).

Platforma automatycznie wykonuje proces skalowania, użytkownik musi jedynie określić górny i dolny limit cloudletów (każdy jest równy 128 MiB pamięci RAM oraz 400 MHz CPU) dla serwera Java za pomocą asystenta topologii.

Aplikacja będzie działała zgodnie z ustawionymi ograniczeniami, zmniejszając użycie zasobów gdy obciążenie jest mniejsze, i zwiększając je w wypadku znacznego obciążenia. W ten sposób płaci się tylko za zasoby, które rzeczywiście się zużywa.

Ręczne Skalowanie Poziome

Istnieje możliwość łatwego dodania kolejnych serwerów Java poprzez asystenta topologii w trakcie tworzenia środowiska lub jego dostosowywania. Należy kliknąć przycisk „+” w sekcji Skalowanie poziome i dodać wymaganą liczbę instancji.

Maksymalna liczba serwerów tego samego typu wewnątrz pojedynczej warstwy środowiska to 16 węzłów. Co istotne, jeśli na etapie tworzenia środowiska nie dodamy load balancera, ale włączymy automatyczne skalowanie, zostanie on dodany przez platformę automatycznie.

Automatyczne Skalowanie Poziome

Automatyczne skalowanie poziome może być wprowadzone poprzez użycie regulowanych wyzwalaczy (tzw. triggery), które dostosowują liczbę węzłów do stopnia obciążenia aplikacji. Aby skonfigurować skalowanie automatyczne należy przejść do sekcji Ustawienia > Monitorowanie > Automatyczne skalowanie poziome i  wybrać przycisk dodaj.

W tym miejscu można skonfigurować wyzwalacze dla konkretnych stosów i zasobów (CPU, RAM, Sieć, Dysk) poprzez dostosowanie warunków skalowania.

 Więcej informacji na temat uruchamiania aplikacji tworzonych w Java znajdziesz w dokumentacji Jelastic:

button-jelastic