StrefaTenisa.com.pl

Optymalizacja infrastruktury serwerowej

O projekcie

Jeśli e-Commerce chce się rozwijać i zdobywać nowe rynki, to naturalnym jest właściwe zadbanie o infrastrukturę serwerową, na której znajduje się sklep. Doskonale tę potrzebę rozumie Strefa Tenisa, która z końcem 2016 roku zdecydowała się przejść ze standardowego rozwiązania serwerowego na chmurę obliczeniową.

Zadanie

StrefaTenisa.com.pl w związku z dynamicznym wzrostem (we wrześniu 2016 r. uruchomiła swoją nową markę Strefę Squasha) powierzyła nam zadanie optymalizacji infrastruktury serwerowej, która miała spełniać następujące wymogi:

  •  niezawodność
  •  wydajność
  •  skalowalność

Potrzeba reorganizacji serwerów zrodziła się zarówno z faktu uruchomienia nowego brandu, ale także w odpowiedzi na stale rosnącą liczbę klientów e-Commercu, generujących okresowo bardzo duży ruch na sklepie (np. w czasie wyprzedaży). W związku z tym, że Strefa Tenisa kładzie silny nacisk na rozwój e-biznesu oraz zaspokojenie potrzeb swoich klientów, naszym zadaniem było takie zorganizowanie infrastruktury, żeby dodatkowe obciążenie serwera nie wpływało negatywnie na funkcjonowanie sklepu.

Wyzwania

Klasyczna infrastruktura serwerowa

Największym wyzwaniem było przeorganizowanie i zaproponowanie nowej strategii organizacji hostingu dla klienta. Dotychczas aplikacja sklepowa korzystała ze standardowego rozwiązania, czyli jednej fizycznej maszyny serwerowej.

Ta przestała mieć rację bytu w momencie, w którym klient zdecydował się na dynamiczny rozwój swojej działalności. Klasyczny serwer radził sobie doskonale z organicznym i powolnym wzrostem ruchu na sklepie (miał wystarczający zapas mocy na obsłużenie takiego wzrostu), ale już w przypadku różnego rodzaju akcji promocyjnych, które skutkowały pojawianiem się dużej ilości klientów w krótkim czasie, musieliśmy zdecydować się na bardziej elastyczne i skalowalne rozwiązanie.

Oczywiście mogliśmy zdecydować się przejść na mocniejszą maszynę lub wzmocnić infrastrukturę kilkoma tradycyjnymi serwerami, wspieranymi przez system redundancji usług i mechanizm rozrzucenia ruchu pomiędzy maszynami. Problem polegał na tym, że ta strategia odsunęłaby tylko problem w czasie. Oba z rozwiązania w relatywnie krótkim czasie również przestałyby wystarczać i nie miałyby odpowiednich zasobów do właściwego utrzymania sklepu. Chcieliśmy tego uniknąć i dlatego zaproponowaliśmy klientowi zupełnie inne podejście.

 

Serwer w chmurze

W nowym rozdaniu postawiliśmy na serwery w chmurze Oktawave Zdecydowaliśmy się na ich rozwiązanie z dwóch powodów.

Elastyczność rozwiązania

Panel administratora OktaWave posiada wiele narzędzi ułatwiających i automatyzujących, nawet skomplikowane, czynności administratora oraz pozwala zbudować (niemalże wyklikać) dowolną infrastrukturę serwerową dopasowaną do indywidualnych potrzeb. Operator ma możliwość skorzystać z domyślnych szablonów instancji serwerowych lub stworzyć własne na bazie standardowych dystrybucji ,np. Debian.

Autoskaler

To narzędzie, które pozwala nam na automatyczne regulowanie zasobów konkretnych serwerów, w zależności od natężenia ruchu na sklepie. Autoskaler cały czas monitoruje obciążenie serwerów i zwiększa ich moc obliczeniową oraz ilość dostępnej pamięci operacyjnej. Działa to bez konieczności restartowania maszyny.

Z kolei, gdy zajdzie potrzeba zmniejszenia zasobów, to mamy możliwość ustawienia takiego procesu o konkretnej porze, np. w nocy, a redundancja poszczególnych elementów infrastruktury pozwala na restart poszczególnych maszyn niezauważalnie dla klienta (użytkownika serwisu WWW).

