
Skaliranje digitalnih proizvoda je skup proces ako se radi prekasno ili prerano: Kad je pravo vrijeme?
Kako uočiti probleme prije nego što počnu pucati šavovi jer su klijenti prerasli prvotne potrebe? Kako iskrojiti sustav koji će se lako moći prilagoditi mjerama novih i većih klijenata? Domaća travel tech tvrtka Lemax prolazi tehnološku transformaciju pa tako i skaliranje sustava koje će im omogućiti daljnji rast - evo što su oni naučili iz svog procesa.
Ovaj članak je dio serijala o tome kako provesti tehnološku transformaciju već velike platforme – na primjeru hrvatske ‘travel tech’ tvrtke Lemax i kroz iskrena iskustva njihovih inženjera, arhitekata, voditelja projekata te ostalih uključenih u proces.
Kad su u pitanju tehnološke tvrtke, skaliranje je jedan od ključnih faktora rasta, ali i jedan od najvećih izazova u razvoju tvrtke. Skaliranje da li procesa naplate, praćenja odnosa s kupcima te samog softverskog ili hardverskog razvoja omogućuje tech tvrtkama da brže naplate usluge, bolje barataju sve većom količinom korisničkih podataka odnosno da se podržava kontinuiran razvoj.
U konačnici, svaka tvrtka želi da njezino rješenje jednako uspješno koriste svi klijenti bez obzira koliko ih je i od kuda pristupaju proizvodu ili usluzi. Ipak, mnoge tvrtke prekasno ili prerano uđu u proces transformacije odnosno skaliranja – propuštajući ili ignorirajući signale koje im sam sustav i korisnici šalju – da je vrijeme za nadogradnju, a možda i za potpuno nove temelje.
Hrvatski Lemax, travel tech tvrtka čije SaaS rješenje koriste putničke agencije i touroperatori širom svijeta, danas se nalazi u procesu tehnološke transformacije, ali i isto tako i transformacije samog proizvoda kako bi nastavili neometano internacionalno širenje. Razgovarala sam s Lemaxovim softverskim arhitektima, Goranom Horakom i Enrikom Ribom te voditeljem razvoja Ivanom Lalićem o tome kako su oni otkrivali te signale, gdje i kako su se oni manifestirali i kako su im pristupali u široj strategiji tehnološke transformacije.

Što skalabilnost zbilja donosi?
U Lemaxovom slučaju, skalabilnost je potrebna kako bi se omogućio rast broja i veličine klijenata, ali i da se podrži rast i organizacija odjela i timova unutar tvrtke, objašnjava Goran:
Konkretno, takav sustav moći će efikasno iskoristiti resurse, skalirati pojedine dijelove sustava, prema trenutnim potrebama i njihovoj trenutnoj opterećenosti. Skaliranje sustava omogućit će njegovu geografsku rasprostranjenost, koja je preduvjet za globalnu prisutnost i postizanje statusa tržišnog lidera.
Također, uspješno skaliranje na veći broj klijenata mora biti praćeno kvalitetnim sustavom upravljanja konfiguracijom. Takvim sustavom će se u svakom trenutku moći pratiti koje funkcionalnosti sustava su dostupne pojedinom klijentu, s kojim postavkama, tko je te postavke konfigurirao, kada i zbog čega.
Prvi signal su potrebe klijenata
Prirodno je da izazovi rastu postepeno sa sve većim brojem klijenata pa u skladu s tim i proizvod se mora postepeno prilagođavati, komentira Enriko. Slaže se s njim i Goran koji ističe da se potreba za transformacijom najčešće kristalizira kada ključni dijelovi sustava sve teže zadovoljavaju klijentske potrebe, prvenstveno one nefunkcionalne.
To je bio slučaj i kod nas u Lemaxu. Ključne komponente, zadužene za skoring proizvoda na temelju njihove dostupnosti i dinamički izračunate prodajne cijene, s kompleksnom poslovnom logikom i složenim međuovisnostima su ujedno i one koje se najintenzivnije koriste. Takve komponente je bilo potrebno prve skalirati.
Te komponente se izravno koriste u procesu pretrage, rezervacije i kupovine, te njihova dostupnost i performanse izravno utječu na vrijednost koju klijent dobiva od našeg sustava.

