
S monolita na mikroservise iliti kako što bezbolnije otplatiti tehnički dug stvaran godinama
Kako je izgledao prelazak s monolita na mikroservisnu arhitekturu u RBA Hrvatska, što je u tom procesu bilo najteže, kako su "davili" jedan po jedan dio starog koda te zašto vole open-source ispričao nam je Bruno Kovačević, direktor razvoja te banke.
To je kao da mijenjate motor na avionu dok leti i pun je putnika. Ili kao da skačete s jednog jurećeg vlaka na drugi. Tako se obično u tehnološkom svijetu opisuje zahtjevni posao prelaska s monolitne na mikroservisnu arhitekturu.
Ili, u slučaju Raiffeisenbank Hrvatska – kako raskomadati slona, kako je na Infobip Shift konferenciji projekt tehnološke modernizacije opisao Bruno Kovačević, direktor razvoja te banke. Monoliti jesu ogromni i nezgrapni poput slonova, a da slika bude potpunija treba još dodati i da slon to komadanje ni u kojem trenutku ne smije osjetiti te da je krajnji rezultat pretvaranje tih komada u manjeg, boljeg, fleksibilnijeg i modernijeg slona. Nije čudo što na pitanje što je tijekom projekta bilo najizazovnije bez razmišljanja odgovara:
Postići da sve cijelo vrijeme radi i da poslovanje banke i korisnici ne osjete da se išta događa!
Suzdržite se od potrebe da promijenite puno toga odjednom!
I dok su legacy kod i monolit riječi od kojih bi neki u svijetu razvoja softvera najradije pobjegli, pothvati poput prelaska s monolita na mikroservise često ispadnu među najizazovnijima na kojima se u tehnološkoj industriji može raditi.
Na takvim velikim i transformacijskim projektima uvijek svi uključeni puno nauče, od biznis logike, suradnje biznisa i techa, do kopanja po slojevima i slojevima koda, otkrivanja međuovisnosti i najboljeg načina kako što bezbolnije otplatiti tehnički dug stvaran godinama.
Ne može se samo staru platformu ugasiti i prijeći na novu. Odnosno, legacy koda se ne može riješiti preko noći, potrebna je promišljena strategija. Posebno kad se sve događa u vrlo reguliranoj industriji u kojoj nema prostora za greške. Suzdržite se od potrebe za big bangom, odnosno da promijenite puno toga odjednom!

U RBA su se odlučili za provjerenu strategiju strangler patterna postepene modernizacije – jedna po jedna aplikacija ili funkcionalnost se razvijaju na novoj platformi pa spajaju s ostatkom monolita. Kad moderna verzija profunkcionira, stari kod odgovoran za tu aplikaciju se “udavi” i tako sve dok se monolit potpuno ne raskomada.
“Davljenje” stare da bi došla nova tehnologija je izazovno, ali ima nekolicinu benefita
Ni taj pristup nije bez svojih izazova i Kovačević priznaje da je teško procijeniti koliko će proces modernizacije ukupno trajati, međutim siguran je da je to pravi put:
Prva verzija platforme ugledala je svjetlo dana nakon samo tri mjeseca, istina s dosta tehničkog duga, ali kao odličan temelj za pripremu prvog poslovnog slučaja kako bi se prikazali svi benefiti. Na istom okruženju napravljena je mobilna aplikacija u roku od godinu dana. Tijekom tog razvoja izgrađeni su servisi koji su iskoristivi za ostale digitalne kanale, a i druge produkte banke.
Iako i on kaže da mikroservisi nisu čarobni štapić i ne rješavaju sve tehnološke izazove jedne banke, dobrobiti prelaska itekako osjećaju:
U enterprise okruženjima obično je bolna točka brzina odgovora na promjene.
Segmentiranjem na manje cjeline prema domenama smo višestruko ubrzali isporuke. Lagano skaliranje servisa, visoka dostupnost, ponovna iskoristivost, kontinuirana integracija, opisivanje infrastrukture kodom, automatizirana testiranja samo su neke od prednosti koje su nam donijele nove tehnologije i metodologije u razvoju. Brži smo i agilniji, brže razvijamo i testiramo nove stvari.
I, ne najmanje važno, lakše nam je pronaći nove ljude jer bilo je izazovno nalaziti one koji su htjeli raditi s legacy kodom.
Udaranje temelja za sve što dolazi poslije
Usporedno s tehnološkom transformacijom, u RBA su se mijenjali i organizacijski te prelazili na nove, agilne načine rada. U slučaju prelaska s monolita na mikroservise spojili su timove koji rade na legacy kodu s onima koji rade na mikroservisima tako da rade svi zajedno.
Promjena kulture također je jedan od ključnih sastojaka bitnih za uspjeh digitalne transformacije velikih sustava kao što je jedna banka. Kovačević se slaže:
Digitalna transformacija ne može sama sebi biti cilj. Prelazak na najnovije tehnologije ne znači ništa ako, prije svega, ne donosi poslovnu vrijednosti i ako ne znači i promjenu kulture.
Modernizacija obično i kreće od nekog poslovnog slučaja, a za njih je izgradnja platforme za mikroservise bio samo početak i “udaranje temelja” za sve što dolazi poslije. S obzirom na trenutni smjer digitalizacije banaka, fokus je na digitalnim proizvodima i kanalima.
Banka, pa open-source!
Tijekom transformacije Raiffeisen banka odlučila se, vrlo neobično za jednu banku, svoj tech stack zasnivati na open-source tehnologijama.
Tehnološki stack mikroservisa RBA Hrvatska temelji se na OpenShift platformi za upravljanje Docker kontejnerima, ELK stacku, Javi 11 na Spring frameworku, Kafki, PostgreSQLu, Gitlabu i Jenkinsu.
Svi se iznenade kad saznaju da smo banka koja voli open-source. Velika prednost je što nismo ovisni o jednom vendoru, nego smo fleksibilni izabrati onu tehnologiju koja nam se čini kao pravi alat za određeni set problema.
Umjesto ulaganja u skupa komercijalna rješenja odlučili smo se na ulaganje u ljude, dizanje razine znanja i korištenje naprednih obrazaca arhitekture. Nema smisla imati najskuplji tech stack, ako nemaš ljude koji ne znaju što bi s njime!
Ako već imate iskustva sa spomenutim tech stackom, zanima vas kako je to raditi na velikim bankarskim sustavima – trk na njihove stranice karijera, imaju više od 10 otvorenih pozicija!
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.