Jak szybko można dokonać aktualizacji systemu Magento 2 do jego najnowszej wersji? Czy to skomplikowany proces? Z takimi pytaniami do ekspertów z Sii zwraca się wiele firm.
Zapraszam do zapoznania się z poniższym case study, w którym, na przykładzie współpracy z marką Urbanista, na nie odpowiadam.
Wprowadzenie
Urbanista to marka stworzona w 2010 roku w Sztokholmie. Jest częścią Stax Limited – japońskiego przedsiębiorstwa, produkującego wysokiej klasy słuchawki elektrostatyczne oraz dopasowane akcesoria, np. wzmacniacze. W swoim asortymencie Urbanista oferuje produkty audio z aktywną redukcją szumów, stworzone z „miłości do muzyki” i z myślą o życiu w ruchu.
Nasz zespół e-commerce zaproponował marce aktualizację systemu Magento do wersji 2.4.2. Taka zmiana niesie ze sobą szereg usprawnień – zarówno biznesowych (m.in. poprawę bezpieczeństwa, ochronę danych użytkowników), jak i technicznych (np. ulepszenia infrastruktury dla modułów). Ponadto, Magento 2.4.2 zwiększa stabilność strony e-commerce, a co za tym idzie – poprawia wydajność systemu. Nowa wersja platformy zawiera również dodatkowe funkcje, dzięki którym właściciele sklepów mogą pomagać klientom w zakupach.
Przebieg pracy
Jakie zadania stały przed programistami Sii?
Wyzwania:
- 75 wirtualnych sklepów na jednej instancji Magento
- zachowanie obsługi wielu języków z wysyłką do kilkudziesięciu krajów
- dostosowanie przekierowań URL
Cel:
- aktualizacja i migracja do Magento 2.4.2
Realizacja:
- błyskawiczna aktualizacja – dwa tygodnie z testami i wdrożeniem na produkcję
Wyzwania
Celem naszego zespołu była aktualizacja i migracja systemu do najnowszego rozwiązania Magento 2.4.2, przy jednoczesnym zachowaniu funkcjonalności i UX klienta w procesie zakupowym.
Platforma e-commerce marki Urbanista oparta o Adobe/Magento posiada łącznie 75 sklepów (stores). Migracja do Magento 2.4.2 musiała uwzględnić ciągłość działania biznesu oraz dostosowanie do zmian nie tylko w ramach architektury systemu.
Jednym z wyzwań, jakie stanęły przed nami, była poprawa sposobu działania i reindeksacji URL (używane do tej pory domyślne rozwiązanie nie radziło sobie z tym najlepiej). Zastosowaliśmy własny moduł Sii Url_rewrite, który usuwa duplikaty i sprawia, że produkty działają poprawnie przy zapisie w backoffice. Od strony frontendu konieczne było dostosowanie do zmian UX w nowych szablonach check out, w których zmiany zostały naniesione – w przypadku rozwiązań customowych jest to zawsze dość złożony proces.
Szymon Nagórski, Frontend developer, Sii: „Nie lada wyzwaniem było dostosowanie asynchronicznych zapytań i blokowanie z CORS (Cross-Origin Resource Sharing) – rozwiązanie przez zewnętrzne zapytania (rozwiązanie dedykowane Sii)”.
Realizacja
Prace deweloperskie obejmowały stworzenie lokalnej kopii systemu 1:1 wraz z dostępem do integracji zewnętrznej (ERP), gdzie odbywała się migracja i większość pracy.
Daniel Lenkiewicz, Inżynier ds. oprogramowania, Sii: „Przechodziliśmy krok po kroku przygotowaną ścieżką przez zapytania REST, sprawdzając poszczególne endpointy do integracji, np. Navision. Sama aktualizacja do wersji 2.4.2 także była dość złożona. W trakcie prac pojawiały się wewnętrzne błędy platformy Magento związane z bazą danych w patchu MC-40700, które oczywiście naprawiliśmy”.
Następny etap stanowiły prace w środowisku testowym: testy UAT, backup i testy funkcjonalne. Tu także dokonaliśmy drobnych poprawek (uwzględniających dane ze środowiska produkcyjnego) przed finalnym wdrożeniem na produkcję.
Działania dodatkowe
Jak zawsze ważnym aspektem (poza samą aktualizacją i migracją) jest dla nas wydajność. Chcemy, aby system działał płynnie i był dostosowany zarówno do potrzeb użytkowników końcowych, jak również użytkowników back office. O tym, w jaki sposób performance może być objęty audytem, opowiadaliśmy już m.in. na przykładzie Black Friday podczas konferencji E-commerce Trends.
Podczas migracji dla marki Urbanista przeanalizowaliśmy moduły w wydaniu Magento 2.4.2 i wyłączyliśmy 147 z nich (w tym Magento Inventory) ze względu na brak konieczności stosowania ich w projekcie. Dzięki temu system został dodatkowo odciążony.
Poniżej przedstawiamy porównanie wersji przed aktualizacją oraz po aktualizacji do Magento 2.4.2:
- porównanie czasów operacji w testach dodawania nowych produktów, użytkowników i atrybutów na istniejącej już bazie produktowej (opartych na Magento Performance Toolkit):
Powyższe wyniki pokazują, że czas reindeksacji uległ wyraźnemu skróceniu po aktualizacji Magento do wersji 2.4.2.
- porównanie czasów operacji na reindeksacji:
W tym przypadku nastąpił niemal dwukrotny łączny wzrost wydajności przy pełnej reindeksacji
Infrastruktura
Po przeprowadzeniu testów na środowisku testowym, wydaliśmy właściwe wdrożenie na produkcję, która miała przygotowany backup (do wykorzystania w razie konieczności odtworzenia systemu). Przy aktualizacji Magento do wersji 2.4.2 niezbędna była również zmiana Elasticsearch do najnowszej wersji oraz podbicie PHP 7.3.x wraz z analizą zastosowanych modułów zewnętrznych (np. CMS).
Co ułatwiło nam realizację zadania?
- nasze doświadczenie z platformą Magento
- znajomość optymalnych rozwiązań hostingowych w chmurze
- moduły Sii dotyczące dedykowanych rozwiązań i usprawniających performance Magento
Efekt
Marka Urbanista jest usatysfakcjonowana efektami naszych działań i wdrożonej przez nas aktualizacji Magento do wersji 2.4.2. Klient zwrócił uwagę na fakt, że po wprowadzonych zmianach zauważył znaczną różnicę działania systemu:
Urbanista: „Dzięki dokonaniu migracji, back office zaczął działać płynniej, co jest zauważalne podczas wykonywania codziennych operacji”.
Ponadto, efektami migracji do Magento 2.4.2. była również reindeksacja produktów oraz ogólna stabilizacja systemu (280 core fix, 35 patchy bezpieczeństwa) wraz z aktualizacjami zasad bezpieczeństwa.
Cały projekt migracji do Magento 2.4.2 (uwzględniając: przygotowanie planu, development i przeprowadzenie testów) zajął programistom Sii 1 sprint – tj. 2 tygodnie pracy. Wdrożenie zostało zrealizowane pod koniec marca 2021.
Masz dodatkowe pytania odnośnie wdrożenia? Może zainteresował Cię konkretny aspekt wprowadzonych zmian? Podziel się swoją opinią w komentarzach, chętnie odpowiem na wszystkie pytania.
Zostaw komentarz