W jaki sposób przygotować e-sklep na duże kampanie marketingowe?
Prowadząc e-sklep warto pamiętać o przygotowaniu się na większe obciążenia wynikające ze sprowadzanego ruchu np. w ramach kampanii okazjonalnych czy też regularnych ─ takich jak Black Friday czy Christmas. W tym artykule podpowiemy w jaki sposób dobrze przygotować biznes na takie sytuacje i spokojnie móc prowadzić działania marketingowe bez obaw o to, że e-sklep uruchomiony na Magento nie udźwignie skali sprzedaży.
Całość przygotowań powinna zająć maksymalnie kilka tygodni, a sprowadza się do kilku konkretnych kroków:
Krok 1: Ustal skalę ruchu, której się spodziewasz
Zwykle właściciele sklepów są w stanie przewidzieć skalę ruchu, który zostanie dodatkowo sprowadzony do systemu. Zwiększanie okresowe budżetu na działania marketingowe czy też szacunki wykonane na podstawie wcześniejszych kampanii dają możliwość oceny jakiej liczby użytkowników ─ dodatkowo ponad standardowy poziom ─ można się spodziewać. Z naszego doświadczenia wynika, że potrzebne jest uśrednienie dwóch wartości: liczby unikalnych użytkowników, którzy będą odwiedzać e-sklep oraz liczby użytkowników, którzy otworzą proces zakupowy (przejdą do koszyka). Ta druga liczba jest szczególnie istotna, ponieważ to właśnie uruchamianie ścieżki zakupowej w Magento bardziej dociąża system niż przeglądanie sklepu. To rozróżnienie warto zapamiętać, ponieważ przyda się przy konfiguracji testów wydajnościowych (o czym napiszemy w kolejnych krokach). Jeśli w sklepie użytkownicy często korzystają z wyszukiwarki, warto również ocenić szacunkowo wzrost jej popularności. Z naszego doświadczenia w testowaniu wydajności Magento wynika, że na założone liczby warto nanieść dodatkowo 50% bufora ─ nawet jeśli będzie to oznaczało konieczność okresowego zwiększenia mocy infrastruktury.
Krok 2: Przygotuj testy wydajnościowe
Posiadając informacje o szacowanym ruchu trzeba wykonać w środowisko produkcyjnym testy wydajnościowe. Potrzebne będzie oczywiście ustalenie scenariuszy takich testów, które zwykle powinny być stworzone na podstawie uśrednionej typowej ścieżki (zebranej np. na podstawie danych z Google Analytics). Narzędzia, które wykorzystujemy w toku testów wydajnościowych to: Locust, K6, NewRelic, monitoring logów (np. z użyciem Graylub ELK stack) oraz komplet narzędzi monitoringu parametrów infrastruktury, za które powinna odpowiadać firma hostingowa. Ważnym elementem jest również kwestia wysycenia łącza sieciowego ─ aby nie doszło do sytuacji jego wyczerpania już podczas trwania kampanii.
Testy powinny być uruchamiane w umówionym okienku serwisowym, aby nie zaburzyć działania e-sklepu ─ najczęściej są to godziny nocne. Warto pamiętać, że kluczowym jest, aby w momencie większego obciążenia systemu komunikacja z krytycznymi systemami powiązanymi (np. ERP) działała prawidłowo, stąd też bardzo ważne jest wykorzystanie systemu kolejkowania danych, w przypadku Magento będzie to RabbitMQ.
Raport z wykonania testów ─ w przynajmniej kilku iteracjach trwających po ok. 20-30 minut ─ powinien być podstawą do analizy “czy i kiedy” podejmować dalsze działania.
Krok 3: Przygotowanie infrastruktury i systemu
Na bazie stworzonego raportu należy ustalić plan działań z podziałem na ewentualne kroki:
- Zmiany w infrastrukturze, np. dołączenie kolejnego serwera aplikacyjnego, wzmocnienie istniejących maszyn, optymalizacja parametrów usług NGiNX, PHP-FPM, Varnish, Redis.
- Tuning ustawień aplikacji w Magento ─ w porozumieniu z firmą hostingową, która będzie dokonywać analogicznego tuningu po swojej stronie.
Po wykonaniu powyższych prac testy wydajnościowe powinny być wykonane ponownie, aby potwierdzić ich skuteczność lub też dokonać jeszcze jednej iteracji. Jak już pisaliśmy na wstępie do artykułu ─ proces w całości może potrwać nawet kilka tygodni, dlatego warto zaplanować go odpowiednio wcześniej.
Warto pamiętać: optymalizacja to proces
Kilka tygodni przed uruchomieniem kampanii to nie jest wystarczający czas na właściwą optymalizację sklepu na Magento ─ to proces ciągły, który powinien być uwzględniony w procesie solidnego developmentu tej platformy. Składowe najbardziej istotne, to:
- Ciągła obserwacja instancji testowej pod kątem powstających wąskich gardeł ─ można wykorzystać do tego NewRelic, XDebug i inne profilery PHP.
- Wykorzystywanie możliwie najnowszych wersji PHP i MySQL, które same w sobie oferują większą wydajność.
- Wykorzystanie prawidłowej architektury Magento z wykorzystaniem prawidłowo skonfigurowanych usług: Varnish, Redis, Elasticsearch.
- Optymalizacja treści ─ ilości i wagi obrazów, które mogą niepotrzebnie generować wysycenie łącza. Wykorzystanie możliwości formatów WebP.
- Minifikacja i optymalizacja kodu CSS i JS dla zmniejszenia wagi samego serwisu.
- Wyłączenie zbędnych modułów ─ również tych, które są standardowo dołączone do każdej instalacji Magento.
- Procedura monitoringu wdrożeń produkcyjnych ─ np. z użyciem NewRelic i odpowiedniej konfiguracji alertów oraz komunikacji po API z tym systemem ─ aby można było porównywać wydajność pomiędzy wdrożeniami paczek produkcyjnych Magento.
- Ciągła obserwacja logów systemu w warunkach produkcyjnych.
- Regularna higiena bazy danych sprowadzająca się nie tylko do usuwania nieużywanych kategorii, produktów, ale również użytkowników, stron CMS.
- Regularna higiena tabel indekserów Magento i weryfikacja poprawności ich wykonywania.
W czasie trwania kampanii
Gdy kampania już trwa, a Magento z powodzeniem obsługuje zaplanowany ruch, warto zapewnić ciągłą obserwację systemu przez zespół developerów, a także zespół DevOps/SysOps po stronie firmy hostingowej. To dodatkowe wsparcie, może okazać się niezbędne. Zwiększony ruch podczas kampanii zwykle nie jest też najlepszym momentem na wykonywanie zmian w treściach bazy produktowej czy CMS ─ po to, aby nie generować zbyt wielu sytuacji, w których będzie konieczne czyszczenie całościowe cache Magento.
Potrzebujesz konsultacji i przygotowania swojego e-sklepu do większych kampanii? Skontaktuj się z nami na: sales@lizardmedia.pl.