Ten dokument został przetłumaczony przez AI. Aby uzyskać dokładne informacje, zapoznaj się z wersją angielską.
Tryb wielu aplikacji ze współdzieloną pamięcią posiada wyraźne zalety w zakresie wdrażania i utrzymania, ale wraz ze wzrostem liczby aplikacji i złożoności biznesowej, pojedyncza instancja może stopniowo napotykać problemy, takie jak rywalizacja o zasoby czy spadek stabilności. W takich scenariuszach użytkownicy mogą zastosować hybrydowy schemat wdrażania wielośrodowiskowego, aby sprostać bardziej złożonym wymaganiom biznesowym.
W tym trybie system wdraża aplikację wejściową jako ujednolicone centrum zarządzania i harmonogramowania, a jednocześnie wdraża wiele instancji NocoBase jako niezależne środowiska uruchomieniowe aplikacji, odpowiedzialne za faktyczną obsługę aplikacji biznesowych. Poszczególne środowiska są od siebie odizolowane i współpracują ze sobą, co skutecznie rozprasza obciążenie pojedynczej instancji i znacząco poprawia stabilność systemu, skalowalność oraz zdolność do izolacji awarii.
Na poziomie wdrożenia różne środowiska mogą działać w niezależnych procesach, być wdrażane jako oddzielne kontenery Docker lub istnieć w formie wielu wdrożeń (Deployments) Kubernetes, co pozwala na elastyczne dostosowanie do infrastruktury o różnej skali i architekturze.
W hybrydowym trybie wdrażania wielośrodowiskowego:
Obecnie funkcja tworzenia środowisk nie jest jeszcze dostępna; każda aplikacja robocza musi zostać wdrożona ręcznie i skonfigurowana z odpowiednimi informacjami o środowisku, zanim zostanie rozpoznana przez aplikację wejściową.
Przed wdrożeniem należy przygotować następujące usługi:
Redis
Baza danych
Aplikacja wejściowa pełni rolę ujednoliconego centrum zarządzania, odpowiadając za tworzenie, uruchamianie, zatrzymywanie aplikacji, harmonogramowanie środowisk oraz pośrednictwo w dostępie do aplikacji (proxy).
Objaśnienie konfiguracji zmiennych środowiskowych aplikacji wejściowej:
Aplikacja robocza służy jako rzeczywiste środowisko uruchomieniowe biznesu, odpowiedzialne za hostowanie i uruchamianie konkretnych instancji aplikacji NocoBase.
Objaśnienie konfiguracji zmiennych środowiskowych aplikacji roboczej:
Poniższy przykład przedstawia hybrydowy schemat wdrażania wielośrodowiskowego z wykorzystaniem kontenerów Docker jako jednostek uruchomieniowych, wdrażając jednocześnie jedną aplikację wejściową i dwie aplikacje robocze za pomocą Docker Compose.
Podstawowe operacje zarządzania aplikacjami nie różnią się od trybu współdzielonej pamięci; prosimy zapoznać się z sekcją Tryb współdzielonej pamięci. Ta część koncentruje się głównie na treściach związanych z konfiguracją wielośrodowiskową.
Po zakończeniu wdrażania, po wejściu na stronę „App Supervisor” aplikacji wejściowej, na karcie „Environments” można wyświetlić listę zarejestrowanych środowisk roboczych. Zawiera ona identyfikator środowiska, wersję aplikacji roboczej, adres URL dostępu oraz status. Aplikacje robocze wysyłają sygnał bicia serca (heartbeat) co 2 minuty, aby zapewnić dostępność środowiska.

Podczas tworzenia aplikacji można wybrać jedno lub więcej środowisk uruchomieniowych, aby określić, w których aplikacjach roboczych zostanie wdrożona dana aplikacja. Zazwyczaj zaleca się wybór jednego środowiska. Wybór wielu środowisk jest uzasadniony tylko wtedy, gdy w aplikacji roboczej przeprowadzono podział usług i konieczne jest wdrożenie tej samej aplikacji w wielu środowiskach w celu równoważenia obciążenia lub izolacji możliwości.

Strona listy aplikacji wyświetla aktualne środowisko uruchomieniowe oraz informacje o statusie dla każdej aplikacji. Jeśli aplikacja jest wdrożona w wielu środowiskach, wyświetlanych będzie wiele stanów uruchomienia. Ta sama aplikacja w wielu środowiskach powinna w normalnych warunkach utrzymywać jednolity stan i wymagać ujednoliconego sterowania uruchamianiem i zatrzymywaniem.

Ponieważ uruchomienie aplikacji może wiązać się z zapisywaniem danych inicjalizacyjnych do bazy danych, aby uniknąć wyścigów (race conditions) w środowisku wielośrodowiskowym, aplikacje wdrożone w wielu środowiskach będą uruchamiane w kolejce.

Dostęp do aplikacji roboczych może odbywać się za pośrednictwem aplikacji wejściowej poprzez ścieżkę podrzędną /apps/:appName/admin.

Jeśli aplikacja jest wdrożona w wielu środowiskach, należy określić docelowe środowisko dla dostępu przez proxy.

Domyślnie adres dostępu proxy korzysta z adresu dostępu aplikacji roboczej, odpowiadającego zmiennej środowiskowej ENVIRONMENT_URL. Należy upewnić się, że adres ten jest dostępny w środowisku sieciowym, w którym znajduje się aplikacja wejściowa. Jeśli wymagane jest użycie innego adresu dostępu proxy, można go nadpisać za pomocą zmiennej środowiskowej ENVIRONMENT_PROXY_URL.