Sekrety wysokiej wydajności, czyli jak duże e-sklepy obsługują ruch

Dodane:

Maciej Kurek Maciej Kurek

Udostępnij:

Gdy w sklepie internetowym klikasz „Dodaj do koszyka”, rusza cała machina realizująca transakcję. Co jednak dzieje się, gdy w tej samej chwili zamówienie złoży setka innych klientów?

Sklepy internetowe często porównuje się do ich fizycznych odpowiedników. W sieci działają jednak miejsca, którym bliżej do galerii handlowych niż kameralnych miejsc ze sprzedawcą stojącym za ladą.

Duże sklepy internetowe to duże wyzwania – spora liczba klientów, wzmożony ruch podczas akcji marketingowych i przed świętami. Do tego złośliwość rzeczy martwych, czyli awarie serwerów, które mogą powodować przerwy w dostępności strony. Jak radzą sobie z tym duże firmy e-commerce?

Cała magia dzieje się „pod maską”

Chociaż strona internetowa dużego sklepu może wyglądem przypominać witrynę swojego mniejszego konkurenta, to na tym kończą się podobieństwa. Projekty internetowe, dla których serwer dedykowany jest niewystarczającym rozwiązaniem, uruchamia się w tzw. klastrach wysokiej dostępności.

Klastry to całe zespoły serwerów komunikujących się między sobą. Gwarantują one ciągłe działanie maszyn wirtualnych, tym samym zapewniają dostępność krytycznych aplikacji i danych.

Cały system „wie”, na których serwerach jest uruchomiona dana maszyna wirtualna i jakie zasoby jej przydzielono. Posiada również informacje o pracy wszystkich elementów i zasobach, które nie są wykorzystywane w danym momencie. Dzięki temu możliwe jest:

  • stałe monitorowanie, które elementy warstw wirtualizacji aktualnie pracują, jakie zadania wykonują i do jakiego stopnia są obciążone,
  • ciągła komunikacja z elementami systemu, które w danej chwili nie są obciążone i w razie potrzeby dynamiczne przydzielanie im zadań,
  • błyskawiczne wykrywanie problemów (np. awaria serwera wchodzącego w skład klastra wirtualizacji),
  • aktualizowanie oprogramowania bez wpływu na działanie usług uruchomionych przez klienta.

Lekarstwo na gorączkę zakupów

Wyobraźmy sobie supermarket w okresie przedświątecznym. Jednym z najbardziej pożądanych towarów w tym czasie są choinki, podczas gdy – dajmy na to – kremy do opalania sprzedają się znacznie gorzej. Nic dziwnego zatem, że wiele sklepów wydziela stoiska z drzewkami już na parkingu, dzięki czemu klienci mogą szybko dostać choinkę. W tym samym sklepie można wciąż kupić krem do opalania, jednak popyt na niego jest mniejszy, dlatego jest on bardziej „schowany” na stoisku z kosmetykami.

Podobny mechanizm stosuje się w przypadku plików tworzących sklep internetowy. To automatyczny tiering danych – nowoczesna technologia, która powoli pojawia się na polskim rynku. Na czym polega?

Istnieją pliki, które rzadko interesują potencjalnych klientów (np. oferty pracy, polityka plików cookies). Są też internetowe „choinki”, czyli te podstrony, które odwiedzane są często. Przykładem jest strona produktu promowanego na stronie głównej sklepu i reklamowanego w sieci.

Dzięki automatycznemu tieringowi danych system cały czas monitoruje, które pliki cieszą się największym zainteresowaniem wśród internautów. Podczas promocji są to choćby zdjęcia produktu objętego zniżką. System widząc rosnącą popularność takich zdjęć przenosi je na dyski SSD działające w macierzy. To nośniki oparte na technologii flash gwarantujące bardzo krótki czas dostępu do danych.

Pliki pobierane rzadziej trafiają na dyski HDD. Te nośniki z kolei charakteryzuje duża pojemność. Przechowuje się na nich historię zamówień z poprzednich lat lub regulaminy. Dzięki takiemu podziałowi plików rośnie wydajność całego sklepu, bo aplikacja jest w stanie szybciej dostarczyć internautom te dane, które najbardziej ich interesują.

Nikt nie lubi czekać w kolejce

Ważną cechą klastrów wysokiej dostępności jest możliwość płynnego skalowania. Co to oznacza? Wróćmy do przykładu z choinkami. Ustawienie stoiska na parkingu przed supermarketem nie wystarczy, jeśli klientów będzie obsługiwał tylko jeden sprzedawca. Szybko powstaną kolejki, a część osób zrezygnuje zniechęcona długim czasem oczekiwania.

Podobny scenariusz to nic nowego dla sklepów internetowych. Podczas dni darmowej dostawy, okresu przedświątecznego lub dużej akcji reklamowej, strona też przeżywa oblężenie. Mimo to internauci nie muszą czekać w kolejce.

Oprogramowanie zarządzające klastrami wysokiej dostępności ciągle monitoruje pracę serwerów tworzących klaster. W każdej chwili system ma informacje o tym, które maszyny nie są w danej chwili wykorzystywane.

Przy nagłym wzroście obciążenia zadania są szybko rozdzielane w warstwie wirtualizacji pomiędzy dostępne serwery. Cała operacja odbywa się automatycznie i nie jest odczuwalna dla użytkownika końcowego. W efekcie nawet pomimo ogromnego ruchu, internauci mogą robić zakupy bez wydłużenia czasu odpowiedź aplikacji.

Automatyczny tiering i skalowanie zasobów to nie jedyny oręż w walce o wysoką wydajność sklepów internetowych. Równie ważny jest sprzęt, w tym łącza internetowe. Przy takich projektach stosuje się szybkie interfejsy optyczne zapewniające transfer danych z prędkością 10 Gb/s. Ważna jest też eliminacja pojedynczych punktów awarii. Zwielokrotnione połączenia i podwójne karty sieciowe gwarantują, że w razie awarii usługa jest nadal dostępna. Obsługę ruchu przejmuje po prostu zapasowa karta lub łącze.

Technologie opisane powyżej to zaledwie niewielki wycinek tego, co dzieje się w serwerowni, gdy klikamy „Dodaj do koszyka”. Infrastruktura IT dedykowana sklepom internetowym to złożony organizm czuwający nad tym, by droga od kliknięcia do finalizacji zamówienia trwała jak najkrócej, a dane powierzone sklepowi pozostały bezpieczne.

Maciej Kurek

Specjalista ds. marketingu w Kei.pl