Każdy przedsiębiorca prowadzący biznes w internecie powinien wiedzieć czym jest dostępność systemu. Przez brak tej wiedzy, gdy dochodzi do awarii, biznes nie funkcjonuje, a tym samym nie zarabia. Jak wiesz, awarię zdarzają się każdemu. Jednak czy można ich uniknąć? Jeśli tak, jaki będzie ich koszt? Jeśli nie, to jak sobie z nimi radzić? O tym wszystkim jest właśnie ten wpis. Przeczytaj i sprawdź, jak Twoje strony internetowe radzą sobie z niedostępnością.
Kluczową miarą określającą, jak długo system, sieć lub usługa jest w stanie działać w sposób bez zakłóceń jest dostępność (z języka ang. availability). Często dostępność sieci określana jest jako stopień odporności na awarie.
Im wyższa dostępność, tym mniejsze ryzyko wystąpienia awarii lub przerw w świadczeniu usług. Często, jako jednostkę czasu przyjmuje się dobę, a wynikająca z tego wartość procentowa dostępności wskazuje, ile godzin system działał bez zakłóceń. Przykładowo, jeśli dostępność serwera wynosiła 50% w ciągu doby, oznacza to, że przez 12 godzin funkcjonował on bezawaryjnie, a przez pozostałe 12 godzin był niedostępny. W kontekście systemów informatycznych, stosuje się również klasyfikację dostępności, zwanej 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 |
Dostępność określana jest na bazie procentów. Im bliżej 100%, tym lepsza wydajność biznesu. W tabeli wyżej opisałem ich najczęściej występujący przedział, klasy, a także czas niedostępności wynikający z przerw działania serwisu. Kryterium „klasa” określa ilość dziewiątek (cyfr) samej dostępności. Wyższa klasa oznacza, wyższy poziom dostępności.
Zwykły hosting gwarantuję dostępność w skali roku na poziomie 90% – 99,9%. Inaczej jest z chmurą obliczeniową, serwerami dedykowanymi czy klasycznymi serwerowniami. W tych przypadkach część dostępności zależy od rozwiązań, które podejmiemy, aby wzmocnić ich ciągłość działania, a część od samego usługodawcy gwarantującego przestrzeń.
Warto również podkreślić, że niedostępność to również czas, w którym strona lub sklep ładują się dłużej niż 20 sekund bądź nie działa kluczowy proces dla Twojego biznesu. Każdy e-biznes powinien zdefiniować czym jest dla niego dostępność i jej brak. Dla dużych sklepów kilkuminutowe niedostępności w ciągu roku będą ogromną stratą, a dla małych nie będą odczuwalne. Tak samo wolno działająca strona, dla części firm będzie to krytyczny problem.
Reguła niedostępności to zasada, zgodnie z którą zakłada się, że w pewnym momencie serwis lub aplikacja będzie niedostępna dla użytkownika końcowego. Oznacza to, że przy projektowaniu i wdrażaniu systemów należy przewidywać, że zdarzą się awarie lub problemy techniczne, które wpłyną na dostępność serwisu lub aplikacji.
Reguła niedostępności jest ważnym elementem w projektowaniu systemów. Pozwala na zaprojektowanie systemów, które są bardziej odporne na awarie. Dodatkowo wpływa na szybsze wykrywanie problemów oraz skuteczniejsze ich rozwiązywanie.
W praktyce regułę niedostępności należy interpretować jako projektowanie systemów w sposób odporny na problemy techniczne, takie jak awarie serwera czy błędy spowodowane niewłaściwymi komendami. Należy również zapewnić regularne testowanie i monitorowanie systemu, aby wykrywać problemy wcześniej i zapobiegać poważniejszym awariom.
Service Level Agreement (SLA), czyli umowa o gwarantowanym poziomie świadczenia usług, to dokument określający warunki i poziom usług świadczonych przez dostawcę do klienta. Jednym z kluczowych elementów umowy SLA jest określenie poziomu dostępności usług, czyli procentu czasu, w którym usługa będzie działać bez zakłóceń. Umowa ta może również zawierać zapisy dotyczące kar umownych, które dostawca będzie musiał zapłacić w przypadku niezrealizowania wymaganej dostępności. Przykładem usług, dla których stosuje się umowy SLA, są usługi w chmurze, takie jak te oferowane przez AWS, Google Cloud czy Azure. Qlos jest oficjalnym partnerem AWS, dlatego też przedstawię Ci schemat SLA ich usług.
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% | ||
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% |
Warto zauważyć, że SLA AWS odnosi się do samych usług, a nie do maszyn wirtualnych. Świadczy to, o tym że w przypadku awarii maszyny wirtualnej, wciąż masz dostęp do usługi, która pozwala na uruchomienie zapasowego serwera. To ogromna wartość działania w chmurze obliczeniowej. Posiadając pojedynczy serwer nie jesteśmy w stanie uniknąć awarii w żaden sposób.
Mówi się, że klient nasz Pan. W dzisiejszych czasach, gdy sprzedaż przeniosła się do internetu należy wziąć te słowa pod uwagę jeszcze bardziej. Zapewniając najwyższy poziom dostępności serwisu, mamy pewność że klient nigdy nie odbije się od przysłowiowych drzwi. Jednak wiąże się to z wyższymi kosztami. Poniżej przygotowałem podglądową wycenę serwera zakupionego w AWS i u jednego z ogólnodostępnych dostawców usług hostingowych, która pozwoli utrzymać dostępność serwisu na najwyższym poziomie.
Naszym celem jest utrzymanie sklepu internetowego opartego o redundantne serwery w każdej warstwie na poziomie dostępności 99,99% w skali roku. Oznacza to, że w klasycznym podejściu będziemy potrzebować 6 serwerów dedykowanych (2 serwery Loadbancer, 2 serwery www, 2 serwery DB). W budowaniu infrastruktury chmurowej będziemy potrzebować znacznie mniej zasobów. Dzieje się tak, ponieważ cloud computing zapewnia wyższy poziom dostępności niezależnie od ilości połączonych serwerów. AWS ELB (Elastic Load Balancing) działa bez przerw i nie wymaga dokładania dodatkowych zasobów, tak jak w przypadku Loadbalancera w klasycznym rozwiązaniu. Odwzorowaniem naszych potrzeb są dwa poniższe schematy.
Dla potwierdzenia SLA danych modeli wygląda następująco:
SLA rozwiązania AWS | SLA =0,9999* (1 – (1 – 0,9999)2) = 99,99% w skali miesięcznej |
SLA klasycznego rozwiązania | SLA = (1 – (1 – 0,995)2) * (1 – (1 – 0,995)2) * (1 – (1 – 0,995)2) = 99,99% w skali roku |
Warto podkreślić, że dostępność w skali miesięcznej i rocznej różni się od siebie. Przy wielkości 99,99% niedostępność w skali roku będzie wynosiła 52m 9.8s, a w skali miesiąca 4m 21s. Sumując miesięczny czas wychodzi ta sama wartość co przy rocznej niedostępności, ALE lepszym wyjściem dla odbiorcy usług jest brak możliwości działania na zasobach 4 minuty w miesiącu, niż 52 minuty jednego dnia (Ujęcie wartości w okresie rocznym, nie określa jaka wartość w rzeczywistości wystąpi. Mogą być to krótkie jednorazowe przerwy, bądź godzinna awaria jednego dnia).
Dodatkowo w chmurze AWS istnieje możliwość uzyskania tzw. kredytów na usługę w przypadku mniejszego SLA niż zakładane. Tutaj znajdziesz więcej informacji odnośnie usług EC2.
Usługi AWS są elastyczne, skalowalne i zapewniają znacznie większą dostępność (wartości zostały wypisane na grafikach). Nie wymagają dostawiania kilku maszyn, aby pomieścić wszystkie dane. Wystarczy skorzystać z usługi AWS S3, która je przechowa. Dzięki temu nie potrzebujemy wykupować serwerów (EC2) o najwyższej pojemności, a koszty utrzymania są niższe.
Usługa AWS ELB posiada dostępność na poziomie 99,99% w skali miesiąca, co daje nam pewność, że nasz sklep będzie działał zawsze. Sama usługa pozwala na automatyczne przepinanie się pomiędzy serwerami w razie jakiegokolwiek potrzeby, problemu czy awarii. To duża zaleta. Wykupując serwer dedykowany musimy czekać na jego uruchomienie, a dodatkowo zasoby magicznie nie przeniosą się same. W proces należy zaangażować dodatkowych specjalistów.
Przejdźmy teraz do kosztów. Jak to wychodzi w przełożeniu na powyższy schemat?
Usługi, które potrzebujemy:
Wszystkie usługi są zlokalizowane w Europie – Londynie.
W celu wygenerowania mniejszych kosztów przyjąłem rozliczenie roczne dla usługi EC2. Dzięki temu koszty zmniejszają się o 37%. Dla pozostałych usług płatności są miesięczne.
Całkowite koszty miesięczne: 132,25$ ~533,41 zł
Roczne koszty całkowite: 533,41*12 =6400,92 zł
Wyliczenia zostały przeprowadzone na podstawie kalkulatora AWS. Możesz je sprawdzić tutaj: przechodzę do wyliczeń.
Potrzebujemy:
Średni koszt serwera: 499 zł netto
Miesięczny całkowity koszt serwerów: (499*6) = 2994zł netto
Roczne koszty całkowite: 2994*12 = 35 928 zł
Mówi się, że chmura jest droga, a okazuje się że koszty środowiska w chmurze AWS są niższe blisko o 83%! W skali rocznej zaoszczędzisz około 29 527 zł. Niezależnie, jakiej wielkości biznes posiadasz, taką wartość możesz przeznaczyć na dobrej jakości kampanię reklamową, która przyniesie Ci znacznie więcej korzyści.
Warto również wziąć pod uwagę, że do wyliczeń nie są brane pod uwagę koszty działań specjalistów z zakresu zarządzania serwerami czy dostępność samej sieci.
Inną opcją, którą już wiele razy spotkałem jest wykupienie jednego serwera i działanie tylko na nim. Koszty są mniejsze, zdecydowanie. Jednak wtedy nie możesz liczyć na skalowalność czy elastyczność. Dodatkowo, działanie tylko na jednym serwerze powoduje, że Twoja dostępność spada, a w przypadku awarii i braku kopii zapasowych w innym miejscu, narażasz się na utratę całego biznesu.
Pamiętaj również, że kluczowe znaczenie w całym procesie ma również Twój biznes i wymagania wydajnościowe. Jak je rozpoznać, sprawdzisz w kolejnym akapicie.
Często słyszę „narzekania” na awarie i niedostępność usług w sieci. Dla każdego z nas ważne jest, aby nasza strona działała jak najdłużej, a najlepiej bez przerw. Jednak, trzeba pamiętać, że im wyższa dostępność, tym więcej kosztów z nią związanych.
Na początek warto przeprowadzić analizę ryzyka związanej z niedostępnością danej usługi. Awarie zdarzają się zazwyczaj w najmniej oczekiwanym momencie, np. podczas szczytu sprzedaży. Nawet jeśli strona działała bez zarzutów przez ostatnie miesiące, nie ma gwarancji, że tak będzie w przyszłości. Wszystko przez brak testów przy dużych obciążeniu.
Dlatego też, każdy właściciel biznesu musi sobie zadać pytanie, przez jaki czas dana usługa może być niedostępna, aby nie wpłynęło to negatywnie na prowadzoną działalność. W przypadku sklepu internetowego sprzedającego jedno narzędzie, kilkugodzinna awaria może nie wpłynąć na wynik finansowy, natomiast w przypadku sklepu wielobranżowego, który w godzinę zarabia kilkaset tysięcy, każda minuta będzie cenna.
Kiedy już określimy akceptowalny dla nas poziom niedostępności, możemy wybrać odpowiednią usługę, która spełni nasze wymagania. Trzeba jednak pamiętać, że wysoka dostępność to większe koszty, dlatego czasami warto wziąć ryzyko na siebie i zaakceptować niższą dostępność.
Aby obliczyć niedostępność strony, musisz zebrać dane dotyczące czasu, w którym strona była niedostępna lub miała problemy z działaniem. Istnieje kilka sposobów na pozyskanie tych danych:
Wzór na obliczenie niedostępności strony jest niezwykle prosty:
Niedostępność strony = (Czas niedostępności / Całkowity czas monitorowania) * 100%
Tak, jak wspominałem wyżej to wskaźnik procentowy. Warto brać pod uwagę wyłącznie całkowity czas monitorowania, ponieważ wzięcie wartości spoza analiz może fałszować wynik.
Pamiętaj, że istnieje wiele czynników, które mogą wpływać na niedostępność strony, takie jak problemy z serwerem, ataki DDoS, problemy z siecią, błędy w kodzie strony itp. Dlatego też ważne jest regularne monitorowanie, aby jak najszybciej zidentyfikować problemy i podjąć odpowiednie kroki naprawcze.
Należy pamiętać, że wysoka dostępność jest podstawą działania większości serwisów, ale nie w każdym biznesie jest niezbędna. Niepodważalnie jest ona kluczowym czynnikiem dla biznesów online działających 24 godziny na dobę.
Trzeba jednak pamiętać, że nie ma kuloodpornych systemów. Niezależnie czy masz jeden serwer czy kilkanaście, przestój może pojawić się niespodziewanie, niezależnie od Twoich zabezpieczeń np. z powodu braku energii w data center. Większą ochronę daje chmura obliczeniowa, ale nie zawsze i ona jest najlepszym rozwiązaniem, z uwagi na wielkość biznesu. Jeśli nie wiesz, jakie podejście będzie dla Twojej firmy najlepsze, napisz do mnie. Podpowiem Ci, co będzie najlepszym i najtańszym rozwiązaniem.