Jak rozwiązania High Availability wspierają wydajność Twoich usług?

Serwery dedykowane

Jak rozwiązania High Availability wspierają wydajność Twoich usług?

Katarzyna Węgiel

W prawdziwym świecie mogą wystąpić sytuacje, w których spadek wydajności serwerów może wystąpić w wyniku zdarzeń, począwszy od nagłego wzrostu ruchu, przerwy w dostawie prądu, zdarzenia losowe jak na przykład pożar, czy po prostu awarie. Takie sytuacje są nieuniknione. Jednak zamiast mieć nadzieję, że tak się nie stanie, powinieneś właściwie przygotować się, aby twoje systemy nie uległy awarii czy też nie miały kłopotów z obsłużeniem większego ruchu.

Odpowiedzią na problem jest zastosowanie konfiguracji architektury wysokiej dostępności (High Availiability). Architektura wysokiej dostępności to podejście polegające na definiowaniu komponentów, modułów lub implementacji usług systemu, które zapewnia optymalną wydajność operacyjną, nawet w okresach dużego obciążenia. Chociaż nie ma ustalonych zasad wdrażania systemów HA, generalnie istnieje kilka dobrych praktyk, których należy przestrzegać, aby uzyskać jak najwięcej przy jak najmniejszych zasobach.

Dlaczego warto rozważyć wdrożenie High Availiability?

Zdefiniujmy czas przestoju, zanim przejdziemy dalej. Przestój to okres, w którym system (serwer, strona) nie jest dostępny do użytku lub nie odpowiada. Przestój może spowodować ogromne straty w firmie, ponieważ całe jej działanie jest wstrzymywane, gdy ich systemy nie działają. 

Jakie są rodzaje przestojów?

Zaplanowany czyli przestój w następnstwie prac konserwacyjnych, których nie da się uniknąć. Obejmuje to wdrożenie poprawek, aktualizowanie oprogramowania, a nawet zmiany w schemacie bazy danych.

Nieplanowany taki spowodowany przez nieprzewidziane zdarzenie, jak awaria sprzętu lub oprogramowania. Może się to zdarzyć z powodu przerw w zasilaniu lub awarii komponentu.

Zaplanowane przestoje są generalnie wyłączone z obliczeń wydajności.Głównym celem wdrożenia architektury wysokiej dostępności jest upewnienie się, że system lub aplikacja jest skonfigurowana do obsługi różnych obciążeń i różnych awarii przy minimalnym lub żadnym przestoju. 

Jak można zmierzyć niedostępność?

Oczekiwania Klientów względem pełnej dostępności systemu są wprost proporcjonalne do prowadzonych przez zespół Kei analiz i opracowywania rozwiązań wspierających tę zależność. Margines, na który Klient może sobie pozwolić na ewentualny komunikat „not found” jest minimalny. W trosce o dostępność systemu, zwłaszcza serwisy związane z ebiznesem, bankowością, czy jednostki służby zdrowia tolerancję dla SLA (Service Level Agreement). mają bardzo niską.

Service Level Agreement, czyli dostępność systemu

Dostępność systemu określana jest parametrem SLA (Service Level Agreement).
SLA porządkuje funkcjonowanie infrastruktury. Co więcej tak zwana gwarancja SLA to zobowiązanie dostawcy do zapewnienia w okresie rozliczeniowym ciągłości działania.Poziom SLA określany jest w specyfikacji technicznej i oznacza minimalny czas dostępności usługi, wyrażony w procentach.
Do jego opisu używa się systemu dziewiątkowego. Co to oznacza? To założenie, podawane najczęściej w procentach rozumiane jako gwarancja dostępności. Jeżeli dostawca szacuje ten parametr na wartość 99% oznacza to, że nasz system w okresie miesięcznym może być niedostępny 7 godzin. Jeżeli ten parametr wyniesie 99.99% taka niedostępność szacowana jest na 4,5 minuty. Co się stanie w przypadku gdy od miesięcy przygotowujemy akcję promocyjną dla naszych Klientów, a SLA określone na 99% przypadnie właśnie na ten dzień?

Poziom SLASzacowana maksymalna niedostępność
99%ok. 7 h
99,9%ok. 43 min
99,99%ok. 4,5 min
100 %Rozwiązania HA i budowa klastrowa zapewniają pełną dostępność
Poziom SLA. Szacowana maksymalna niedostępność usług

