Cum cea mai mare parte a efortului pe care l-am făcut împreună cu colegii mei în ultimele trei luni a fost dedicată pregătirilor pentru Black Friday, în cadrul acestui articol din seria Product Updates vom vorbi chiar despre acestea. Mai mult, vom vedea cum mare parte dintre ele au efecte pe termen lung în ceea ce privește performanța platformei.
Noi avem o vorbă în echipa tehnică: de Black Friday, vrem ca singura noastră grijă să fie ce mâncăm 🙂 A spus-o chiar CTO-ul nostru, Irina Dumitrașcu, anul trecut la 2Performant Talks. Asta nu pentru că am trece cu vederea importanța evenimentului, ci pentru că noi putem pregăti din timp tot ce e nevoie, astfel încât în noaptea cu cele mai mari reduceri să nu facem altceva decât să urmărim că totul merge conform planului.
Iată deci etapele pe care le parcurgem.
Optimizări de performanță
Primul lucru pe care încercăm să-l facem este să analizăm ce componente ale platformei pot fi îmbunătățite din punct de vedere al performanței sau al stabilității. Aici facem o prioritizare uitându-ne la traficul înregistrat în ultima perioadă, dar și la traficul din anii trecuți din perioada Black Friday. Pentru a ne ajuta analiza, folosim tool-uri precum Scout, NewRelic, Kibana sau AWS Performance Insights. Tot prin acestea testăm și dacă schimbările aduse au avut un impact pozitiv asupra performanței. Mai mult, la fel ca orice altă schimbare în platformă avem și o testare manuală, în acest caz i-am putea spune calitativă, pentru a ne asigura că totul funcționează ca și până acum.
Un exemplu de anul acesta este interfața de comisioane a afiliaților. Am îmbunătățit pe de-o parte modul în care aducem informații din baza de date, iar pe de altă parte am făcut ca afișarea efectivă a datelor să fie mai rapidă. Aceste două lucruri împreună au făcut ca interfața să servească mai rapid cererile, dar și să fie mai predictibilă în scenarii de trafic crescut.
Teste de performanță
Odată ce toate schimbările majore au ajuns live, urmează o serie de teste de performanță. Acestea ne ajută pe de-o parte să vedem ce limite are platforma pentru a putea plănui de ce servere e posibil să avem nevoie, dar și dacă performanța urmărește o evoluție constantă în raport cu creșterea traficului, astfel încât să nu avem surprize neplăcute.
Cel mai intens testate sunt serverele principale la care este legată platforma și serverele care înregistrează traficul și vânzările. Folosim mai multe scenarii, unele bazate pe tiparele pe care le putem observa de la utilizatori, dar și scenarii puțin probabile, dar care ar forța cât mai mult platforma. În acest fel ne putem asigura că indiferent ce se va întâmpla, suntem pregătiți.
Acesta este de asemenea un moment foarte bun pentru a ne asigura că toate schimbările despre care vorbeam mai sus pentru îmbunătățirea performanței lucrează bine împreună.
Pregătire servere și cazuri de avarie
Având la îndemână numerele care ne spun capacitatea serverelor actuale și o estimare a traficului din perioada Black Friday urmează să facem două lucruri:
- facem upgrade pentru majoritatea serviciilor la servere mai puternice care pot susține mai mult trafic.
- pregătim o fermă de servere, adică un număr de servere create și puse în stand-by pentru fiecare serviciu din platformă care sunt gata foarte rapid de a intra în producție atunci când este nevoie.
Tot aici ne pregătim și pentru eventualele cazuri de avarie. Încercăm să avem un plan pentru fiecare situație problematică care ar putea apărea.
De exemplu, pentru crearea unui server nou este nevoie de mai mulți pași și servicii externe pe care nu le putem controla. Avem ferma de servere în așteptare astfel încât chiar dacă un serviciu extern din acest lanț nu este disponibil, noi putem oricând mări capacitatea de procesare.
Un alt exemplu este motorul de search pe care îl folosim. Ne-am gândit la scenariul în care acesta nu mai este disponibil. Evident, fiind servicii decuplate, traficul și conversiile se vor înregistra în continuare, doar că afiliații nu și-ar mai putea vedea conversiile în platformă. Pentru acest scenariu am dezvoltat o metodă de backup prin care ne asigurăm că toate datele sunt vizibile în platformă, chiar dacă motorul de search întâmpină probleme.
Monitorizare
Ajungem așadar la ultima piesă a puzzle-ului tehnic și anume monitorizarea. Am amintit și mai devreme câteva dintre tool-urile folosite pentru a monitoriza performanța și traficul. Deși ultima în listă, aceasta piesă este una integrantă din orice alt pas și pe care o folosim pe tot parcursul anului.
În zilele din jurul Black Friday echipa tehnică este de obicei împărțită în așa fel încât să acoperim toate orele de trafic intens. Aici ajungem să ne punem întrebarea “Ce mâncăm de Black Friday?” (pentru mine au fost pizza și noodles 😋). Asta pentru că vine momentul să ne liniștim și să urmărim graficele care ne arată că totul merge conform planului.
Efecte pe termen lung
Am spus la început cum Black Friday aduce și efecte pe termen lung. Cred că este evident cum îmbunătățirile de performanță aduc beneficii și după trecerea evenimentului.
Ținând cont de ritmul de creștere pe care 2Performant l-a înregistrat până acum, acest eveniment ne arată cum va arăta traficul și încărcarea în platformă în următorii 1-2 ani, o lecție foarte importantă pe care o analizăm mereu atunci când începem să trasăm planurile pentru anul următor.
Alte schimbări
Chiar dacă ne concentrăm pe stabilitatea platformei și a serviciilor în această perioadă, continuăm și îmbunătățirea experienței pentru utilizatori. Iată câteva schimbări:
- Design optimizat pentru interfața care arată detaliile unei campanii. Toate informațiile care se regăsesc aici ar trebui sa fie mai ușor de citit și ințeles. Mai mult, indicatorii au informații explicite despre cum sunt calculați și ce reprezintă.
- Emailul care anunță schimbarea Termenilor și Condițiilor unui program de afiliere către afiliați a fost transformat pentru a face mai clare schimbările. De asemenea ar trebui să fie mai clar și momentul în care aceste schimbări intră în vigoare.
- Nu în ultimul rând, în secțiunea My Feeds se pot vedea acum și numărul de produse din fiecare feed creat.
🙋♂️ Cătălin este software developer, lucrează la 2Performant din 2018 și se ocupă în principal de web backend development folosind Ruby on Rails, MySQL și tehnologii cloud Amazon Web Services.