Netokracija

Kako izgleda posao backend programer(ke) u banci?

Radni dan ne izgleda kao u akcijskom filmu, ali nije mala stvar raditi na tehnologiji koja iz pozadine upravlja financijskim informacijama milijuna korisnika.

Tehnologija danas oblikuje financije i bankarstvo što znači da je backend važniji nego ikad, ali –  kako to izgleda u praksi? Ukratko: široka domena, neplanirani problemi, ali i genijalna rješenja. Barem prema mom iskustvu.

Dok frontend predstavlja korisničko sučelje, backend stvara i održava aplikacijsku logiku, baze podataka i rješenja sa serverske strane koja omogućuju funkcioniranje aplikacija. Učinkovita backend infrastruktura presudna je za poslovanje banke. Sustavi moraju biti brzi i pouzdani, omogućavati trenutan pristup podacima i obradu transakcija u stvarnome vremenu. Istodobno, moraju biti skalabilni, osigurati podršku za sve veći broj korisnika i transakcija. Naravno, uz sve to, moraju zadovoljavati sve sigurnosne standarde.

Izazovno, a još nismo ni „zagrebali“ ispod površine.

Sigurnost podataka

Jedan od izazova svakako je spomenuta sigurnost podataka. Upravljanje financijskim informacijama milijuna korisnika odgovoran je zadatak, a jedna greška može postati naslovna vijest. Upotreba naprednih kriptografskih tehnika, kao što su end-to-end enkripcija i sigurnosni protokoli poput TLS-a, standardi su koji osiguravaju podatke u tranzitu i mirovanju.

U RBA koristimo i Hardware Security Module (HSM), uređaj koji dodatno jača sigurnost pohranom i upravljanjem kriptografskim ključevima. Redovite sigurnosne provjere, uključujući pentesting, omogućuju proaktivno upravljanje i odgovaranje na potencijalne sigurnosne incidente.

Regulative i usklađenost

Regulative su uvijek podložne promjenama. Propisi poput GDPR-a i PSD2-a (Payment Services Directive 2), zahtijevaju kontinuirano prilagođavanje. PSD2, primjerice, zahtijeva implementaciju otvorenih API-ja koji omogućuju trećim stranama pristup transakcijskim računima i iniciranje plaćanja. U RBA smo koristili mehanizam OAuth2 kako bismo osigurali da samo ovlaštene aplikacije i korisnici mogu pristupiti podacima.

Bez obzira na složenost ili opseg regulatornih zahtjeva, njihovo poštivanje uvijek mora biti prioritet u financijskom sektoru.

Performanse i skalabilnost

Visoki standardi performansi proizlaze kako iz regulatornih zahtjeva, tako i iz rastućih očekivanja tržišta.

Upotreba keširanja može značajno poboljšati performanse aplikacija. Keširanje često korištenih podataka smanjuje broj zahtjeva prema bazi podataka, što rezultira bržim odgovorima. Obično koristimo Redis za brzo pohranjivanje i dohvaćanje podataka iz memorije, omogućujući trenutačne odgovore bez stalnog pristupa bazi podataka.

Optimizacija baza podataka uključuje tehnike poput indeksiranja i particioniranja. Indeksiranje ubrzava pretraživanje podataka stvaranjem dodatnih struktura za brži pristup. Tu nam je fokus prilagoditi indekse najčešćim upitima kako bismo ostvarili bolje performanse. Osim toga, ”teže” SQL upite prema vanjskim sustavima obično stavimo iza dodatne akcije.

Primjerice, prikaz stanja štednje se otvori odmah na pregledu kartice štednje jer klijente to najviše zanima, a za detalje smo napravili on-demand akciju. Tako smo smanjili broj upita prema vanjskom sustavu, a i ubrzali ponašanje aplikacije. Particioniranje dijeli velike tablice na manje, upravljive dijelove, poboljšavajući učinkovitost upita i smanjujući vrijeme odgovora.

Elasticsearch omogućuje brzo pretraživanje i analizu velikih količina podataka. Baziran na Lucene mehanizmu, omogućuje full-text pretraživanje, filtriranje i agregaciju podataka u stvarnom vremenu. Zahvaljujući distribuiranoj arhitekturi, Elasticsearch omogućuje skaliranje kapaciteta pretraživanja i obrade podataka.

Koristimo ga za pretrage nad transakcijama, kao i za PSD2 izvještaje, gdje se podaci učitavaju u Elasticsearch. Postoji Elastic Watcher koji prati promjene u podacima i, na temelju definiranih uvjeta, računa statistike i sprema ih u drugi indeks, koji zatim koristimo za dohvat potrebnih podataka za objavljivanje PSD2 statistika.

