Migrácia e-shopu z WooCommerce

E-shop na WordPresse a WooCommerce sa každý mesiac niekde rozbil: aktualizácia zhodila pokladňu, plugin prestal fungovať s novou verziou PHP, po napadnutí sa z webu rozposielal spam. Presunuli sme ho na hotové e-commerce jadro, kde kritické funkcie nie sú poskladané z doplnkov cudzích autorov.

E-shop s vybavením pre domácnosť (na želanie klienta bez uvedenia mena) E-shop Laravel · Emporo · MySQL · Redis
Zálohy dokončené, 24 webov záloha WordPress 6.9.2 nasadený na testovacej kópii aktualizácia Certifikát obnovený, platný 90 dní certifikát Pomalá odozva 1,9 s, vyriešená do 12 minút incident Bezpečnostný sken: 0 kritických nálezov sken Rýchlosť webu v zelenom po zmenšení obrázkov rýchlosť Blokovaných 214 pokusov o prihlásenie ochrana
01
z 20+ na 0

Doplnky v kritickej ceste objednávky

Katalóg, doprava, platby a fakturácia sú súčasťou jadra, nie samostatné doplnky.

02
pod 2 min

Čas do zistenia výpadku

Monitoring kontroluje detail produktu, košík aj pokladňu, nie len domovskú stránku.

03
1 : 1

Presmerovania pri migrácii

Ku každej pôvodnej adrese kategórie a produktu vznikol trvalý ekvivalent.

04
žiadne

Mimoriadne zásahy po aktualizáciách

Od nasadenia sa aktualizuje jeden celok v dohodnutom cykle s kontrolou po ňom.

01 — Zadanie

Zadanie

Klient prevádzkoval e-shop postavený na WordPresse a WooCommerce. Web fungoval, ale prevádzka pripomínala hasenie požiarov. Kritické funkcie boli poskladané z doplnkov od rôznych autorov: doprava, platby, zľavy, faktúry, export do účtovníctva, filtre v kategóriách, formuláre. Každý z nich mal vlastný cyklus aktualizácií a vlastnú predstavu o tom, ako sa má správať.

Prakticky to znamenalo tri opakujúce sa problémy. Po aktualizáciách sa rozbíjali veci, ktoré s aktualizovaným komponentom zdanlivo nesúviseli – najbolestivejšie prípady boli tie, keď prestala fungovať posledná strana pokladne a zistilo sa to až podľa toho, že prestali chodiť objednávky. Neaktualizované doplnky boli zase otvorenou bránou: web bol napadnutý, útočník cez neho rozposielal spam a doručovanie e-mailov z domény sa zhoršilo natoľko, že v spame končili aj faktúry.

Tretím problémom bola nepredvídateľnosť nákladov. Časť peňazí išla na licencie doplnkov, časť na prácu s ich vzájomnými konfliktami. Firma platila mesačne, ale nevedela za čo – a pri každom väčšom probléme prišla mimoriadna faktúra.

Zadanie preto neznelo „chceme krajší e-shop". Znelo: chceme, aby sa e-shop prestal sám od seba rozbíjať, aby sme o probléme vedeli skôr než zákazník a aby bola cena prevádzky predvídateľná.

02 — Riešenie

Riešenie

Začali sme inventúrou, nie migráciou. Vypísali sme všetky doplnky a pri každom sme určili, či jeho funkciu pokrýva jadro nového riešenia, či ju treba doprogramovať, alebo či sa roky používala zotrvačnosťou a nikto ju nepotrebuje. Tretia skupina býva prekvapivo veľká a je to najlacnejšia úspora v celom projekte.

E-shop sme postavili na hotovom e-commerce jadre. Rozdiel oproti pôvodnému stavu nie je v tom, že by systém vedel viac funkcií, ale v tom, kto za ne zodpovedá: katalóg, varianty, doprava, platby, zľavy, objednávkové stavy a fakturácia sú súčasťou jedného celku, ktorý sa vyvíja a testuje spolu. Aktualizácia teda nie je stretnutie dvadsiatich nezávislých autorov.