Uostalom, kritične komponente sustava su one na kojima se najprije prepozna potreba za skaliranjem i potreba za transformacijom, dodaje Goran, dok pomoćne mogu stvoriti više problema čak i kad se njima ne bavimo:
Pomoćne komponente koje ne obavljaju kritične operacije se najčešće zapostavljaju, i često deprioritiziraju. To je u većini slučajeva potpuno opravdano, jer takve komponente ne donose izravnu vrijednost klijentu. Problem nastaje kada zbog dizajna takvih komponenti one koče i usporavaju proces skaliranja i transformacije.
Dolazak prvog velikog klijenta
Nekoliko izuzetno velikih klijenata koji su se nedavno priključili Lemaxovoj obitelji sa sobom je donijelo i jednu sasvim novu dimenziju, dodaje Enriko pa su morali rasti na svim segmentima: organizacijskim, proceduralnim, tehnološkim…
Dolazak prvog velikog klijenta je uvijek vrlo jasan signal, slaže se i Goran:
Dolaskom takvog klijenta dolaze i sasvim novi zahtjevi i sasvim nova očekivanja. Svi se čine opravdanima i razumnima, ali kad shvatiš da klijent ima oformljen odjel za nešto za što ti nemaš niti definiranu rolu, to je jasan znak da imaš ispred sebe veliku stepenicu na koju moraš zakoračiti.
Jedan od takvih signala u Lemaxu je adresiran snažnim jačanjem tima zaduženog za infrastrukturu pa im je u ovom trenutku velik fokus na zapošljavanju Infrastructure Team Lead, System engineer i DevOps pozicija. Osim toga, krajem listopada otvaraju i ured u Osijeku.
Dostupnost sustava kao glavna karika
Odluku o skaliranju najviše su potakle potrebne performanse sustava pri njegovom intenzivnom korištenju, napominje Goran. Jednostavne monolitne sustave često je potrebno privremeno gasiti prilikom održavanja sustava. Prelazak na novu verziju sustava, instalacija sigurnosnih zakrpa, proširivanje ili zamjena hardvera – sve su to akcije zbog kojih sustav može postati nedostupan, ističe:
U početku, takva praksa ne predstavlja veliki problem, pogotovo za poslovne sustave, jer se ove operacije mogu odraditi noću ili vikendom, van klijentovog radnog vremena, kada je korištenje sustava minimalno.
Međutim, u jednom trenutku i s kritičnim brojem velikih klijenata downtime vikendom i noću više nisu opcija. Goran objašnjava kako s vremenom takav način rada postaje neodrživ i predstavlja jednu od osnovnih prepreka rastu:
Broj klijenata raste, a s tim brojem raste i količina noćnog rada. Također, raste veličina klijenata i njihova očekivanja. Veći klijenti su prisutni u cijelom svijetu, u svim vremenskim zonama, pa ne postoji noćni prozor u kojem bi nedostupnost sustava bila prihvatljiva.

