Sari la conținutul principal
Înapoi la blog

Cum îți pregătești site-ul pentru vârfurile de trafic

Valentin Zsigmond
Valentin Zsigmond12 octombrie 20265 min de citit

Black Friday cade anul acesta pe 27 noiembrie și, pentru multe firme, săptămânile din jurul lui decid trimestrul. Dar vârfurile de trafic nu sunt doar un fenomen de retail. O lansare de produs, o mențiune la televizor, anunțarea unei finanțări, o perioadă de înscrieri sau o știre bine plasată pot trimite unui site de zece ori traficul obișnuit, cu câteva ore de avertisment. Diferența dintre un vârf care devine o poveste bună și unul care devine un incident e aproape în întregime pregătire, iar pregătirea e aceeași indiferent dacă vârful e planificat sau nu. Așa pregătim noi un site.

Cunoaște-ți numerele

Pregătirea începe cu două cifre: cum arată normalul și cum ar putea arăta vârful. Normalul vine din analitica ta și din monitorizarea noastră: cereri pe minut, afișări pe zi, paginile care poartă cea mai mare parte a încărcării și timpul de răspuns la o oră aglomerată obișnuită. Vârful e o estimare. Cifra de anul trecut, dacă o ai, înmulțită cu creșterea ta. Un plan de campanie cu o audiență așteptată. O presupunere prudentă cu o marjă deasupra. Preferăm să ne pregătim pentru triplul estimării decât să descoperim că estimarea era mică.

Cunoașterea numerelor îți spune și unde va cădea încărcarea. O campanie care trimite oamenii spre o singură pagină și spre finalizarea comenzii are o formă foarte diferită de o știre care îi trimite pe prima pagină și în caseta de căutare. Fiecare formă are alte gâtuiri, și fiecare se pregătește altfel.

Cache-ul face cea mai mare parte a muncii

O pagină care e la fel pentru toți ar trebui construită o dată și servită de multe ori. Straturile de cache ale Drupal, combinate cu un cache la edge, înseamnă că marea majoritate a cererilor dintr-un vârf nu ajung deloc la PHP sau la baza de date. Un site bine pus în cache poate absorbi un multiplu mare al traficului său normal fără nicio schimbare de infrastructură, pentru că cei mai mulți vizitatori primesc o copie randată cu câteva milisecunde înainte.

Munca de pregătire e să te asiguri că paginile importante chiar intră în cache. Un singur element personalizat, o etichetă care arată numele vizitatorului, un contor de coș randat pe server, poate face o pagină întreagă imposibil de pus în cache. Auditem paginile de pe traseul campaniei și mutăm tot ce e specific vizitatorului într-o componentă mică, încărcată separat, ca pagina în sine să rămână comună. E muncă obișnuită de performanță; un vârf doar îi face valoarea vizibilă.

Capacitate pentru partea care nu poate intra în cache

Unele cereri sunt unice prin natura lor: o căutare, o trimitere de formular, adăugarea în coș, finalizarea comenzii, autentificarea. Acestea ajung la aplicație de fiecare dată, și acolo contează capacitatea. Pe platforma noastră administrată, capacitatea e o setare, nu o achiziție: procesele PHP, memoria și resursele bazei de date sunt definite per mediu și pot fi ridicate pentru vârf și coborâte după. Măsurăm marja în săptămânile dinainte, iar dacă estimarea cere mai mult, programăm creșterea pentru ziua dinaintea campaniei, nu pentru dimineața ei.

Serviciile terțe merită aceeași atenție. Un procesator de plăți, un serviciu de stoc, un expeditor de e-mail sau o interogare de tarife de livrare care încetinește sub încărcare îți va încetini finalizarea comenzii indiferent cât de rapid e site-ul tău. Le verificăm limitele, le confirmăm propriile planuri de vârf și ne asigurăm că, dacă unul dintre ele se blochează, site-ul tău se degradează elegant în loc să înghețe.

Repetă cu un test de încărcare

Estimările sunt presupuneri până sunt testate. Un test de încărcare trimite trafic sintetic către un mediu de staging care oglindește producția, la volumul și forma vârfului așteptat, și înregistrează ce se întâmplă. Găsește pagina care nu intră în cache, interogarea lentă și expirarea serviciului terț cât mai e timp să le repari. Produce și un număr: traficul la care timpii de răspuns încep să crească. Când știi acel număr, vârful se transformă dintr-o speranță într-un plan.

Îngheață ce nu trebuie să se schimbe

Zilele dinaintea unui vârf nu sunt momentul pentru funcții noi. Stabilim cu fiecare client o perioadă de îngheț: de la o dată fixată până când vârful a trecut, intră live doar modificări de conținut și remedieri de securitate, iar orice altceva așteaptă. Livrările care totuși au loc pleacă dimineața, cu o cale de revenire confirmată. Conținutul de campanie e încărcat și previzualizat din timp, programat să se publice la momentul potrivit și verificat pe dispozitivele pe care le vor folosi oamenii cu adevărat.

Pregătirea legală ține de aceeași fereastră. Regulile europene privind reducerile de preț cer ca un preț redus să fie comparat cu cel mai mic preț din ultimele treizeci de zile, ceea ce pentru o campanie din 27 noiembrie înseamnă că prețurile de referință se fixează până pe 28 octombrie. E o chestiune de conținut și de comerț, dar are o dată, și locul ei e în plan.

Urmărește în timp real, și știi ce ai face

În timpul vârfului urmărim aceleași panouri pe care le urmărim mereu, mai atent. Timpi de răspuns, rate de eroare, lungimi de cozi, încărcarea bazei de date și semnalele de business care contează pentru campanie: comenzi pe minut, trimiteri de formulare, conversie. Stabilim din timp ce am face dacă se depășește un prag: adăugăm capacitate, dezactivăm o funcție neesențială, comutăm o pagină pe o versiune statică, prelungim durata unui cache. Când lista e scrisă, deciziile din timpul vârfului sunt rapide și calme.

După

Când vârful a trecut, scriem ce s-a întâmplat: traficul real față de estimare, marja rămasă, ce ne-a surprins și ce schimbăm înainte de următorul. Capacitatea revine la nivelul normal. Înghețul se ridică. Iar numerele devin punctul de plecare pentru planul de anul viitor, și așa fiecare vârf devine mai ușor decât cel dinainte.

Dacă ai o campanie sau un sezon în față și vrei să fii sigur că site-ul e pregătit, hai să vorbim acum, nu în noiembrie. Șase săptămâni e confortabil. Două e posibil. În dimineața zilei cu pricina, preferăm să urmărim panourile decât să reparăm lucruri.

Distribuie articolul
Valentin Zsigmond
Scris de
Valentin Zsigmond
Fondator și inginer principal

Arhitect Drupal full-stack cu aproape două decenii de experiență în conducerea unor echipe mari în medii enterprise. A fondat Tilizy Digital pentru a aduce expertiză de nivel senior direct organizațiilor care au nevoie de ea. Mentor pentru zeci de dezvoltatori Drupal și creatorul SDX, o extensie Drupal pentru construirea de interfețe moderne cu React și Vue.

Ți-a plăcut articolul?

Dacă te-ai regăsit în articol, imaginează-ți ce am putea face împreună pe site-ul tău Drupal.