Czym jest wysoka dostępność serwera lub strony?
Każdy kto prowadzi biznes internetowy, powinien być z tym tematem zaznajomiony. A na pewno przypomina sobie go w momencie, kiedy jego strona czy sklep po prostu nie działa. Wtedy biznes, kolokwialnie mówiąc, leży i nie zarabia. A przecież awarie się zdarzają. Czy da się tego jakoś uniknąć oraz ile może to kosztować?
Prowadząc analogowy biznes, musisz przeciwdziałać wielu niespodziewanym problemom. Zajmując się fotografią ślubną, masz po kilka lustrzanek i kamer. Prowadząc firmę transportową, dbasz o zapasowe auto, części zamienne lub szybki serwis u mechanika. Pewne ryzyka bierzesz na siebie, a innym jesteś w stanie przeciwdziałać. W cyfrowym świecie jest dokładnie tak samo, o czym niestety się zapomina lub tego nie wie.
Co gorsza, marketingowe slogany typu „chmura działa zawsze, wgraj to na serwer to nie zniknie”, nie pomagają wcale w zrozumieniu tematu dostępności.
Czas zatem zmierzyć się z tematem dostępności usług internetowych, bo jak zapewne się już domyślasz, one także potrafią nie działać.
Spis treści
Podcast
If you would rather listen to us than read the article, below you will find our podcast. This is the audio version of this article. You can listen to it through the system’s „Podcasts” application on iOS, your choice of Android, iTunes, YouTube, SoundCloud i Spreaker.
Czym jest dostępność?
Dostępność (ang. availability), jest jedną z podstawowych miar, która określa stopień odporności danego systemu na awarie. Dostępność to czas, w którym dany system lub usługa działa w sposób bezawaryjny.
Jeżeli za jednostkę czasu przyjmiemy 1 dzień, a dostępność systemu wynosiła 75%, to oznacza, że świadczył on usługi przez 18 godzin, a w pozostałe 6 godzin nie. Kiedy jest mowa o dostępności systemów informatycznych, korzysta się również z przyjętej klasyfikacji dostępności (ang. availability class).
Niedostępność | ||||||
---|---|---|---|---|---|---|
Dostępność | Klasa | Typ | Rocznie | Miesięcznie | Tygodniowo | Dziennie |
90% | 1 | Unmanaged | 36d 12g 34m 55,2s | 3d 1g 2m 54,6s | 16g 48m 0,0s | 2g 24m 0,0s |
99% | 2 | Managed | 3d 15g 39m 29,5s | 7g 18m 17,5s | 1g 40m 48,0s | 14m 24,0s |
99,9% | 3 | Well Managed | 8g 45m 57,0s | 43m 49,7s | 10m 4,8s | 1m 26,4s |
99,99% | 4 | Fault Tolerant | 52m 35,7s | 4m 23,0s | 1m 0,5s | 8,6s |
99,999% | 5 | High-Availability | 5m 15,6s | 26,3s | 6,0s | 0,9s |
99,9999% | 6 | Very-High-Availability | 31,6s | 2,6s | 0,6s | 0,1s |
99,99999% | 7 | Ultra-Availability | 3,2s | 0,3s | 0,1s | 0,0s |
Klasa dostępności mówi tak naprawdę, ile jest dziewiątek. Im jest ona większa, tym bardziej dostępny jest system. Popularne usługi sieciowe, hostingi oferują dostępności w przedziale 90% – 99,9%. Oczywiście skala dostępności jest otwarta, zatem nic nie stoi na przeszkodzie, aby oferować usługi z dostępnością np. 95%.
Czym jest Service Level Agreement?
SLA, czyli Service Level Agreement (pol. umowa o gwarantowanym poziomie świadczenia usług), jest umową, która mówi między innymi o tym na jakim poziomie dostępności są świadczone dane usługi. Umowa taka może zawierać również klauzule na temat kar umownych za nie spełnienie wymaganej dostępności. Przykładem mogą być usługi w chmurze AWS.
Usługa AWS | SLA | Kiedy rekompensata | Wielkość rekompensaty |
---|---|---|---|
EC2 | 99,99% | Mniejsze niż 99,99%, ale większe lub równe 99,0% | 10% |
Mniejsze niż 99,0%, ale większe lub równe 95,0% | 30% | ||
Mniejsze ni 95,0% | 100% | ||
RDS | 99,95% | Mniejsze niż 99,95%, ale większe lub równe 99,0% | 10% |
Mniejsze niż 99,0%, ale większe lub równe 95,0% | 25% | ||
Mniejsze ni 95,0% | 100% | ||
S3 | 99,9% | Mniejsze niż 99,9%, ale większe lub równe 99,0% | 10% |
Mniejsze niż 99,0%, ale większe lub równe 95,0% | 25% | ||
Mniejsze niż 95,0% | 100% |
Patrząc na SLA w Amazon Web Services, należy pamiętać, że tyczy się ona usług jakie oni oferują, a nie maszyny wirtualnej. SLA dla usługi typu EC2 nie oznacza dostępności tego serwera, a usługi, która umożliwia jego stworzenie i zarządzanie. Oznacza to, że w przypadku awarii samej maszyny, masz nadal dostępną usługę, dzięki której uruchomisz zapasowy serwer.
Jaka dostępność jest odpowiednia dla mnie?
„Moja strona musi działać zawsze”, „Straciłem miliony przez te 20 minut awarii!” – ile to razy było słyszane lub czytane w sieci. Każdemu z nas zależy przecież na jak najwyższej dostępności usług. Pamiętaj, że systemy o dostępności 99,99% potrafią bardzo dużo kosztować. Jak zatem ocenić jaka dostępność będzie odpowiednia?
Na początku zacznij od analizy ryzyka, jakie wiąże się z niedostępnością danej usługi. Awarie lubią pojawiać się w najmniej oczekiwanym momencie np. podczas zwiększonej sprzedaży na Black Friday. To, że strona czy serwer działały idealnie przez ostatnie miesiące, nie musi oznaczać, że tak będzie jutro.
Każdy właściciel biznesu musi zadać sobie sam takie pytanie, przez jaki czas dana usługa może nie działać, aby nie było to groźne? Być może prowadząc sklep internetowy sprzedający jeden rozmiar gwoździ nie stracimy za wiele, kiedy będzie wyłączony przez kilka godzin. Co innego kiedy prowadzimy np. system monitorujący parametry życiowe danego pacjenta. Tutaj nie może być mowy o przestoju w działaniu.
Kiedy określisz maksymalną i akceptowalną dla Ciebie niedostępność, można wybrać odpowiednią usługę, która sprosta tym wymaganiom. Wysoka dostępność nie jest za darmo i może bardzo dużo kosztować, dlatego czasami warto przyjąć ryzyko na klatę.
Ile może mnie to kosztować?
Zdecydowanie więcej niż pojedynczy serwer lub hosting. Gwarantowana wysoka dostępność np. klasy 4 (miesięcznie około 4 minut niedostępności usługi), wymaga odpowiednio rozbudowanej infrastruktury, m. in:
- większej liczby serwerów, urządzeń sieciowych – sprzęt lubi płatać figle, dlatego maszyny powinny być conajmniej zdublowane,
- administratorów pracujących w trybie zmianowym – awarie nie biorą wolnego i potrafią wystąpić nawet w święta,
- odpowiedniego oprogramowania – sama strona internetowa musi być przygotowana do tego, aby potrafiła działać na wielu serwerach jednocześnie.
Do tego dochodzą jeszcze zapasowe łącza internetowe, możliwość wymiany podzespołów serwera w czasie jego pracy, zapasowe zasilanie, monitoring, testowanie infrastruktury i tak dalej. Jest tego naprawdę dużo.
Nie będzie wielkim odkryciem stwierdzenie, że strona oparta o jeden serwer, działa tak długo, dopóki się on nie zepsuje.
A co może się popsuć? Na przykład: dysk twardy, zasilanie lub chłodzenie. Możemy kupić droższy serwer, który posiada redundantne zasilacze i wentylatory oraz dyski pracujące w macierzach. Zwiększamy w ten sposób dostępność danego serwera, ale nadal to jest jeden serwer, który może ulec innym awariom.
Policzmy SLA i koszty
Żeby zobrazować jak może zmieniać się cena usługi w zależności od dostępności serwerów, policzmy ją dla przykładowego sklepu internetowego opartego o jakiś popularny CMS.
Dla uproszczenia, pominięte zostaną takie rzeczy jak kwestia oprogramowania, czas reakcji administratorów, dostępność sieci oraz to w jaki sposób serwery, są ustawione w data center. Dodanie drugiego serwera do infrastruktury, nie zwiększy nam dostępności, jeżeli będzie on wpięty do tego samego źródła zasilania co pierwszy. Awaria zasilania, po prostu położy obie maszyny.
Sklep internetowy działa na dwóch serwerach: serwerze www oraz serwerze z bazą danych. SLA dla każdej z tych maszyn to 99.5% w skali miesiąca, co daje nam 3h 39m 8.7s niedostępności. No właśnie! A jakie jest SLA dla całości?
Mając dwa serwery ułożone szeregowo, awaria całości systemu następuje w momencie kiedy:
- nie działa serwer WWW
- nie działa serwer DB
- nie działają oba serwery
Matematyka tutaj jest bezwzględna i SLA dla takiej infrastruktury to pomnożenie poszczególnych SLA każdego z serwerów.
SLA = 99,5% * 99,5% = 99%
Serwer | Koszt | SLA | Niedostępność |
---|---|---|---|
WWW | 500 zł | 99.5% | 3g 39m 8.7s |
DB | 500 zł | 99.5% | 3g 39m 8.7s |
Całkowity koszt | Całkowite SLA | Całkowita niedostępność | |
1000 zł | 99% | 7g 18m 17.5s |
Ponad 7 godzin niedostępności usługi to praktycznie jeden dzień roboczy. Na taki przestój, wiele sklepów internetowych nie może sobie pozwolić. Przydałaby się zatem jakaś redundancja.
Aby zwiększyć dostępność całego sklepu, dodaliśmy dodatkowy serwer WWW oraz Loadbalancer, który będzie kierował ruch na działające urządzenie. Loadbalancer może być zdecydowanie słabszą maszyną, co za tym idzie tańszą.
Policzmy teraz SLA dla takiej infrastruktury. Mamy już tutaj połączone równolegle serwery WWW. Wzór na wyliczenie SLA dla takiej infrastruktury, będzie wyglądał następująco:
SLA = 0,999 * (1 - (1 - 0,995)2) * 0,995 = 99,4%
Serwer | Koszt | SLA | Niedostępność |
---|---|---|---|
Loadbalancer | 200 zł | 99.9% | 43m 49,7s |
WWW | 500 zł | 99.5% | 3g 39m 8.7s |
WWW | 500 zł | 99.5% | 3g 39m 8.7s |
DB | 500 zł | 99.5% | 3g 39m 8.7s |
Całkowity koszt | Całkowite SLA | Całkowita niedostępność | |
1700 zł | 99,4% | 4g 22m 58.5s |
Ponad 4 godziny niedostępności to nadal dużo, ale zecydowanie lepiej niż w poprzednim przykładzie. Patrząc na architekturę, nadal mamy kilka elementów, których uszkodzenie powoduje duży problem. Mamy jedną bazę danych oraz loadbalancer, którego wyłączenie spowoduje brak dostępu do pozostałych serwerów.
Wprowadźmy zatem redundancję na każdym poziomie i zobaczmy SLA oraz cenę za infrastrukturę.
SLA = (1 - (1 - 0,999)2) * (1 - (1 - 0,995)2) * (1 - (1 - 0,995)2) = 99,99%
Serwer | Koszt | SLA | Niedostępność |
---|---|---|---|
Loadbalancer | 200 zł | 99.9% | 43m 49,7s |
Loadbalancer | 200 zł | 99.9% | 43m 49,7s |
WWW | 500 zł | 99.5% | 3g 39m 8.7s |
WWW | 500 zł | 99.5% | 3g 39m 8.7s |
DB | 500 zł | 99.5% | 3g 39m 8.7s |
DB | 500 zł | 99.5% | 3g 39m 8.7s |
Całkowity koszt | Całkowite SLA | Całkowita niedostępność | |
2400 zł | 99,99% | 4m 23,0s |
W ten sposób udało się uzyskać zadowalająco wysokie SLA. Niestety cena też jest wysoka, prawie dwa i pół razy większa. A pamiętaj, że jest to tylko symulacja, która pomija wiele elementów jak obsługę administracyjną, czy dostępność samej sieci.
Podsumowanie
Decydując się na rozwiązanie o konkretnej dostępności, powinieneś zastanowić się jaki realny wpływ na Twój biznes ma każda godzina przestoju. Prowadząc małego bloga, możemy wybrać zwykły hosting, a budując dużą aplikację webową dla tysięcy klientów, wybrać redundantne rozwiązania.
Możemy też liczyć na szczęście, że jeden serwer będzie działał zawsze. Awarie są jak upadek na twardy chodnik – z dużej wysokości – bolą.
Zobacz inne nasze artykuły
Zobacz wszystkie artykułyOdsprzedaż nazwy domen. Na czym polega?
Czytaj dalejOdsprzedaż nazwy domen – jak to działa i dlaczego warto się tym zainteresować? Odkupienie i odsprzedaż nazw domen to popularna praktyka w świecie internetu. W artykule eksperckim dowiesz się, czym jest odsprzedaż nazw domen, dlaczego ludzie decydują się na tę formę inwestycji oraz jak przebiega cały proces. Poznasz również czynniki wpływające na wartość odsprzedawanej nazwy…
Adres IP. Co to jest i do czego służy adres IP?
Czytaj dalejAdres IP, czyli Internet Protocol, jest fundamentalnym elementem funkcjonowania internetu. To unikalny identyfikator przypisywany każdemu urządzeniu podłączonemu do sieci. Dzięki adresowi IP możliwa jest wymiana danych między urządzeniami oraz ich identyfikacja w sieci. Adres IP może być publiczny lub prywatny, a jego przydzielanie odbywa się poprzez różne instytucje. Ten artykuł ekspercki przedstawia różne aspekty adresów…
Adres URL. Co to jest, do czego służy i jak działa?
Czytaj dalejAdres URL (Uniform Resource Locator) to unikalny identyfikator, który wskazuje lokalizację zasobu w sieci internetowej. Jest to ciąg znaków, który umożliwia nam dotarcie do konkretnej strony internetowej, pliku, obrazka lub innego zasobu. Adres URL składa się z kilku elementów, takich jak protokół, domena i ścieżka, które razem określają dokładne miejsce, gdzie znajduje się dany zasób.…