Să întâmpini schimbarea nu a fost niciodată un lucru simplu. Fie ca o produci tu, sau că trebuie să te adaptezi la schimbările făcute de alţii. Anul 2016 a fost marcat de o schimbare majoră pentru echipa 2Parale – acum 2Performant, dar şi pentru toţi userii din platformă.

Astăzi ne pregătim să facem faţa unei alte provocări: Black Friday. Desigur, nu este primul pe care îl petrecem împreună, dar este primul alături de nouă platforma 2Performant.

Pentru că în mod cert gravitează multe întrebări în mintea userilor 2Performant, am decis să stăm de vorbă cu Tudor – Product Manager şi Cătălin – Technical Lead, care ne-au spus exact cum a fost pregătită reţeaua pentru acest moment crucial.

Cum a fost pregătit sistemul 2Performant pentru Black Friday?

Am făcut o sumedenie de optimizări de performanţă, începând din septembrie încoace.

Colegii mei de la dezvoltare şi infrastructura au analizat fiecare tip de request făcut de utilizatori, l-au luat pe cel mai “greu” şi au făcut tot ce se putea pentru a-i scădea timpul de încărcare, amprenta de memorie şi legăturile cu alte servicii care nu erau vitale pentru execuţia lui. Acolo unde se putea, au transformat toate prelucrările necesare pentru aceste requesturi în unele asincrone, executate după ce răspunsul a fost trimis înapoi utilizatorilor.

Iar după aceea, au făcut acelaşi lucru pentru al doilea “cel mai greu” request. Şi tot aşa, până când n-am mai găsit “spike”-uri. Toate acestea pentru a se asigura că totul se întâmplă cât mai repede şi mai eficient, atât pentru utilizatori cât şi pentru platformă în sine.

Am făcut teste de încărcare pentru serviciul de redirectare şi ştim cam câte requesturi pe secundă duc serverele noastre, drept urmare vom şti în timp real dacă ne ajung serverele sau dacă mai trebuie să adăugăm. Având infrastructura în Amazon Web Services, acest lucru este posibil imediat, nu trebuie să adăugăm servere fizice.

Ştim că după migrarea 2Parale în 2Performant, multe lucruri s-au dovedit a fi perfectibile. Black Friday a fost un motivator extrem de bun pentru optimizarea funcţionarii, pentru că ultimul lucru pe care ni-l doream era să stăm în noaptea aceea să păzim servere.

Vor funcţiona plasarea de cookie-uri şi înregistrarea comisioanelor (eventul)?

Ne aşteptam să avem 100% uptime. “Event-ul”, adică serviciul de redirectare şi înregistrare de comisioane a fost unul dintre cele mai importante puncte afectate de migrare. Suntem convinşi acum că este extrem de rapid, extrem de bine izolat de orice alt serviciu care ar putea să cadă din cauza încărcării şi că va funcţiona fără probleme.

În plus, am reuşit să găsim o reţetă foarte bună de “scalare pe orizontală”, adică în cazul în care vedem că event-urile sunt prea încărcate, ne este foarte uşor să mai adăugăm nişte servere cu fix acelaşi rol şi să distribuim încărcarea.

Vor fi afişate live statisticile?

Statisticile nu sunt niciodată afişate “live” în platformă, întotdeauna există o întârziere minusculă din cauza faptului că mai toate procesările sunt asincrone. În condiţii normale, aceste întârzieri sunt de ordinul sutimilor de secundă, însă este probabil că de Black Friday volumul de trafic să fie atât de mare încât aceste întârzieri să crească puţin.

Statisticile din secţiunea dedicată, precum şi numerele din dashboard vor fi aproape live, cu posibile întârzieri de ordinul minutelor.

Graficul cu click-uri şi comisioane din dashboard-ul utilizatorilor va avea întârzieri de maxim 15 minute, însă valorile din el vor fi oricum actualizate mai repede în alte părţi.

Ca să fim siguri că încărcarea nu creşte prea mult, am folosit caching pentru anumite informaţii.

Adică după ce generăm – să zicem – numărul de comisioane din ziua curentă, păstrăm acel număr într-un “cache” pe care îl servim pentru o anumită perioadă (e.g. 1 minut). După acel minut, cache-ul “expira” şi numărul de comisioane este calculat din nou. Asta garantează un timp de răspuns extrem de scăzut pentru orice a doua (a treia, etc.) interogare care este făcută în acel interval de un minut.

Dacă timpul de expirare pentru un cache este de 1 minut, atunci înseamnă că acea statistică cache-uita poate avea vârsta de cel mult un minut, după care, la următoarea interogare, când cache-ul a expirat, va fi din nou “live”.