Rozwiązanie High Availability – jak to działa?

Ciągła praca serwera i zapewnienie jego pełnej dostępności jest kluczowe zwłaszcza kiedy prowadzisz swój biznes online. Dlatego też, aby Twoje usługi były dostępne cały czas potrzebujesz rozwiązania, które SLA zapewnia na poziomie 100 %.
Rozwiązanie HA to zapewnienie klastra wysokiej dostępności, którego zadaniem jest zapewnienie stałego dostępu do serwera i zapewnienie bezawaryjnego działania usług. To opracowanie całego projektu a także zaplanowanie architektury od podstaw, która nie uznaje niedostępności serwera, a jego klastrowa budowa zapewnia zintegrowane środowisko dla poprawnego funkcjonowania usługi.

Zdolność do ciągłej dostępności serwera w przypadku rozwiązań HA jest możliwa dzięki wdrożeniu klastra bazy danych i uruchomieniu kolejnych serwerów aplikacji.
Załóżmy sytuację, gdzie latency, czyli czas pomiędzy żądaniem użytkownika, a odpowiedzią serwera jest powyżej akceptowalnej normy. Aby rozwiązać problem przepełnienia serwera stosuje się tak zwane środowisko klastrowe. To zespół serwerów w obrębie którego działają te same aplikacje z taką samą konfiguracją. Architektura rozwiązania składająca się z klastrów umożliwia osiągnięcie Load balancingu. Żądanie jest przekierowywane do serwera, to sprawia, że system lepiej sobie radzi z obciążeniem. Środowisko oparte na budowie klastrowej pozwala uniknąć nieprzewidzianych sytuacji związanych np. z awarią systemu, błędem aplikacji bądź innego błędu infrastruktury. HA pozwala przekierowywać żądanie serwera do pozostałych, jeżeli ten nie jest w stanie go przeprocesować. Wdrożenie HA idzie zawsze w parze z projektowaniem działań dotyczących balansowania ruchu, dostępem sieciowym czy wirtualizacją.

Czy wdrożenie HA jest  warte swojej ceny?

Fakt, że przejście na architekturę wysokiej dostępności zapewnia wyższą wydajność, natomiast powinieneś zadać sobie pytanie, czy uważasz, że decyzja jest uzasadniona z punktu widzenia finansów. Należy tutaj odpowiedzieć sobie na pytanie, czy dodatkowy czas pracy serwerów, strony, aplikacji jest wart pieniędzy, które powinienem zainwestować w infrastrukturę HA. Musisz zadać sobie pytanie, jak szkodliwe mogą być potencjalne przestoje dla Twojej firmy i jak ważne są Twoje usługi w prowadzeniu firmy.

Jak wdrożyć High Availiability?

