Punkt wyjścia
Gdy padał Elasticsearch, sklep przestawał sprzedawać
Sklep trafił do nas w 2023 roku od poprzedniego wykonawcy. Katalog liczy ponad 5000 produktów, od trzpieni pomiarowych po akcesoria do sond i oprawek, a za większością stoją konkretne symbole producentów takich jak Renishaw, Heidenhain, Hexagon czy Mitutoyo. Platforma działała na starszej wersji Magento i miewała przestoje. Najczęściej zawodził Elasticsearch, czyli silnik, na którym opierają się wyszukiwarka i listy kategorii. Przy katalogu części, w którym klient zwykle szuka konkretnego symbolu, awaria wyszukiwarki oznaczała, że sklep w praktyce przestawał działać. Zanim można było myśleć o nowym froncie, trzeba było sprawić, żeby sklep po prostu działał bez przerw.
Co zrobiliśmy
Aktualizacja, porządek w katalogu i Varnish
Najpierw zajęliśmy się tym, co powodowało awarie. Prace nad nowym wyglądem zaczęliśmy dopiero na stabilnym sklepie.
- 1
Przejęcie kodu i środowiska
Zaczęliśmy od przejęcia repozytorium, dostępów i serwera od poprzedniego wykonawcy. Sprawdziliśmy, które moduły są faktycznie używane, gdzie kod odbiega od standardu Magento i co blokuje aktualizację. Na tej podstawie ustaliliśmy kolejność prac tak, żeby sklep przez cały czas przyjmował zamówienia i zapytania.
- 2
Aktualizacja wersji Magento
Podnieśliśmy Magento do nowszej wersji i dopasowaliśmy do niej moduły oraz własny kod sklepu. Aktualizacja zamknęła zaległe luki bezpieczeństwa i dała dostęp do poprawek wydajności z nowszych wydań. Od tego czasu łatki bezpieczeństwa wgrywamy na bieżąco, zamiast odkładać je na później.
- 3
Optymalizacja katalogu
Przy ponad 5000 produktów konfiguracja katalogu i indeksowania ma bezpośredni wpływ na obciążenie Elasticsearch. Uporządkowaliśmy atrybuty i ustawienia indeksowania tak, żeby wyszukiwarka i listy kategorii nie dociążały niepotrzebnie serwera. Po tych zmianach, razem z aktualizacją i cache, awarie Elasticsearch przestały się powtarzać.
- 4
Varnish jako cache stron
Wdrożyliśmy Varnish przed Magento. Strony kategorii, produktów i treści serwuje pamięć podręczna, a sklep liczy na bieżąco tylko to, czego nie da się zapamiętać, na przykład koszyk. Serwer ma przez to zapas mocy, a odwiedzający szybciej dostają gotową stronę, także w godzinach większego ruchu.
- 5
Hyvä i Hyvä Checkout w trakcie wdrożenia
Sklep działa dziś na motywie Luma. Przenosimy go na Hyvä i Hyvä Checkout, które zastąpią ciężki front oparty na RequireJS lżejszym kodem na Alpine.js i Tailwind CSS. Wdrożenie wciąż trwa, a jego efekty opiszemy, gdy nowa wersja trafi na produkcję.
Efekt
Przestoje i awarie wyszukiwarki ustały
Po aktualizacji Magento, porządkach w katalogu i wdrożeniu Varnisha sklep przestał się zatrzymywać, a Elasticsearch przestał padać. System 3D ma stabilny kanał sprzedaży dla ponad 5000 produktów. Sklepem opiekujemy się na bieżąco: wgrywamy łatki bezpieczeństwa, pilnujemy serwera i rozwijamy kolejne funkcje. Następny etap, nowy front na Hyvä z Hyvä Checkout, jest w trakcie wdrożenia. Opieka obejmuje cały sklep, od kodu Magento po serwer z Varnishem i Elasticsearch.
- Wgrywamy łatki bezpieczeństwa Magento
- Utrzymujemy serwer, Varnish i Elasticsearch
- Wdrażamy Hyvä i Hyvä Checkout