Razgovarali smo s Lukom Kladarićem, infrastrukturnim savjetnikom u Entriju, ne bi li saznali kako su izgledali ti dani iz njihove perspektive, kako su izdržali i zašto neki nisu mogli kupiti karte, piše Netokracija.
Pripreme su trajale dva mjeseca
Konkretno, pripreme za prodaju Thompsonovog koncerta na Hipodromu trajale su oko 2 mjeseca i u tom periodu je odrađeno nekoliko full scale load testova koji su simulirali prodaju nekoliko desetaka milijuna ulaznica, uz kontinuirano optimiziranje infrastrukture i softvera nakon svakog ciklusa testova na temelju otkrivenih nedostataka i prilika za poboljšanje, objašnjava Luka:
Mnoge komponente sustava koje su nekoć bile dio “monolita” su izdvojene u zasebne servise koje smo onda mogli zasebno nadzirati i skalirati po potrebi. To nam se pokazalo kao iznimno bitan potez.
Za online prodaju smo iskoristili rješenje virtualne čekaonice koje nas je poslužilo i prošle godine kad je za prodaju Thompsonovih koncerata u Imotskom i Dugopolju. Virtualna čekaonica nam omogućava da doziramo navalu na sustav na fer i predvidljiv način, i da čak i u trenucima najgoreg opterećenja komuniciramo s kupcima.
Osim toga, uveli smo dosta strogu kontrolu tko pristupa stranici, koristeći više razina zaštite od automatiziranih aktivnosti (botova) i malicioznog prometa i napada.
Kad se sve zbroji, Entrio je posljednja dva mjeseca za potrebe pripreme i prodaje koncerta na Hipodromu na cloud usluge potrošio značajno više nego u cijeloj prethodnoj godini, povrh standardnog troška redovne usluge. To je vrlo konkretna investicija u izvršenje ovog projekta, ističe Luka.
Brojke koje graniče s apsurdom
Prvi dan prodaje je bio iznimno izazovan jer se radilo o zbilja nezapamćenoj navali koja je premašila i njihova najambicioznija predviđanja. Teško je te brojke staviti u neki kontekst koji je razumljiv, jer graniče s apsurdom, ali Luka nam detaljno objašnjava:
Cloudflare koji nam je “prva linija obrane” je u jednom trenutku rekao da imamo 1,2 milijuna uređaja koji pokušavaju pristupiti sustavu, od kojih su mnogi kad bi došli do virtualne čekaonice išli nazad na naslovnicu i pokušavali naći način da zaobiđu čekaonicu i svejedno dođu do ulaznica za koncert.
Na Facebooku su objavljivane slike gdje ljudi imaju otvoren laptop i 4 mobitela u čekaonici. To je ogromno opterećenje, i u tom trenutku što sustav lošije radi to su kupci nervozniji i zauzvrat stvaraju još veći pritisak, posuđuju se mobiteli, tableti, samo da uđu u čekaonicu.
Entrio u tim trenucima, čekaonici unatoč, servira 80 puta više upita po sekundi nego što je uobičajen promet na Entriju. I takvo opterećenje nije posustalo satima. A počelo je satima prije početka prodaje, iako je jasno komunicirano da prodaja počinje točno u podne i da nema nikakve potrebe ni značaja doći prije tog vremena, već u 9 ujutro na Entriju je bilo 4x više posjetitelja nego drugim danima u peaku.
Cijeli tim u niskom startu
Tijekom oba dana prodaje, cijeli engineering tim bio je prisutan u uredu, uključujući članove iz drugih gradova i država. U jednoj prostoriji bili su okupljeni development i infrastrukturni timovi, uz nadzorne ploče sustava i prodaje prikazane na velikim ekranima. Problemi sa sustavom rješavali su se odmah – od skaliranja i blokiranja IP adresa do optimizacije koda, ističe Luka:
Zvuči dramatično, ali bez toga nema šanse da bismo postigli rezultate kakve jesmo. Da je samo online prodaja, waiting room bi mogao biti postavljen da pušta 5 po 5 korisnika i par ljudi bi moglo to ispratiti, ali u kombinaciji s prodajnim mjestima i ovolikom rekordnom navalom jednostavno nema zamjene za to da smo svi na jednom mjestu doslovno nadohvat ruke.
Fizička prodajna mjesta ove godine predstavljala su poseban izazov jer su zabilježila 500 puta veći promet nego inače, i to konstantno tijekom cijelog radnog dana. Iako ih je manje od online korisnika, sustav ih teže podnosi jer svi koraci – od provjere kapaciteta do fiskalizacije – moraju biti odrađeni odmah, bez mogućnosti naknadne komunikacije s kupcem. Olakšanje je stiglo tek nakon 20 sati, kad su prodajna mjesta zatvorila:
Team je i tad uzeo lekcije iz toga i primijenio ih u idućih nekoliko dana, te su prodajna mjesta za drugi dan prodaje značajno bolje funkcionirala.
Drugi dan prodaje prošao je mirnije
Analizom logova i metrika precizno su identificirana kritična mjesta u sustavu te su problemi strateški riješeni kako bi drugi dan mogao proći bez greške. Na infrastrukturnoj razini, integracije s prodajnim mjestima podijeljene su na zasebne servise radi boljih performansi. U međuvremenu, development tim je implementirao ključne optimizacije procesa kupovine, posebno za fizička prodajna mjesta, ističe Luka:
Za drugi dan smo imali još jedan server baze podataka identičnih kapaciteta u rezervi, kako bismo u trenucima preopterećenja mogli napraviti tzv. “failover” (brzi prelazak na drugi server) i time umjesto sporog i bolnog oporavka dobiti … disruptivniji, ali puno brži. Tu mogućnost na kraju nismo morali iskoristiti i rezervna baza je ostala u rezervi.
Drugi dan prodaje je prošao puno mirnije s 25% većim brojem transakcija po minuti, ističe Luka.
Sustav koji se ne ruši
Moguće je, naravno, napraviti sustav koji proda milijun ulaznica u sat vremena bez usporavanja, a pogotovo je to moguće ako radiš od nule i radiš samo za takav volumen. Ipak, ostaju pitanja koliko košta takav sustav kad prodaje ulaznice za standup u nekom kafiću u Crikvenici, koliko košta hladan pogon takvog sustava i koliko koštaju razvojne okoline takvog sustava, ističe Luka:
Hipotetski, kada bismo radili sustav koji “ne štuca u ovakvim situacijama” onda bismo zapravo gradili sustav koji je u potpunosti podređen masovnoj prodaji po cijenu svih ostalih funkcionalnosti. Radili smo nešto gdje se prodaja smatra “imamo rezervirana sredstva na karticama kupaca, i znamo tko je uzeo koliko ulaznica koje kategorije”, što je drastično manje nego Entrio isporučuje svaki dan već godinama.
Da se kojim slučajem dogodi da za Thompsonov koncert na Hipodromu nema dovoljno interesa, te da ulaznice ostanu u prodaji sve do samog početka koncerta – što je čest slučaj kod mnogih glazbenih događanja – takav hipotetski sustav prodaje ne bi mogao podržati kupnju ulaznica u posljednji trenutak, posebno na samom ulazu.
Uz to, trošak održavanja prodaje i hladnog pogona kroz iduća tri mjeseca bio bi višestruko veći – i do deset puta – od sadašnjeg modela, čime bi čitav proces postao ekonomski neisplativ i teško opravdan.
Jedna vrlo gruba usporedba bi bila gradski, obiteljski auto i trkaći auto. Potrošnja svega što se troši na autu je neusporediva, cijena prijeđenog kilometra također, trošak nabave i održavanja isto tako, objašnjava Luka:
Na trkaćem autu očekujemo više kvarova, iako prelazi manju kilometražu od obiteljskog auta. Obiteljski auto čak i kad ga vozite agresivno je unutar svojih projektiranih granica, i kvarove u vožnji zapravo ne očekujemo, dok na svakoj profesionalnoj trci neki broj vozila ne završi utrku baš zbog kvarova, a sve što su radili je pripremali se za tu utrku.
Sustav što je veći i kompleksniji i što se više performansi očekuje od njega, to glasnije i snažnije pada i to je manje predvidiv.
Za kraj, iz Entrija nam poručuju koliko su ponosni na ovaj uspjeh i srušen svjetski rekord. Iako je najizazovniji dio ovog projekta s tehničkog aspekta prošao i uspješno odrađen, izazov se sad prebacuje na operativni tim koji već priprema projekt kontrole ulaza i podrške korisnicima na hipodromu, na najprodavanijem koncertu na svijetu.
Izvor: Netokracija
Foto: Netokracija