Politica noastră de caching (cât timp cache-uim fiecare statistică) va depinde de încărcare, însă promitem că vom depune toate eforturile necesare pentru a livra informaţii cât mai proaspete la fiecare accesare.

Vor fi comisioanele afişate live în platformă?

Cum spuneam, există şi în mod normal o întârziere infimă între momentul generării unui comision şi apariţia lui în lista de comisioane. În condiţiile de încărcare pe care le previzionam de Black Friday, aceste întârzieri este posibil să crească până la câteva minute, însă vom face tot posibilul să nu depăşească, în cel mai rău caz, câteva minute.

În cazul în care vor apărea delay-uri în afişarea comisioanelor, se vor trimite live mesajele care notifica înregistrarea comisioanelor?

Trimiterea mesajelor de notificare este un proces de prioritate semnificativ mai mică decât înregistrarea efectivă a comisioanelor şi generarea statisticilor. Vor apărea întârzieri în trimiterea acestor mesaje (sunt extrem de multe), însă cel mai probabil nu vor depăşi 15-20 de minute.

Dacă statisticile, în special click-urile, nu se afişează live, asta înseamnă că nu sunt funcţionale redirecturile?

Redirectul şi plasarea de cookie funcţionează independent de înregistrarea de click-uri.

În cazul extrem de improbabil în care încărcarea creşte atât de mult încât click-urile apar cu întârzieri mari (de ordinul minutelor sau zecilor de minute), utilizatorii vor fi redirecţionaţi (cu cookie plasat) la fel de repede ca şi până acum.

În cazul în care comisioanele nu sunt afişate live, asta înseamnă că nu se înregistrează nici comisioanele?

Comisioanele (ca şi click-urile) se înregistrează asincron. Adică toate datele pentru generarea unui comision sunt stocate într-o coadă de procesare, pentru a fi prelucrate ulterior în ordinea intrării lor în coadă.

La fel ca la un ghişeu, chiar dacă e coadă foarte mare, fiecare client de la acea coadă va fi servit în cele din urmă. Diferenţa este că la noi, comisioanele nu suferă de lipsa de răbdare şi nu au alte lucruri de făcut, aşa că sigur vor ajunge la ghişeu în cele din urmă. Iar “funcţionarii” noştri sunt serviabili şi eficienţi 🙂

Există riscul ca anumite funcţionalităţi ale interfeţei să fie restricţionate? Dacă da, care?

Suntem pregătiţi să dezactivăm temporar anumite funcţionalităţi în cazul în care încărcarea generată de ele risca să afecteze buna funcţionare a altor funcţionalităţi mai importante.

Din punctul nostru de vedere, ierarhia importanţei funcţionalităţilor (nu doar în interfaţa) este aceasta:

  1. Înregistrarea de click-uri şi comisioane, redirectarea
  2. Generarea de unelte de promovare
  3. Alimentarea contului pentru advertiserii pre-paid
  4. Trimiterea şi primirea de mesaje
  5. Statisticile
  6. Listarea comisioanelor
  7. Listarea programelor de afiliere
  8. Aplicarea la/ieşirea din/excluderea (banarea) din programe de afiliere
  9. Livrarea de feed-uri (My feeds) pentru afiliaţi
  10. Statisticile din dashboard
  11. Generarea de profile de plată pentru afiliaţi
  12. Cererile de retragere pentru afiliaţi

Dintre cele de mai sus, statisticile şi feed-urile pentru afiliaţi sunt de departe cele mai mari consumatoare de resurse şi, prin urmare, cele mai probabil să cedeze primele în caz de încărcare. Până să ajungem la dezactivarea lor, însă, vom încerca să limităm consumul de resurse (e.g. statistici pe perioade mai scurte, dezactivarea unor filtre etc.).

Ierarhia este valabilă şi în mod normal, nu numai de Black Friday, însă ideea este că vom încerca să menţinem funcţionalităţile în picioare aproximativ în ordinea aceasta.

Dacă funcţionalităţi ale interfeţei vor fi restricţionate, asta înseamnă că vor fi limitate plasarea de cookie şi/sau înregistrarea de comisioane?

Redirectarea, plasarea de cookies şi înregistrarea de comisioane sunt aproape complet izolate de restul serviciilor, ceea ce le face aproape invulnerabile la problemele din interfaţa.

Sperăm că răspunsurile colegilor Tudor și Cătălin au reușit să clarifice cât mai mult din nelămuririle voastre, astfel încât să vă puteți concentra liniștiți pe generarea de cât mai multe vânzări și de acest Black Friday.

Spor la conversii™!

Comentează

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>