Nowa infrastruktura serwerowa Strefy Tenisa

W dużym uproszczeniu: sklep internetowy, a w zasadzie jego aplikacja, została rozrzucona na siedem maszyn wirtualnych w ramach infrastruktury OktaWave.

  • Pierwszym elementem infrastruktury jest gateway. To swego rodzaju router, zbudowany na bazie haproxy, który w zależności od potrzeb, dostępnych zasobów oraz preferencji rozrzuca ruch po serwerach WWW.
  • Kluczową składową optymalizacji było rozparcelowanie ruchu na trzy serwery wirtualne odpowiedzialne za serwowanie stron WWW. Jest ich najwięcej, ponieważ to one odpowiadają za poprawne funkcjonowanie Strefy Tenisa w trakcie najbardziej gorących promocji, które ściągają do sklepu licznych klientów. Działanie tego elementu jest na bieżąco wspierane przez wspomniany już autoskaler.
  • Czwarty serwer WWW dedykowany jest tylko zdjęciom. Serwowanie plików statycznych wymaga innej konfiguracji niż serwer WWW odpowiedzialny za dynamiczne generowanie stron. Nawet, jeśli z jakiś przyczyn, przestanie on funkcjonować, to pozostałe trzy serwery podejmą się tego zadania.
  • Serwer bazodanowy jest na osobnej maszynie, która została zoptymalizowana do tego konkretnego zadania. Posiada szybkie dyski (Tier 3) i pamięć operacyjną, o którą baza danych nie musi konkurować z innymi usługami. Zaowocowało to tym, że w nawet w momentach prowadzenia najbardziej intensywnych działań promocyjnych sklepu serwer z bazą danych odpowiadał na zapytania bez jakichkolwiek przestojów. W ramach tego elementu również zastosowaliśmy autoskaler, ale w tym przypadku automat ma możliwość tylko podbijać parametry serwera, bez ich redukcji. Ze względu na brak tego mechanizmu, chcieliśmy mieć pełną kontrolę nad restartami bazy, a co za tym idzie, nad jej dostępnością w sytuacji, w której generuje ona większe obciążenie niż zazwyczaj. Serwery wirtualne odpowiedzialne za działanie sklepu nie odczuwają tego zjawiska i e-Commerce funkcjonuje bez większych przeszkód.
  • Serwer NFS/memcache, czyli wspólny zasób plików dla serwerów WWW. Teoretycznie memcache, który jest wykorzystywany przez serwery WWW, powinien być na tych samych maszynach, co Apache z PHP, ale przeprowadzając testy wydajnościowe okazało się, że ma to minimalne znaczenie. W związku z tym mogliśmy przeprowadzić całą modernizację mniejszym kosztem finansowym dla klienta.
Efekt końcowy

Przejście na chmurę obliczeniową wiąże się z trzema zasadniczymi korzyściami dla Strefy Tenisa.

  • Znacznie skuteczniej jesteśmy w stanie rozpoznawać elementy najbardziej obciążające infrastrukturę e-Commerce. Możemy kierować ruch klientów na sklepie między maszynami i określać, które typy zapytań dla serwerów pochłaniają największe zasoby, np. uruchomić serwowanie stron “karty produktu” z jednego konkretnego serwera WWW i badać jak wygląda obciążenie generowane przez ten element sklepu.
  • Dynamicznie reagujemy w momentach największego ruchu i szybko przydzielamy niezbędne zasoby do prawidłowego działania sklepu. O ile do momentu przeniesienia nagły wzrost ruchu o kilka razy był problemem, to teraz nie obawiamy się wzrostów nawet o kilkadziesiąt czy kilkaset razy. Mowa o liczbie osób jednocześnie przebywających na sklepie - patrz Google Analytics, sekcja “Na żywo”.
  • Wygodnie przeprowadzamy prace administracyjne na serwerze, ponieważ teraz nie musimy wyłączać całego serwisu, a jedynie jedną z wirtualnych maszyn. Dzięki temu, klienci Strefy Tenisa nie trafiają na przerwy w działaniu sklepu spowodowaną takimi pracami.

Nad projektem pracowali

Łukasz

Paweł

Tomasz