Platforma UniCloud oferuje błyskawiczne uruchomienie lekkiego i mocno skalowalnego serwera aplikacji Node.JS. Wiele narzędzi optymalizacji i zarządzania jest automatycznie dostarczanych do serwera, sprawiając, że hosting staje się maksymalnie wygodny.

Hosting Środowiska Node.JS

W celu uruchomienia aplikacji Node.JS należy ustawić właściwe środowisko używając Asystenta Topologii. Przełącz się na zakładkę Node.JS, wybierz wersję silnika dla serwera aplikacji, a także dodaj inne stosy oprogramowania. Jeśli zajdzie taka potrzeba, dostosuj inne parametry, takie jak liczba cloudletów i węzłów oraz przypisz publiczny adres IPv4.

Wersjonowanie Node.JS

Obecnie wspierane są następujące wersje Node.JS:

  • 12.x.x
  • 11.x.x
  • 10.x.x
  • 9.x.x
  • 8.x.x
  • 7.10.0
  • 6.x.x

Wdrożenie Aplikacji Node.JS

UniCloud automatyzuje proces wdrożenia dla zarządzanych serwerów aplikacji NodeJS poprzez wykorzystanie:

  • archiwów aplikacji wgranych z lokalnego komputera lub poprzez zewnętrzny adres URL
  • Zdalne repozytorium systemu kontroli wersji (VCS), na przykład GitHub.

Systemy Zarządzania Pakietami Node.JS

W celu zapewnienia większej wygody, każdy serwer aplikacji Node.JS zawiera wbudowane narzędzie deweloperskie zwane Systemem Zarządzania Pakietami, które zapewnia standaryzację i automatyzację procesów instalacji, aktualizacji, konfiguracji oraz usuwania.

Jelastic wspiera dwa rodzaje systemów zarządzania pakietami:

  • Npm – zarządza wymaganiami projektów poprzez instalację dodatkowych modułów, pakietów oraz gotowych do użycia aplikacji
  • Yarn – oferuje te same usługi co npm (w związku z czym nie wymagane jest wprowadzanie zmian dla istniejących aplikacji), jednocześnie oferując większą prędkość, niezawodność i wygodę użytkowania

System zarządzania pakietami npm jest domyślnie stosowany dla serwerów aplikacji NodeJS, jednak, jeśli zajdzie taka potrzeba, może być on szybko zmieniony na yarn. W tym celu należy otworzyć okno Zmienne i ustawić odpowiednie wartości PACKAGE_MANAGER (na npm lub na yarn).

Systemy Zarządzania Procesami Node.JS

Systemy zarządzania procesamizapewniają możliwość kontroli cyklu życia aplikacji i monitorowania działających usług oraz utrzymują funkcjonalność projektu. UniCloud zapewnia wsparcie następujących systemów zarządzania procesami dla stosów Node.JS:

  • npm– inicjuje i konfiguruje wiele procesów,
  • pm2– zapewnia dużą różnorodność funkcji monitorowania aplikacji, a także funkcję monitorowania procesów uruchomionego Node.JS,
  • forever– umożliwia dzianie procesów Node.JS bez przerw, automatycznie restartując je po awarii,
  • supervisor– monitoruje działające aplikacje pod względem zmian oraz automatycznie restartuje poszczególne aplikacje tak, by były aktualne.

Użytkownicy mogą wybrać właściwy system zarządzania procesami podczas ponownego wdrożenia kontenerów lub poprzez dostosowanie zmiennej PROCESS_MANAGER (poprzez ustawienie  forevernpmpm2 lub supervisor jako wartości; aby wprowadzić zmiany wymagany jest restart kontenera).

Zarządzanie Domenami

Do środowiska przeznaczonego na hosting aplikacji Go 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).

Ważne! 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 Go 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 Golang 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 NodeJS znajdziesz w dokumentacji Jelastic:

button-jelastic