High availability – jak zbudować infrastrukturę odporną na awarie

admin
High availability – jak zbudować infrastrukturę odporną na awarie - ilustracja artykulu

High availability to sposób budowania infrastruktury IT, w którym awaria pojedynczego elementu nie zatrzymuje działania usługi. Model high availability opiera się na redundancji: zamiast jednego serwera aplikacyjnego pracują co najmniej dwa, zamiast jednego dysku działa macierz, a ruch rozdziela load balancer wycofujący z puli węzeł, który przestaje odpowiadać. Różnica między architekturą klasyczną a redundantną jest mierzalna. Pojedynczy serwer o dostępności 99,5 procent generuje około 43 godzin przestoju rocznie, klaster na poziomie 99,99 procent – niecałe 53 minuty. Dla sklepu obracającego 300 tysięcy złotych miesięcznie te 42 godziny różnicy oznaczają stratę rzędu kilkunastu tysięcy złotych, nie licząc kosztów wizerunkowych i spadku widoczności po serii błędów 5xx zarejestrowanych przez roboty wyszukiwarek.

Dostępność mierzona w dziewiątkach – co naprawdę oznacza SLA

Dostępność opisuje się procentem czasu, w którym usługa odpowiada poprawnie. Każda kolejna dziewiątka po przecinku skraca dopuszczalny przestój mniej więcej dziesięciokrotnie i zwykle podwaja koszt infrastruktury. Zanim podpiszesz umowę z dostawcą, przelicz jego obietnicę na godziny i minuty – dopiero wtedy liczba nabiera sensu operacyjnego.

Poziom SLAPrzestój roczniePrzestój miesięcznieTypowe zastosowanie
99,0%ok. 87 godzinok. 7,2 godzinyblog, wizytówka firmowa
99,9%ok. 8,8 godzinyok. 43 minutysklep, portal treściowy
99,95%ok. 4,4 godzinyok. 22 minutyaplikacja SaaS, panel klienta
99,99%ok. 53 minutyok. 4,4 minutysystemy płatnicze, API
99,999%ok. 5 minutok. 26 sekundtelekomunikacja, giełdy

Umowy serwisowe zwykle wyłączają z rozliczenia okna serwisowe zgłoszone z wyprzedzeniem, awarie po stronie operatora zewnętrznego oraz skutki błędów w kodzie klienta. Przeczytaj załącznik z definicjami, zanim uznasz deklarowane 99,99 procent za gwarancję ciągłości. Rekompensata najczęściej wynosi kilka procent miesięcznego abonamentu, a nie wartość utraconej sprzedaży.

Dostępność mierz zawsze z zewnątrz, z kilku niezależnych lokalizacji. Serwer może odpowiadać poprawnie na zapytanie z tej samej szafy i jednocześnie być nieosiągalny dla użytkownika z drugiego końca kraju z powodu problemu z trasowaniem. Sondy rozstawione w trzech miastach kosztują kilkadziesiąt złotych miesięcznie i eliminują ten martwy punkt.

Redundancja sprzętowa i sieciowa jako fundament architektury

Redundancja zaczyna się od zasilania i sieci, a dopiero potem dotyczy serwerów. Szafa w centrum danych powinna mieć dwa niezależne tory zasilania, dwa przełączniki i dwa łącza od różnych operatorów. Bez tego najlepiej skonfigurowany klaster aplikacyjny przestanie działać razem z pojedynczym switchem za tysiąc złotych.

Na start wiele zespołów buduje parę maszyn wirtualnych u jednego dostawcy – popularnym wyborem jest ovh vps uruchomiony w dwóch różnych strefach dostępności, przy koszcie rzędu 40–120 złotych miesięcznie za węzeł. Rozłożenie maszyn między lokalizacje chroni przed awarią zasilania czy chłodzenia w jednej serwerowni.

Drugi poziom to redundancja procesów. Aplikacja musi działać bezstanowo, żeby dowolny węzeł obsłużył dowolne żądanie. Sesje przenosi się do Redisa, pliki do storage obiektowego zgodnego z S3, a konfigurację do repozytorium. Serwer staje się wtedy zasobem wymiennym, a nie unikalnym bytem, który trzeba ratować za wszelką cenę.

Load balancer i przełączanie failover