Kako su pristupili problemu? Visoku dostupnost sustava mogu postići jedino skaliranjem, objašnjava Goran, gdje svaka komponenta sustava ima više aktivnih instanci i potreban broj redundantnih replika. Time mogu održavati sustav instancu po instancu, bilo kada, uz neometani rad sustava. Sretna okolnost je što većina Lemax korisnika radi na izoliranim okruženjima što im je omogućilo individualni pristup, dodaje Enriko:
No kako je naša dugoročna strategija usmjerena prema skalabilnom i visoko dostupnom SaaS proizvodu – individualizirani sustavi jednostavno ne igraju. Dakle, istovremeno nam je ova kratkoročno sretna okolnost i značajan problem kojeg rješavamo u procesu tehnološke transformacije.
Bolje se odmah prihvatiti težeg posla
Premda, ako pomnije promotrimo Lemaxovu situaciju, tehnološka transformacija ne stavlja skaliranje sustava u prvi plan, već će skalabilnost sustava biti jedan od rezultata transformacije, objašnjava Enriko.
Više nije dovoljno imati skalabilan sustav, moramo razmišljati o visokoj dostupnosti sustava (High Availability), pričuvnim data centrima (Disaster recovery), geo distribuciji, sigurnosti…
Transformacija u jeku globalne krize u biti je odličan primjer za mnoge tvrtke koje će se s izazovima takvog razvoja baviti u nekim mirnim vremena i učiti iz Lemaxovog primjera. Ivan, voditelj razvoja u Lemaxu, navodi i kako su sami modificirali način kako pristupaju transformaciji dok nisu našli najbolju strategiju:
Krenuli smo u izgradnju pojedinih servisa i manjih dijelova sustava koji će u svakom slučaju biti dio transformacije – kao što se klasično radi u ovakvim transformacijama, a to su logging servisi, identity, caching mehanizmi, itd.
Ivan dodaje kako ovo nije i ne žele da bude projekt koji se jednom zacrta i ostavi se timovima da rade na tome idućih tri godine – i tek onda pita za rezultate.
Želimo rezultate i vrijednost vidjeti što prije i sve što radimo validirati s našim klijentima, a to je i sama poanta agilne metodologije.
Zbog toga i zbog novih zahtjeva i povećane potrebe naših sadašnjih i budućih klijenata za boljom skalabilnošću sustava napravili smo zaokret. Regrupirali smo se i preusmjerili te “udaramo” direktno u najkompliciranije i najvažnije dijelove sustava s kojima ćemo prije dobiti vrijednost koja se može vidjeti. Sve što smo napravili prije toga i dalje koristimo i doslovno se može reći da smo presložili naš backlog.
Skupo je biti bolji i veći, zato pametno planirajte
U širem smislu, skaliranje označava zrelost poslovnog modela same tvrtke ili startupa. Dok se u početku spomenutim procesima može i preporučuje upravljati manualno – tek kada platforma ima toliko klijenata, čije iskustvo nam potvrđuje da smo našli dobar market fit – tvrtka je spremna za skaliranje i automatizaciju.
Potvrđuje mi to i Enriko, planirati i razvijati proizvod za razmjere koje će nekada u budućnosti neka tech platforma morati podržati bilo bi vrlo teško i preskupo na početku razvojnog ciklusa. Ne radi se tu samo o arhitekturi sustava, dodaje, skalabilni sustavi dižu troškove na svim poljima: operations, devops, support, monitoring, unutrašnja organizacija, hardware, infrastruktura, licence…
Tvrtke se mogu donekle pripremiti za skalabilnost, ali sam razvoj se obično odgađa. Većina uspješnih proizvoda je počela u malim razmjerima i tek kada su postali uspješni doživjeli su jednu ili više transformacija.
Osim stvari koje Enriko navodi, Goran dodaje kako je najbolja stvar koju tvrtka može napraviti kako bi se pripremila za skaliranje – njegovati kulturu brzih i bezbolnih promjena.
U takvoj kulturi vrijednost svake promjene se može u kratkom vremenu preispitati. Svaka pozitivna promjena se brzo nagrađuje, a svaka pogreška se brzo otkriva, brzo otklanja, pa joj time ni cijena nije velika.
Signalne lampice prve trebaju zamijetiti vaši ljudi
Nažalost, nekada je unatoč svim naporima ono ispred nosa teško uočiti, kako osigurati da se signali interno prepoznaju na vrijeme? Kako komentira Enriko, razvoj proizvoda je nešto što neprekidno traje, za SaaS ne postoji trenutak kada možete reći „ovo je finalna verzija“, upravo zato je jak tim ono o čemu ponajviše ovisi uspješnost transformacijskih procesa.

