/ Artykuły

Jak wyskalować infrastrukturę sklepu internetowego przed Black Friday?

pawel-dlugosz

8 min. czytania

Jak wyskalować infrastrukturę skelpu internetowego przed Black Friday?

Z artykułu dowiesz się:

  • jak zacząć skalować infrastrukturę e-sklepu
  • jakie są sposoby skalowania infrastruktury IT e-sklepu
  • jak Centuria skaluje infrastrukturę sklepów przed Black Friday

Co to jest skalowanie infrastruktury sklepu internetowego?

Cytując Wikipedię:

„W informatyce skalowalność oznacza zdolność oprogramowania lub systemów informatycznych do sprawnego działania w warunkach stale rosnącej liczby użytkowników lub zwiększającej się objętości przetwarzanych danych, co wiąże się ze zwiększeniem zapotrzebowania na zasoby sprzętowe lub zasoby programu”.

Skalowanie infrastruktury to zapewnienie odpowiednich zasobów pozwalających na uzyskanie oczekiwanej skalowalności systemu (aplikacji).

Jak zacząć skalować infrastrukturę e‑sklepu?

Aby rozpocząć skalowanie infrastruktury, musisz oszacować oczekiwane obciążenie systemu. Przykładowymi miernikami mogą być: liczba użytkowników lub liczba transakcji na godzinę. Możesz się oprzeć na:

danych historycznych ze swojej aplikacji,
• systemach typu Google Analytics,
• danych przekazanych przez marketing (zwykle kampanie marketingowe mają założony określony stopień konwersji, na którego podstawie można oszacować np. ilość użytkowników)

Uwaga: problem!

Niestety, nie da się precyzyjnie określić oczekiwanej skalowalności systemu. Trzeba się kierować zdrowym rozsądkiem. Wziąć pod uwagę zarówno kryteria techniczne, jak i ekonomiczne.

Kiedy można pominąć etap określenia oczekiwanej skalowalności systemu?

Z mojego doświadczenia wynika, że tylko w przypadku naprawdę niewielkich sklepów i dużego zapasu zasobów. Tak czy inaczej, warto taką analizę przeprowadzać już na samym początku, ponieważ może to pomóc w dalszym rozwoju.

Co zrobić, kiedy już znasz oczekiwane obciążenie systemu?

Skoro już zostało określone oczekiwane obciążenie systemu, to czas odpowiedzieć na pytanie: jakiej infrastruktury tak naprawdę potrzebujesz.

Jeśli określone obciążenie systemu występowało już kiedyś w przeszłości i zostało obsłużone, to można zgadywać, że właśnie taka infrastruktura będzie dla Ciebie optymalna.

DARMOWY EBOOK

100-stronicowy poradnik od 24 ekspertów IT i e-commerce

POBIERZ TERAZ

Dlaczego można tylko zgadywać?

Dlatego, że rzadko kiedy aplikacja działająca dzisiaj i aplikacja działająca np. 3 miesiące temu to ten sam system. E‑commerce rozwija się dynamicznie. Stale dochodzą nowe moduły i integracje.

W związku z tym dzisiaj mogą wystąpić problemy, których nie było 3 miesiące temu. Odwrotne sytuacje, kiedy aplikacja działa lepiej niż 3 miesiące wcześniej, występują bardzo rzadko.

Co robić, żeby nie musieć zgadywać?

Rozwiązaniem są testy obciążeniowe. Najlepiej byłoby, gdyby przeprowadzane były one przez prawdziwych użytkowników. Wtedy będziesz w stanie najlepiej zasymulować realne obciążenie systemu. Tego typu testy będą jednak niestety trudne do przeprowadzenia i mogą być kosztowne.

Symulacja działań użytkowników