Nieintuicyjne dodawanie do systemu większej liczby komponentów nie pomaga w zwiększeniu jego stabilności i wysokiej dostępności. W rzeczywistości może to prowadzić do czegoś odwrotnego, ponieważ większa liczba komponentów zwiększa prawdopodobieństwo awarii. Nowoczesne projekty pozwalają na rozłożenie obciążeń na wiele instancji, takich jak sieć lub klaster, co pomaga w optymalizacji wykorzystania zasobów, maksymalizacji wydajności, minimalizacji czasów odpowiedzi i unikaniu przeciążenia dowolnego systemu w procesie znanym jako równoważenie obciążenia. Polega również na przełączeniu się na zasób rezerwowy, taki jak serwer, komponent lub sieć w przypadku awarii aktywnego, znanego jako systemy Failover.

  • Architektura oparta na klastrach
    Infrastruktura zaprojektowana jest w ten sposób, że współtworzy go kilka serwerów o tej samej architekturze i zadaniach. Jej celem jest zapewnienie wydajności i zwiększonego bezpieczeństwa. Przewarzanie danych odbywa się w sposób ciągły i niezależny. Oznacza to, że w przypadku wystąpienia awarii lub nieprzewidzianej sytuacji zadanie serwera przejmują pozostałe. Celem architektury klastrowej i projektowania systemu High Availability jest więc stworzenie takiego rozwiązania, które będzie zgodne z konwencjami wydajności przy jednoczesnej minimalizacji kosztów i złożoności. 

  • Load balancing
    Duża ilość żądań wysyłanych przez użytkowników może skutkować przeładowaniem serwera. Serwer nie będzie w stanie obsłużyć zapytania w akceptowalnym czasie. Load balancing zmniejsza latency, dzięki równomiernym rozłożeniu obciążenia pomiędzy serwery. Moduł równoważenia decyduje, który z zasobów systemowych architektury będzie procesował dane zapytania. Modułowa architektura równoważenia sprawia, że żaden z zasobów nie zostanie przeciążony.

  • Redundancja połączenia sieciowego
    Nieprzerwalna dostępność infrastruktury dostępna dzięki sieciowemu systemowi plików i redundacji połączenia. Aby usługi i aplikacje działały w sposób stały HA zapewnia redundancję połączenia internetowego. W przypadku odnotowania awarii, ruch z połączenia kierowany jest na drugie łącze, funkcjonujące jako łącze zapasowe.

  • Wirtualizacja
    To możliwość rozwijania elastyczności rozwiązania. Wirtualizacja to dodatkowa opcja budowania architektury rozwiązania z rozwijaniem własnych funkcji. Wirtualizacja pozwala osiągnąć większą niezależność od sprzętu. W przypadku nieprzewidzianego zdarzenia następuje migracja maszyn wirtualnych na hosty, które pracują zgodnie z założeniami.
    Jest to możliwe dzięki tworzeniu symulowanego środowiska komputerowego. Wykorzystuje on uwzględnione we wdrożeniu konfiguracji zasoby fizyczne poprzez utworzenie wielu zasobów na bazie jednego komputera lub serwera. Wpływa to na skalowalność, a w konsekwencji elastyczność sieci.
  • Zróżnicowane lokalizacje geograficzne
    Skalowanie aplikacji, a następnie baz danych to naprawdę duży krok naprzód, ale co, jeśli wszystkie serwery znajdują się w tej samej lokalizacji fizycznej, a przydarzy się klęska żywiołowa, która wpłynie na centrum danych, w którym znajdują się serwery? Może to prowadzić do potencjalnie ogromnych przestojów. Konieczne jest utrzymywanie serwerów w różnych lokalizacjach. Większość nowoczesnych usług internetowych pozwala wybrać lokalizację geograficzną serwerów. Powinieneś wybierać mądrze, aby upewnić się, że twoje serwery są rozmieszczone na całym świecie, a nie zlokalizowane w jednym obszarze.

Standardowe rozwiązania oparte na High Availability wymaga wypracowania infrastruktury opartej na klastrze dwóch serwerów oraz macierzy dyskowej. Tak, aby w przypadku wykrycia awarii aplikacji, maszyny bądź hosta zapewnić ich dostępność i przywrócić stan pierwotny. Tutaj jednak warto zaznaczyć, że budowanie infrastruktury jest zawsze przypadkiem jednostkowym wymagającym dogłębnej analizy zastanego środowiska. Cały system projektujemy zgodnie z potrzebami Klienta.

Proces przebiega w kilku etapach

1. Analiza potrzeb Klienta i jego infrastruktury. To punkt wyjściowy rozpoczęcia prac.
2. Projektowanie infrastruktury zgodnie ze specyfikacją techniczną i założonymi wymaganiami.
3. Przygotowanie sprzętu i infrastruktury. Symulacja środowiska i testy operacyjne.
4. Udostępnienie i wdrożenie rozwiązania w środowisko Klienta
5. Testy wydajnościowe
6. Opieka i administracja serwerem Klienta oraz całodobowy support.


Potrzebujesz większej niezależności? Rozwiązanie High Availability to dostępność Twoich usług w 100%. Klastrowa budowa to także większa wydajność Twoich usług. Skróć latency do minimum. Chcesz zaprojektować własne środowisko HA? Skontaktuj się z nami.

Jak spodobał Ci się ten artykuł?
5 Liczba ocen: 2

Katarzyna Węgiel

Pasjonatka i praktyk działań inbound marketing. Testerka nowych rozwiązań pozycjonujących markę w umyśle klienta. Łączę teorię z praktyką. Wykorzystuję social media do efektywnego budowania relacji z klientem. Na co dzień zajmuję się kreowaniem wizerunku i świadomości marki w komunikacji on i off –line.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Poczytaj więcej na naszym blogu