Load balancer wykonuje health check co dwie–trzy sekundy i wycofuje węzeł po dwóch nieudanych próbach. Przy takich ustawieniach użytkownik odbiera awarię jako pojedyncze dłuższe ładowanie strony. HAProxy, nginx oraz keepalived z wirtualnym adresem IP realizują ten scenariusz bez żadnych opłat licencyjnych.

Sam load balancer bywa jednak pojedynczym punktem awarii. Rozwiązaniem jest para instancji z protokołem VRRP i współdzielonym adresem, który w ułamku sekundy wędruje na maszynę zapasową. Test przełączenia wykonuj raz na kwartał, w oknie serwisowym, z pełnym zapisem przebiegu i pomiarem czasu powrotu do normalnej pracy.

Replikacja danych i backup – warstwa najczęściej pomijana

Baza danych jest najtrudniejszym elementem układanki, ponieważ przechowuje stan. Replikacja asynchroniczna MySQL czy PostgreSQL kosztuje niewiele, ale przy nagłej awarii mastera potrafi zgubić ostatnie transakcje. Replikacja synchroniczna eliminuje ten problem kosztem opóźnienia zapisu, rosnącego wraz z odległością między lokalizacjami.

Rozdziel dwa pojęcia. RPO określa, ile danych możesz stracić, RTO – jak długo usługa może pozostawać niedostępna. Sklep z kilkuset zamówieniami dziennie zwykle akceptuje RPO na poziomie minuty i RTO poniżej kwadransa. Te dwie liczby wyznaczają realny budżet całego wdrożenia.

  • Trzy kopie danych na dwóch różnych nośnikach, w tym jedna poza główną lokalizacją.
  • Jedna kopia offline lub w trybie niezmiennym, odporna na szyfrowanie przez ransomware.
  • Retencja co najmniej 30 dni dla kopii dziennych i 12 miesięcy dla miesięcznych.
  • Automatyczna weryfikacja sumy kontrolnej archiwum bezpośrednio po jego utworzeniu.
  • Udokumentowany, mierzony czas odtworzenia pełnej bazy na czystą maszynę.

Kopia zapasowa nie jest kopią, dopóki nie odtworzysz z niej działającego środowiska. Wyznacz jeden dzień w miesiącu na próbne przywrócenie bazy na maszynę testową i zmierz czas operacji. Zespoły, które tego nie robią, odkrywają uszkodzone archiwa dokładnie w momencie największej presji.

High availability – jak zbudować infrastrukturę odporną na awarie - zdjecie w tresci
Zdj. tematyczne: High availability – jak zbudować infrastruktu (fot. Brett Sayles/Pexels)

High availability w witrynach, sklepach i usługach chmurowych

Najczęstszym przypadkiem wdrożenia pozostaje witryna oparta na WordPressie. Objawem przeciążenia bywa nie tylko biały ekran, ale też sytuacja, w której wordpress logowanie do panelu trwa kilkanaście sekund. Powtarzające się błędy 503 osłabiają efekty, jakie daje pozycjonowanie strony, ponieważ roboty ograniczają budżet indeksowania dla niestabilnego serwisu.

Sklepy tracą jeszcze szybciej. Gdy feed produktowy przestaje odpowiadać, google merchant oznacza pozycje jako niedostępne i wycofuje je z kampanii, a powrót do pełnej widoczności zajmuje kilka dni. Utrzymanie dostępności samego feedu bywa więc pilniejsze niż dostępność warstwy prezentacyjnej sklepu.

Odporność projektuje się na etapie architektury, nie po pierwszej awarii. Dojrzałe projektowanie stron internetowych zakłada rozdzielenie warstwy statycznej od dynamicznej, cache na brzegu sieci i przemyślany tryb degradacji. Podobnie planuje się narzędzia biurowe – google workspace cena za jedną skrzynkę to kilkadziesiąt złotych miesięcznie, ale poczta firmowa przestaje zależeć od pojedynczego serwera stojącego w biurze.

Cache i tryb ograniczonej funkcjonalności

Statyczna kopia serwisu wydawana z cache pozwala przetrwać awarię backendu bez komunikatu o błędzie. Użytkownik widzi treść, a formularze pozostają czasowo wyłączone. Dla widoczności ma to konkretne znaczenie: pozycjonowanie strony w google opiera się na stabilnym dostępie robota do dokumentów, a nie na chwilowych szczytach ruchu.