Potrebno je stalno preispitivati segmente sustava i istraživati opcije za poboljšanja, za što Lemax ima jedan veliki adut u rukavu – ljudske potencijale. To im je najveće osiguranje od velikih kikseva, iskreno će Enriko:
Izuzetna stručnost i iskustvo u poslovnom i tehničkom dijelu nam osigurava duboki uvid u cijeli ekosustav. Od neprocjenjive je vrijednosti znati koje su boljke sustava, a koje prednosti, što muči naše klijente te što im osigurava prednost nad konkurencijom.
Kao logičan nastavak toga su jasna i iskrena komunikacija, za koje Goran smatra da su najjače oružje protiv ovih vrsta problema:
Kada cijela tvrtka ima jasan cilj, i kad svi odjeli i timovi sinergijom nastoje postići taj cilj te komuniciraju svoje uspjehe, probleme i neuspjehe ostatku timova, do problema neprepoznavanja signala neće niti doći.
Za kraj, jedna tehnička i organizacijska lekcija o skaliranju
Iako je sam prošao nekoliko transformacija te radio na mnogim skalabilnim sustavima, Enriko ističe da uvijek ima prostora da se nešto novo nauči u svakom novom procesu.
Na primjer, kada sam se prije pet, šest godina upoznavao s kontejnerizacijom i Dockerom nisam shvaćao nužnost izdvajanja konfiguracijskih podataka u CI/CD sustav. Dotadašnja je praksa bila spojiti se na udaljeno računalo gdje je instalirana aplikacija, editorom izmijeniti nekakav xml config fajl i ponovo pokrenuti aplikaciju. Ovo je, naravno, gotovo nemoguće unutar Docker kontejnera: ako biste i uspjeli izmijeniti tekuću konfiguraciju, prvi sljedeći source code commit će pokrenuti CI/CD pipeline.
Rezultat CI/CD-a je zamjena trenutnog kontejnera s novim u kojem se opet nalazi stara konfiguracija. I dan danas me sudionici u ovome pothvatu znaju podsjetiti na sate i sate provedene u utvrđivanju zbog čega se nova konfiguracija sustava iznenada vrati na prethodno stanje!
Goranova lekcija je nešto manje tehnička, ali bitna za razumijevanje onog što smo prethodno rekli – ako svi timovi nisu upoznati s većinom komponenti sustava, popravak može biti puno teži i problematičniji nego je bio problem u startu:
Najveća lekcija koju sam naučio iz dosadašnjih projekata skaliranja sustava je ta da je opsežan prijenos znanja na sve razine tehničke podrške kritičan faktor uspjeha takvih projekata. Skalirani i distribuirani sustavi su kompleksni, s puno povezanih komponenti i s puno mjesta na kojima nešto može poći po krivu.
Uzrok problema je često teško identificirati, pogotovo timu koji nije bio uključen u sve faze dizajna i razvoja. Nedovoljno educiranje tima tehničke podrške može rezultirati s dva nepovoljna ishoda: ili će se problemi zbog nerazumijevanja trpati pod tepih, ili će se uzrok svakog problema tražiti u skaliranju.
Transformacija proizvoda koja prati transformaciju čitave industrije
U takozvanom travel tech sektoru događaju se zaista velike promjene i platforme svih vrsta razvijaju nova rješenja. Google je, primjerice, u kolovozu predstavio novi oglašivački proizvod za tour operatere, dok aerodromi zbog smanjenja budžeta pokušavaju što brže uvesti beskontaktne tehnologije. Lemaxova transformacija, koju planiraju dovršiti do 2023., zapravo se sad poklapa s najvećom tehnološkom transformacijom u povijesti njihove industrije.
Proizvod poput Lemaxovog u tom velikom vrtlogu promjena za putničke agencije i touroperatore donosi ključan alat za ulazak u novo desetljeće. Posebno u vrijeme kada ih je koronakriza primorala da razmisle o svojim procesima. Kako zaključuje Ivan, rezultat ove transformacije za Lemax neće biti samo prilika da nauče nešto novo u industriji koja brzo uči, nego i da stvore nešto – komad softvera – koji ima svjetski utjecaj i koji pozitivno može poremetiti cjelokupnu industriju koju je, na žalost, COVID-19 već negativno poremetio.
Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.
Pravila ponašanja
Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:
Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.
Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.