Problemy sklepów internetowych – przemyślenia, rozwiązania, sukcesy i porażki

Dziennik wdrożeń

Bez teorii. Tylko to, co faktycznie weszło na produkcję. Pisane przez człowieka, nie ai.

Migracje 18 min

Migracja 180 tysięcy SKU w jeden weekend. Plan, który się nie rozsypał

Harmonogram godzina po godzinie, trzy punkty wycofania i jedna rzecz, którą przeoczyliśmy do wtorku. Sam transfer danych zajął jedną trzecią czasu, który na niego zarezerwowaliśmy.

Migracja katalogu 180 tysięcy SKU wraz z historią zamówień i kontami klientów, w oknie od piątku wieczorem do poniedziałku rano. Poniżej plan, który wytrzymał zderzenie z rzeczywistością, i jedno miejsce, w którym nie wytrzymał.

Harmonogram

  • Piątek 20:00. Zamknięcie sklepu, strona informacyjna, ostatni pełny backup.
  • Piątek 21:00. Eksport danych ze starego systemu. Zarezerwowane 6 godzin, zajęło 2.
  • Sobota 00:00. Transformacja i walidacja. Pierwszy punkt wycofania: jeżeli walidacja nie przejdzie do 08:00, wracamy.
  • Sobota 10:00. Import do nowego systemu. Drugi punkt wycofania o 20:00.
  • Niedziela 08:00. Testy akceptacyjne, 40 scenariuszy przechodzonych ręcznie. Trzeci i ostatni punkt wycofania o 18:00.
  • Niedziela 20:00. Przełączenie DNS, otwarcie sklepu, obserwacja.

Zapas czasu wynosił około 30% na każdym etapie. Wykorzystaliśmy go w całości na etapie testów, a nie tam, gdzie się spodziewaliśmy.

Co poszło zgodnie z planem

Sam transfer danych. Przygotowaliśmy skrypty trzy tygodnie wcześniej i przepuściliśmy je pięć razy na kopii produkcyjnej bazy, mierząc czas każdego kroku. Piąte przejście trwało tyle samo co czwarte, więc przyjęliśmy tę liczbę i dodaliśmy zapas. Nie było niespodzianek.

To jest cała tajemnica: migracja bez prób to zgadywanie. Pięć przejść na realnym wolumenie kosztowało trzy tygodnie pracy jednej osoby i było najlepiej wydanym budżetem w tym projekcie.

Czego nie przewidzieliśmy

Przekierowania. Stary sklep miał adresy produktów zbudowane inaczej, więc przygotowaliśmy mapę przekierowań 301 – 180 tysięcy reguł, wygenerowanych automatycznie i sprawdzonych wyrywkowo. Działały.

Nie działały przekierowania dla kategorii z filtrami, których w starym systemie było około 4 tysięcy i które generowały jedną trzecią ruchu z wyszukiwarki. Nikt o nich nie pomyślał, bo nie były produktami i nie były kategoriami – były osobnym bytem w starym CMS-ie.

Zorientowaliśmy się we wtorek po południu, kiedy spadek ruchu organicznego przestał dać się tłumaczyć naturalnymi wahaniami. Naprawa zajęła jeden dzień, powrót pozycji w wyszukiwarce około trzech tygodni.