Monitoring, procedury i stanowisko dyżurnego administratora

Klaster bez monitoringu daje złudne poczucie bezpieczeństwa. Zbieraj metryki nie rzadziej niż raz na minutę, ustaw alerty na saturację dysku, opóźnienie replikacji oraz liczbę odpowiedzi 5xx. Powiadomienia kieruj do dwóch niezależnych kanałów, bo awaria dostawcy poczty potrafi wyciszyć cały system alarmowy.

Dyżur techniczny to również ergonomia. Drugi monitor do komputera z panelem 27 cali i rozdzielczością QHD, kosztujący około 900–1400 złotych, mieści komplet wykresów bez przewijania. Cicha klawiatura mechaniczna z przełącznikami liniowymi skraca czas wpisywania długich poleceń i ogranicza literówki w krytycznych momentach przełączania węzłów.

Sprzęt dobiera się do zadania i do trybu pracy. Klawiatura gamingowa mechaniczna z podświetleniem sprawdza się podczas nocnych dyżurów, kompaktowa klawiatura mechaniczna 60 zwalnia miejsce na biurku pod notatki, a tablet graficzny wacom w przedziale 400–800 złotych ułatwia szkicowanie schematów przełączeń podczas rozmowy z zespołem.

Najważniejszy pozostaje jednak runbook: krótki dokument opisujący, kto podejmuje decyzję o przełączeniu, jakie polecenia uruchamia i komu raportuje status. Ćwiczenie awarii raz na kwartał, z celowym wyłączeniem jednego węzła w godzinach niskiego ruchu, weryfikuje procedurę skuteczniej niż każda teoretyczna analiza ryzyka.

Jak obliczyć koszt wdrożenia high availability w małej firmie?

Zacznij od wyceny godziny przestoju. Podziel miesięczny przychód generowany online przez liczbę godzin sprzedażowych i dodaj koszt pracy zespołu, który w czasie awarii nie wykonuje swoich zadań. Firma o przychodzie 300 tysięcy złotych miesięcznie traci zwykle 800–1500 złotych za godzinę niedostępności. Następnie zsumuj koszty redundancji: drugi węzeł to 40–120 złotych miesięcznie, load balancer 30–60 złotych, replika bazy kolejne 60–150 złotych, monitoring zewnętrzny 30–80 złotych. Doliczyć trzeba jednorazową konfigurację, zwykle 15–40 godzin pracy administratora. Jeśli roczny koszt redundancji jest niższy niż wartość przestojów, które eliminuje, inwestycja zwraca się w pierwszym roku eksploatacji.

Czy każda witryna firmowa potrzebuje klastra i replikacji?

Nie. Wizytówka firmowa z ruchem rzędu kilkuset odsłon dziennie w zupełności wystarczająco zabezpiecza się poprawnym backupem, monitoringiem dostępności i dostawcą hostingu z realnym SLA na poziomie 99,9 procent. Budowa klastra dla takiego serwisu podnosi koszt utrzymania trzykrotnie i wprowadza złożoność, której nikt w firmie nie będzie umiał obsłużyć o trzeciej w nocy. Redundancja staje się opłacalna wtedy, gdy witryna bezpośrednio generuje przychód, obsługuje zamówienia, rezerwacje albo płatności, lub gdy przestój blokuje pracę zespołu. Praktyczny próg to sytuacja, w której godzina niedostępności kosztuje więcej niż miesięczny abonament za drugi węzeł i replikę bazy.

Co odróżnia rozwiązanie HA od planu disaster recovery?

Klaster HA chroni przed awarią pojedynczego komponentu w obrębie jednego środowiska i działa automatycznie, w skali sekund. Disaster recovery odpowiada na scenariusz utraty całej lokalizacji: pożar, zalanie, długotrwały brak zasilania, atak ransomware szyfrujący również repliki. To procedura uruchamiana świadomie przez człowieka, mierzona w godzinach, oparta na kopiach przechowywanych poza główną infrastrukturą. Oba mechanizmy się uzupełniają i żaden nie zastępuje drugiego. Replikacja synchroniczna wiernie powieli polecenie usunięcia tabeli na wszystkie węzły w ułamku sekundy, więc bez niezależnego, niezmiennego backupu i przetestowanej procedury odtworzenia nawet najbardziej rozbudowany klaster nie uratuje danych.

Podobne Posty

Zostaw komentarz