Drugą opcją będzie użycie narzędzi do testowania, które symulują działanie użytkowników. Mogą to być np. rozwiązania typu Gatling lub Locust. W tym wypadku najczęściej to programista tworzy mechanizm symulujący obciążenie systemu, a administrator obserwuje, diagnozuje wydajność i szuka wąskich gardeł (bottlenecks).

Co powinno Ci wyjść z testów?

Wynikiem testów obciążeniowych powinny być konkretne wskazówki dotyczące rozbudowy infrastruktury. Możliwe, że konieczna będzie również zmiana architektury aplikacji, ponieważ czasami wąskim gardłem nie jest sprzęt, ale sam kod albo konstrukcja procesu zakupowego.

Na pewno warto zaplanować start przygotowań do Black Friday i testy obciążeniowe odpowiednio wcześnie. To pozwoli uniknąć stresu, tym bardziej, że zarówno rozbudowa infrastruktury, jak i zmiany w architekturze aplikacji mogą być czasochłonne.

Sposoby skalowania infrastruktury IT e‑sklepu (zalety i wady)

Dla uproszczenia załóżmy, że Twoja infrastruktura składa się z jednej instancji serwera, która ma 4 CPU, 32 GB RAM, 500 GB SSD. Testy wykazały, że obciążenie rośnie liniowo. Spodziewasz się 2 razy większego ruchu. W związku z tym chcesz przeskalować infrastrukturę.

2 sposoby skalowania infrastruktury

1. Skalowanie pionowe (wertykalne)

Oznacza dodawanie zasobów do istniejących serwerów/instancji. W Twoim przypadku można dodać do instancji 2 razy więcej CPU, RAM i SSD.

Zalety:

  • do pewnego momentu – stosunkowo niski koszt wdrożenia
  • nie wymaga zmian w architekturze, zmiana jest przezroczysta dla aplikacji

Wady:

  • jeśli zakładasz stały rozwój aplikacji, to prędzej czy później trafisz na moment, w którym rozbudowywanie serwera/instancji będzie niemożliwe z powodu ograniczeń technicznych lub będzie po prostu na tyle drogie, że nie będzie uzasadnione ekonomicznie
  • posiadanie jednej dużej instancji powoduje powstanie pojedynczego punktu awarii (SPOF), którego utrzymanie będzie coraz droższe

2. Skalowanie poziome (horyzontalne)

Oznacza dodawanie kolejnych instancji obok już istniejących. Trzymając się wspomnianego przykładu: musisz dodać obok nową instancję o identycznych parametrach.

Zalety:

  • zyskujesz redundancję – w przypadku, gdy jedna z maszyn przestanie działać, druga nadal będzie odpowiadać
  • po wprowadzeniu zmian w architekturze dalsze skalowanie jest dużo prostsze (można dołączyć kolejne instancje w razie potrzeby)

Wady:

  • Twoja aplikacja musi być w stanie działać na 2 instancjach równocześnie
  • prawdopodobnie konieczne będą mniej lub bardziej poważne zmiany w architekturze aplikacji, synchronizacja danych pomiędzy instancjami, etc.

Skalowanie infrastruktury sklepu – w praktyce

W praktyce stosuje się mix tych rozwiązań, ponieważ czasem dana instancja ma zbyt małe parametry i żeby całość miała sens, trzeba skalować zarówno poziomo, jak i pionowo.

Tym niemniej, dla większych środowisk skalowanie poziome jest praktycznie koniecznością. Powodami są: minimalizowanie ilości pojedynczych punktów awarii oraz kwestie ekonomiczne (dostawianie kolejnych instancji jest tańsze i łatwiejsze w zarządzaniu).

Skalowanie poziome ma oczywiście pewien, czasem spory, próg wejścia (konieczność dostosowania architektury), ale ostatecznie jego zastosowanie może przynieść znaczące korzyści w przyszłości.

Zautomatyzuj procesy IT i minimalizuj techniczne niedogodności z Centurią

Poznaj jedną z naszych usług.

WSPARCIE DEVOPS