Skalabilnost, gledano s infrastrukturne strane, uključuje skaliranje instanci pojedinih mikroservisa. Imamo od dva do šest instanci servisa, ovisno o opterećenju, dok neki gateway mikroservisi budu i na osam instanci zbog broja korisnika.

Primjer uspješnog skaliranja i balansiranja opterećenja možemo vidjeti kroz korištenja Apache Kafke. S dvije instance mikroservisa pokrivamo šest particija, pri čemu je Kafka consumer unutar svake instance konfiguriran da ima tri konkurentna consumera. Kako se dižu nove instance, Kafka consumeri balansiraju se uz pomoć partition assignor konfiguracije, što omogućuje ravnomjerno raspoređivanje šest particija po svim instancama, a ne da prve dvije instance uzmu sve particije. Instance se podižu  do maksimalno osam. U maksimalnom opterećenju, šest instanci mikroservisa obrađuje šest particija, dok dodatne dvije instance služe za obradu REST API upita klijenata.

Kako sve ovo utječe na korisničko iskustvo?

Brzi odaziv na upite, instant transakcije i mogućnost pretraživanja informacija u stvarnom vremenu povećavaju zadovoljstvo korisnika, čime se također povećava povjerenje u sustav.

Integracija starih i novih sustava

Kao i svaka bankarska institucija, suočavamo se s izazovima integracije sustava starih tridesetak godina, koje uspješno spajamo s najnovijim cloud rješenjima koristeći razne integracijske slojeve. Na primjer, već spomenutu Kafku koristimo za skalabilnu asinkronu komunikaciju i CDC (Change Data Capture) za sinkronizaciju baza podataka core sustava i naših mikroservisa.

Migracija na AWS je u tijeku, započeli smo s manje zahtjevnim komponentama, kao što su jednostavniji servisi, da bismo postupno prešli na složenije servise i baze podataka. Ovaj pristup omogućuje nam sigurniji i kontroliraniji prijelaz, minimizirajući rizik. S programerske strane, promjene nisu previše izražene jer su većina aplikacija i poslovnih logika ostale iste. Veći se izazovi nalaze s infrastrukturne strane, gdje je prilagodba novih alata i usluga u cloudu ključna.

Bekendašica – raznolikost kao snaga tima

Ako vam izazova nije bilo dosta, dodala bih još jedan aspekt mog rada – činjenicu da sam žena na poziciji backend programera. Naš tim čine stručnjaci različitih profila, a ta raznolikost donosi brojne prednosti.

IT definitivno nije rezerviran samo za muškarce. Različiti pogledi i pristupi problemima ne samo da omogućuju napredak, već često dovode do inovativnih rješenja koja ne bismo otkrili u homogenom okruženju.

Postoji ona poznata izreka da žene i muškarci nisu s istog planeta – i znate što? To je super! Upravo te razlike čine naš tim boljim. Svatko donosi jedinstvenu perspektivu, što nam pomaže u boljem razumijevanju potreba klijenata i stvaranju sveobuhvatnijih rješenja.

Ono što posebno cijenim je što se svačije mišljenje čuje, bilo da se radi o rješavanju kompleksnog problema ili planiranju team buildinga.

Naravno, rad u tehnologiji donosi i svoje izazove. Stresnih situacija ima, ali tu sam prepoznala humor kao nužan za očuvanje zdravog razuma. Kada se suočavamo s neobjašnjivim bugom, malo sarkazma može pomoći da ostanemo pribrani. Šalim se s kolegama da neke stvari rade ”automagijom”. 😀

Što nas čeka?

Danas se suočavamo s novim izazovima poput smanjenja potrebnih resursa, optimizacije logiranja, optimizacije mrežnog prometa, migracije na cloud, AI rješenja. Izazovi su svuda oko nas, svaki dan je nova prilika za poboljšanje, a budućnost je neizvjesna. Trudimo se udovoljiti željama klijenata u razumnom roku, balansirajući održavanje sustava, ugradnju novih stvari i optimizaciju. Stalno se trudimo biti na čelu inovacija.

Svaki problem prilika je za rješenje, a svaka prepreka prilika za napredak, no samo se treba naoružati znanjem i strpljenjem. Posao backendaša u banci možda nije akcijski film, ali zasigurno nije dosadan. Iskustva i drugačiji uvidi mogu promijeniti pravila igre.

Dobrodošao je svatko tko je spreman pružiti najbolje od sebe – znanje.