Migrácia dát prebehla v troch behoch. Prvý bol nanečisto na testovacie prostredie, aby sa ukázali chyby v starých dátach – duplicitné produkty, varianty bez ceny, objednávky s neexistujúcim stavom. Druhý beh po oprave dát overil, že sedia počty a súčty. Tretí bol ostrý, s krátkym oknom a pripravenou cestou späť.

Osobitnú pozornosť dostali adresy. Ku každej pôvodnej URL kategórie a produktu vznikol pár v novej štruktúre a z toho mapa trvalých presmerovaní. Pred prepnutím aj po ňom sme spravili snímku indexovaných adries, aby sa dalo doložiť, že sa nič nestratilo po ceste.

Na záver sme zapli to, čo predtým chýbalo úplne: monitoring dostupnosti kritických ciest (detail produktu, košík, pokladňa, nie len domovská stránka), pravidelné bezpečnostné skeny, zálohy s overenou obnovou a testovacie prostredie, na ktorom sa zmeny skúšajú skôr, než idú na ostro.

03 — Výsledok

Výsledok

Najviditeľnejšia zmena je tá, ktorú nevidno: skončili mimoriadne zásahy po aktualizáciách. Aktualizuje sa jeden celok v dohodnutom cykle, po ňom prebehne kontrola kritických ciest a keď niečo nesedí, vracia sa jedna zmena, nie pátranie po tom, ktorý z dvadsiatich doplnkov to spôsobil.

Bezpečnostne sa zmenšila plocha na útok. Väčšina komponentov, cez ktoré sa dalo dostať dnu, na webe jednoducho už nie je. Zvyšok stráži pravidelný sken a upozornenia na zraniteľnosti.

Prevádzkovo sa zmenil aj spôsob, akým sa firma o problémoch dozvedá. Predtým to bol telefonát od zákazníka, dnes upozornenie z monitoringu – rozdiel medzi hodinami a minútami. A náklady sú konečne jedna položka mesačne namiesto paušálu, licencií a nepravidelných faktúr za hasenie.

Klient si zo spolupráce najviac cení vec, ktorá v zadaní nebola: prestal byť závislý od toho, či autor konkrétneho doplnku bude budúci rok ešte existovať.

Podobné zadanie vo vašej firme?

Ozvite sa s tým, čo dnes nefunguje. Úvodná konzultácia je nezáväzná a odpovieme do 24 hodín v pracovné dni.

  • 01 Úvodná konzultácia je nezáväzná a bez poplatku.
  • 02 Ponuka je písomná, s rozpisom prác.
  • 03 Kód, prístupy aj obsah ostávajú vaše.
Ďalej

Ďalšie prípadové štúdie

Webové sídlo Ministerstva cestovného ruchu a športu SR
Web

Webové sídlo Ministerstva cestovného ruchu a športu SR

Webové sídlo ministerstva sme z WordPressu preniesli na redakčný systém napísaný na mieru. Cieľom bolo zvládnuť rozsiahlu štruktúru obsahu, dvojjazyčnosť a stovky zverejňovaných dokumentov bez závislosti na reťazci pluginov.

Čítať štúdiu
Integrácie na slovensko.sk a elektronické podpisovanie
Web

Integrácie na slovensko.sk a elektronické podpisovanie

Elektronická komunikácia s občanmi a inštitúciami cez Ústredný portál verejnej správy: príprava elektronických formulárov, prijímanie a odosielanie podaní a podpisovanie dokumentov kvalifikovaným elektronickým podpisom.

Čítať štúdiu
Nasadzovanie z GitLabu a správa serverovej infraštruktúry
Web

Nasadzovanie z GitLabu a správa serverovej infraštruktúry

Nasadzovanie aplikácií sme z ručných krokov presunuli do GitLab CI/CD, pripravili opakovateľné nastavenie virtuálnych serverov a zautomatizovali prevádzkové úlohy, ktoré dovtedy robil človek.

Čítať štúdiu