Czego lepiej unikać?

Jeśli podchodzisz poważnie do kwestii Black Friday, to po przeprowadzeniu testów obciążeniowych i wyskalowaniu infrastruktury zdecydowanie nie wprowadzaj żadnych znaczących zmian w aplikacji (i infrastrukturze), ponieważ może się okazać, że cały włożony wysiłek pójdzie na marne.

Kluczowe jest również oparcie skalowania na wynikach testów obciążeniowych lub (przynajmniej) analizie historycznych wykresów obciążenia. Dzięki temu można dołożyć zasoby tam, gdzie są rzeczywiście potrzebne.

Nie można zakładać, że jeśli np. masz 2 razy więcej użytkowników, to obciążenie systemu będzie 2 razy większe. Obciążenie może rosnąć liniowo, ale nie musi, a powody takiego zachowania mogą być różne. Twoje wątpliwości powinny, przynajmniej częściowo, rozwiać testy obciążeniowe.

Problem, który mają nawet najwięksi dostawcy hostingu

Niezależnie, czy mówimy tutaj o zasobach Public Cloud, Private Cloud czy Hybrid Cloud, w każdym przypadku mamy element wspólny: ich zasoby nie są nieskończone.

Nawet najwięksi dostawcy Public Cloud (AWS i GCP) mają problemy z dostępnością zasobów w momencie największego zapotrzebowania.

Dlatego jedyną możliwością zagwarantowania dostępności zasobów jest ich zarezerwowanie. A za rezerwację oraz dostępność zasobów od ręki się… płaci. I tu wracamy do punktu wyjścia, czyli oszacowania naszego zapotrzebowania.

Skalowanie infrastruktury serwisu e‑commerce: dlaczego warto?

Dobre przygotowanie zarówno infrastruktury, jak i aplikacji na Black Friday:

  • pozwoli Ci uniknąć strat finansowych
  • będzie korzystne wizerunkowo
  • przekona klientów do dokonania zakupów

Jak Centuria skaluje infrastrukturę sklepów przed Black Friday?

Od zawsze staramy się pomagać naszym Partnerom w przygotowaniach do akcji promocyjnych, w tym również do Black Friday:

  • analizujemy bieżące i historyczne obciążenie systemów
  • uczestniczymy razem z programistami w testach obciążeniowych systemów
  • sprowadzamy (wypożyczamy) dodatkowe tymczasowe zasoby (serwery, dyski)
  • wprowadzamy wymagane zmiany w infrastrukturze
  • w przypadku infrastruktury Public Cloud: doradzamy, jak najkorzystniej osiągnąć gwarantowaną skalowalność

Skalowanie infrastruktury sklepu online: co musisz wiedzieć?

1) Aby rozpocząć skalowanie infrastruktury, musisz oszacować oczekiwane obciążenie systemu.

2) Rozpoczynając skalowanie, oprzyj się na danych historycznych ze swojej aplikacji, systemach typu Google Analytics, danych przekazanych przez marketing.

3) Wykonaj testy obciążeniowe i znajdź wąskie gardła. Zaplanuj je odpowiednio wcześnie.

4) Wykonaj skalowanie pionowe, poziome lub mix obu rozwiązań.

5) Pamiętaj, że nawet najwięksi dostawcy Public Cloud (AWS i GCP) mają problemy z dostępnością zasobów w momencie największego zapotrzebowania. Jedyną możliwością zagwarantowania dostępności zasobów jest ich zarezerwowanie.

6) Dobre przygotowanie zarówno infrastruktury, jak i aplikacji na Black Friday pozwoli Ci uniknąć strat finansowych, będzie korzystne wizerunkowo i przekona klientów do dokonania zakupów.

7) Dowiedz się, jak to robimy w Centurii!

pawel-dlugosz

O autorze

Paweł Długosz

Advisory Board IT, Centuria S.A.

Zobacz także

Zobacz więcej