Co to jest High Availability (HA)?
W artykule Jak działa load balancing? pokazaliśmy, w jaki sposób ruch może zostać rozdzielony pomiędzy kilka serwerów. Sam load balancing nie gwarantuje jednak ciągłości działania usługi. Jeżeli wszystkie serwery korzystają z jednego punktu awarii, np. pojedynczej bazy danych lub jednego hosta wirtualizacyjnego, cały system nadal pozostaje podatny na przestoje. Właśnie tutaj pojawia się High Availability (HA), czyli wysoka dostępność. To sposób projektowania infrastruktury, którego celem jest utrzymanie działania aplikacji nawet wtedy, gdy awarii ulegnie pojedynczy serwer, dysk, zasilanie, przełącznik sieciowy, a czasem nawet całe centrum danych. Osiąga się to poprzez eliminowanie tzw. Single Point of Failure (SPOF), czyli pojedynczych punktów awarii.
Planujesz środowisko o podwyższonej dostępności? W SEOHOST możesz rozpocząć od wydajnych serwerów VPS, przejść na serwery dedykowane, a następnie rozbudować infrastrukturę o load balancing, replikację danych oraz rozwiązania HA dostosowane do potrzeb Twojej aplikacji.
- Jak działa High Availability?
- Tradycyjny VPS a infrastruktura HA
- HA we własnej infrastrukturze czy w chmurze?
Jak działa High Availability?
Najprościej mówiąc, infrastruktura HA zakłada, że awaria jednego elementu nie może zatrzymać działania całego systemu.
Oznacza to, że krytyczne komponenty posiadają swoje odpowiedniki. Serwery aplikacyjne pracują w klastrze, baza danych posiada replikę, dane znajdują się na wielu nośnikach, a ruch użytkowników może zostać automatycznie skierowany do działających zasobów. Gdy jeden element przestaje odpowiadać, jego rolę przejmuje drugi, często bez zauważalnej przerwy dla użytkownika.
Internet
│
▼
Load Balancer
┌───────┴────────┐
▼ ▼
Aplikacja 1 Aplikacja 2
│ │
└───────┬────────┘
▼
Replikowana baza danych
Jak już opisaliśmy w poradniku Jak działa load balancing?, load balancer odpowiada za kierowanie ruchu. High Availability obejmuje znacznie więcej — również przechowywanie danych, mechanizmy automatycznego przełączania (Failover) oraz monitorowanie stanu wszystkich elementów infrastruktury.
Load balancing i High Availability nie są synonimami. Bardzo często występują razem, ale rozwiązują dwa różne problemy. Load balancing rozdziela ruch, natomiast HA odpowiada za ciągłość działania całego środowiska.
Tradycyjny VPS a infrastruktura HA
To jedno z najczęściej zadawanych pytań przez osoby planujące rozwój aplikacji.
Klasyczny VPS działa zazwyczaj na jednym fizycznym serwerze. Nawet jeżeli wykorzystuje szybkie dyski NVMe, redundantne zasilanie czy macierze RAID, nadal istnieje jeden host fizyczny odpowiedzialny za działanie maszyny wirtualnej.
Jeżeli ulegnie on poważnej awarii sprzętowej, VPS stanie się niedostępny do momentu usunięcia problemu lub odtworzenia maszyny na innym serwerze. To właśnie przykład klasycznego Single Point of Failure.
| Klasyczny VPS | Środowisko High Availability |
|---|---|
| jedna maszyna wirtualna | kilka instancji aplikacji |
| pojedynczy host fizyczny | wiele hostów lub stref dostępności |
| awaria oznacza przestój | automatyczny failover |
| jeden punkt awarii | redundancja infrastruktury |
Nie każdy VPS jest usługą High Availability. Niektórzy dostawcy oferują klastry HA lub tzw. HA VPS, jednak klasyczna maszyna wirtualna i infrastruktura HA to dwa różne rozwiązania. Warto sprawdzić architekturę usługi, a nie kierować się wyłącznie nazwą handlową.
HA we własnej infrastrukturze czy w chmurze?
To zależy przede wszystkim od charakteru aplikacji.
Jeżeli uruchamiasz stronę firmową, blog lub niewielki sklep internetowy, dobrze skonfigurowany VPS albo serwer dedykowany często okazuje się całkowicie wystarczający. Budowa pełnego środowiska HA mogłaby jedynie zwiększyć koszty bez odczuwalnych korzyści.
Sytuacja wygląda inaczej w przypadku aplikacji SaaS, systemów ERP, platform sprzedażowych czy usług dostępnych przez całą dobę. Tutaj każda minuta przestoju oznacza utratę klientów lub przychodów. W takich środowiskach bardzo często wykorzystuje się platformy publiczne, takie jak Google Cloud Platform, AWS czy Microsoft Azure, gdzie aplikacje uruchamiane są jednocześnie w wielu strefach dostępności, a usługi bazodanowe (np. Cloud SQL) automatycznie utrzymują repliki danych i przełączają ruch w przypadku awarii.
Nie oznacza to jednak, że chmura zawsze będzie najlepszym wyborem. Coraz częściej spotykamy architekturę hybrydową, w której aplikacja działa na własnych serwerach VPS lub dedykowanych, natomiast kopie zapasowe, replikacja danych czy wybrane usługi bazodanowe wykorzystują zasoby chmury publicznej.
Najpierw określ wymagany poziom dostępności, dopiero później wybierz technologię. Dla jednych projektów najlepszym rozwiązaniem będzie pojedynczy VPS z regularnymi kopiami zapasowymi. Inne będą wymagały klastra serwerów, load balancera, replikowanej bazy danych i środowiska rozproszonego pomiędzy kilkoma strefami dostępności.
Jeżeli chcesz lepiej zrozumieć nowoczesne środowiska serwerowe, przeczytaj również Co to jest Load Balancer?, Czy load balancing działa na hostingu współdzielonym?, Jak działa load balancing? oraz Serwer VPS czy chmura – co wybrać?. Dzięki temu łatwiej ocenisz, kiedy wystarczy pojedynczy serwer, a kiedy warto pomyśleć o architekturze High Availability.