Rekomendowane wymagania sprzętowe i programowe oraz scenariusze implementacji EZD RP
Data publikacji 23.04.2024 r.
Wymagania sprzętowe
Do instalacji i prawidłowego działania systemu EZD RP potrzebna jest infrastruktura serwerowa o poniżej podanych parametrach.
1. Infrastruktura serwerowa przy wdrożeniach dla organizacji do 1000 użytkowników:
- procesor lub procesory: 16 vCPU;
- pamięć RAM: 32 GB;
- przestrzeń dyskowa: 16 TB (RAW), 100% przestrzeni na dyskach NVMe/SSD lub 30% przestrzeni na szybkich dyskach NVMe/SSD na potrzeby obliczeń i bufora danych plus 70% przestrzeni na dyskach SSD/HDD na potrzeby przechowywania danych.
Minimalne wymagania dla procesorów: architektura 64-bitowa x86, technologia produkcji 10 nm lub nowsza, obsługiwany zestaw instrukcji/technologii: PCIe 4.0, pamięć DDR4 2666 MHz lub szybsza, technologie wirtualizacji. Testy dla podanych konfiguracji przeprowadzone zostały na procesorach z wynikiem 71984 punktów w trybie Dual CPU (testy dostępne na: www.cpubenchmark.net.
2. Infrastruktura serwerowa przy wdrożeniach dla organizacji do 2000 użytkowników:
- procesor lub procesory: 32 vCPU;
- pamięć RAM: 96 GB;
- przestrzeń dyskowa: 32 TB (RAW), 100% przestrzeni na dyskach NVMe/SSD lub 30% przestrzeni na szybkich dyskach NVMe/SSD na potrzeby obliczeń i bufora danych plus 70% przestrzeni na dyskach SSD/HDD na potrzeby przechowywania danych.
3. Infrastruktura serwerowa przy wdrożeniach dla organizacji do 5000 użytkowników:
- procesor lub procesory: 48 vCPU;
- pamięć RAM: 256 GB;
- przestrzeń dyskowa: 80 TB (RAW), 100% przestrzeni na dyskach NVMe/SSD lub 30% przestrzeni na szybkich dyskach NVMe/SSD na potrzeby obliczeń i bufora danych plus 70% przestrzeni na dyskach SSD/HDD na potrzeby przechowywania danych.
4. Infrastruktura serwerowa przy wdrożeniach dla organizacji do 10000 użytkowników:
- procesor lub procesory: 96 vCPU;
- pamięć RAM: 512 GB;
- przestrzeń dyskowa: 160 TB (RAW), 100% przestrzeni na dyskach NVMe/SSD lub 30% przestrzeni na szybkich dyskach NVMe/SSD na potrzeby obliczeń i bufora danych plus 70% przestrzeni na dyskach SSD/HDD na potrzeby przechowywania danych.
Konfiguracja, wymagania sprzętowe oraz rekomendowana architektura większych instalacji wymaga kontaktu z konsultantami działu wsparcia technicznego EZD RP.
Powyższe parametry obejmują zapotrzebowanie na moc obliczeniową i przestrzeń dyskową dla:
- aplikacji EZD RP;
- bazy danych i systemów kolejkowych;
- klastrowego systemu plików;
- środowiska uruchomieniowego kontenerów Kubernetes.
Zasoby rekomendowane dla wdrożeń EZD RP nie uwzględniają dodatkowych wymagań sprzętowych koniecznych do działania środowiska wirtualizacyjnego, systemów bezpieczeństwa oraz infrastruktury sieciowej.
W przypadku wystąpienia niestandardowych obciążeń takich jak np. masowa archiwizacja danych lub równoległe przesyłanie dużej liczby plików, wymienione parametry sprzętowe mogą być niewystarczające.
Rekomendowane rozwiązania techniczne
W celu zapewnienia odpowiedniego poziomu bezpieczeństwa, niezawodności i wydajności zalecana jest wirtualizacja infrastruktury serwerowej oraz sieciowej i zastosowanie wbudowanych w platformy wirtualizacyjne rozwiązań klastrowych, funkcji failover oraz replikacji, a także ulokowanie urządzeń i systemów w dwóch niezależnych serwerowniach.
Zalecane jest, aby bazy danych i systemy kolejkowe oraz repozytorium działały w trybie wysokiej dostępności (failover, replikacja, klaster) i umożliwiały odtworzenie danych oraz przywrócenie działania usług zgodnie ze standardami przyjętymi w instytucji.
W zależności od oczekiwanego poziomu bezpieczeństwa oraz posiadanych kompetencji możliwe jest wykorzystanie darmowego oprogramowania open source, oprogramowania open source ze wsparciem producenta (subskrypcje odpłatne) lub komercyjnych rozwiązań w zakresie:
- relacyjnej bazy danych,
- klastrowego systemu plików lub repozytorium obiektowego (programowego lub sprzętowego),
- wirtualizacji infrastruktury (IaaS),
- środowiska uruchomieniowego kontenerów Kubernetes.
Środowisko uruchomieniowe systemu EZD RP
Aplikacja EZD RP została zaprojektowana i przygotowana do implementacji w środowisku uruchomieniowym kontenerów Kubernetes. Obrazy kontenerów wraz z kreatorami ułatwiającymi wdrożenie aplikacji i przeprowadzenie wstępnej konfiguracji są udostępnione w repozytorium. Kreator wspiera również instalacje aktualizacji oraz wdrażanie kolejnych wydań EZD RP.
W zastosowaniach produkcyjnych do prawidłowego działania aplikacji serwerowej EZD RP konieczne są następujące usługi i zasoby (niezależnie od środowiska Kubernetes):
- relacyjna baza danych zgodna z PostgreSQL lub MS SQL oraz konto systemowe umożliwiające utworzenie i korzystanie z bazy danych,
- systemy kolejkowe i buforujące dane: Redis, Rabbit,
- usługa składowania plików w postaci udziału sieciowego NFS lub repozytorium obiektowego (programowego lub sprzętowego) zgodnego z protokołem S3,
- publikowana nazwa DNS (publicznie lub wewnętrznie) dla serwera aplikacji EZD RP,
- certyfikat SSL typu Wildcard dla domeny w liczbie odpowiadającej uruchamianym instancjom (np. testowa, preprodukcyjna, produkcyjna),
- usługa wysyłki poczty SMTP i konto umożliwiające korzystanie z tej usługi.
Środowisko uruchomieniowe kontenerów Kubernetes i system operacyjny
Kubernetes jest środowiskiem pozwalającym uruchamiać aplikacje kontenerowe w sposób niezależny od używanych serwerów wirtualnych lub fizycznych. Dzięki dużej liczbie dostępnych rozwiązań komercyjnych i open source oraz otwartości platformy Kubernetes klaster lub jednowęzłowe środowisko można zainstalować i uruchomić na niemal dowolnym systemie operacyjnym niezależnie od stosowanego systemu wirtualizacji. Popularne, szeroko stosowane i rekomendowane obecnie środowisko to Linux Ubuntu. W przypadku dużych instytucji kilka serwerów Ubuntu będzie zasobem wielowęzłowego klastra Kubernetes. Dla większości zastosowań, zarówno w małej jaki dużej skali rekomendujemy instalację środowiska Kubernetes w oparciu o dystrybucję RKE2 (https://docs.rke2.io/).
Rekomendowane scenariusze implementacji EZD RP
W zależności od charakteru użycia systemu i planowanych obciążeń środowiska przez użytkowników i/ lub zintegrowane systemy rekomendowane są następujące warianty implementacji:
1. Jednowęzłowe środowisko Kubernetes ze zintegrowanymi usługami bazy danych i repozytorium plików.
Rozwiązanie to polecane jest do zastosowań testowych, ewaluacyjnych, edukacyjnych, deweloperskich z uwagi na brak dostatecznych zabezpieczeń chroniących przed utratą danych. Opis instalacji znajduje się w artykule: Instrukcja instalacji aplikacji EZD RP – środowisko testowe.
2. Jednowęzłowe środowisko Kubernetes połączone z zewnętrznymi usługami baz danych i repozytorium plików.
Wariant rekomendowany do zastosowań produkcyjnych. Można stosować go dla niewielkich obciążeń i maksymalnie 500 użytkowników. Oprócz środowiska Kubernetes należy zaimplementować relacyjne i nierelacyjne bazy danych, systemy kolejkowe i repozytorium plików oraz wskazać aplikacji EZD RP parametry połączenia do uruchomionych usług. Opis instalacji znajduje się w artykule: Instrukcja instalacji aplikacji EZD RP – środowisko do 500 użytkowników.
Oczekiwane parametry RPO i RTO determinują sposób implementacji baz danych i repozytorium plików oraz zastosowanie odpowiednio:
- rozwiązań klastrowych active-active lub active-passive;
- replikacji synchronicznej lub asynchronicznej danych i plików;
- określonych interwałów wykonywania kopii zapasowych i retencji backupu.
3. Wielowęzłowe klastrowe środowisko Kubernetes połączone z zewnętrznymi usługami baz danych, systemów kolejkowych i repozytorium plików – skalowalne i redundantne.
Wariant implementacji polecany dla zastosowań produkcyjnych dla dużej liczby użytkowników. Oferuje wysoki poziom dostępności systemu i zapewnia jego nieprzerwane działanie w przypadku awarii pojedynczych komponentów. Oprócz środowiska Kubernetes należy zaimplementować relacyjne i nierelacyjne bazy danych, systemy kolejkowe i repozytorium plików oraz wskazać aplikacji EZD RP parametry połączenia do uruchomionych usług.
Oczekiwane parametry RPO i RTO determinują sposób implementacji baz danych i repozytorium plików oraz zastosowanie odpowiednio:
- rozwiązań klastrowych active-active lub active-passive;
- replikacji synchronicznej lub asynchronicznej danych i plików;
- określonych interwałów wykonywania kopii zapasowych i retencji backupu.
Rekomendacje dotyczące przywracania systemu
Zalecane jest wykonywanie kopii bezpieczeństwa tylko danych perystentych:
- relacyjnej bazy danych (PostgreSQL/MS SQL),
- zawartości systemów kolejkowych i cache (Redis, Rabbit),
- repozytorium plików (udział NFS lub repozytorium obiektowe).
W przypadku wystąpienia awarii wymagającej przywrócenia systemu, należy odtworzyć dane i uruchomić ponownie usługi przechowujące dane persystente.
Pozostałe elementy środowiska uruchomieniowego EZD RP (maszyny wirtualne, środowisko Kubernetes, HA Proxy, kontenery aplikacji EZD RP) mogą być w przypadku awarii uruchomione lub zainstalowane ponownie i podłączone do odtworzonych już usług przechowywania danych. W celu przyspieszenia instalacji środowiska mogą być użyte narzędzia automatyzujące uruchomienie i instalację, np. szablony maszyn wirtualnych, Terraform, szablony maszyn wirtualnych, Ansible, HelmChart.