Manau, visi esate bankų klientai. Greičiausiai pastebėjote, kad šiais laikais atsidarę internetinės ar mobiliosios bankininkystės aplikaciją, beveik visuose bankuose matote tokį pat funkcionalumą, nes didžiausias dėmesys yra skiriamas finansiniam sektoriui, kuriame jie veikia. Ar taip veikdamas bankas gali išsiskirti iš savo konkurentų? Negali, nes iš esmės jis turi tokį pat funkcionalumą. Taigi, jei bankas nori gauti naują klientą, jis turi eiti kitu keliu, į kitą rinkos dalį.

Pradėsiu nuo asmeninės istorijos. Matyt, esu paskutinis žmogus visoje žemėje, neturintis vairuotojo pažymėjimo. Tai svarbu šiai istorijai. Kai kur nors keliauju verslo reikalais, turiu naudotis viešuoju transportu. Taigi, kartą buvau Varšuvoje vieno iš mūsų kliento biure. Kaip visada, susitikimas užtruko per ilgai. 17 val. turėjau būti traukinyje, važiuojančiame iš Varšuvos centro – Varšuva yra gana didelis miestas. Buvo milžiniškos automobilių spūstys. Iš esmės privalėjau per 30 min. pervažiuoti per pusę Varšuvos.

Ką man daryti? Taip, žinoma, panikavau ir paėmęs savo telefoną, atsidariau „Google Maps“, kuriame pamačiau – miesto centro per 30 min. nepasieksiu nei taksi, nei kita viešojo transporto priemone. Akis užkliuvo už viešųjų dviračių. Tačiau vėlgi – kaip jį išsinuomoti? Primenu, kad aš panikuoju. Galėtumėte manyti, kad turėjau prieiti prie dviračių, perskaityti instrukcijas ir išsinuomoti dviratį. Aišku, aš to nepadariau. Vietoje to, savo telefone atsidariau mobiliųjų programėlių parduotuvę ir stengiausi surasti būtent tą, kurios man reikia. Galite įsivaizduoti, kiek programėlių, susijusių su paieškos žodžiu, programa išmeta. Po 5 min. radau tą, kurios ieškojau – tuo metu ji vadinosi „Veturilo“.

Gerai, ką daryti toliau? Įsidiegiau programėlę ir dar po kelių minučių užpildęs nemažą kiekį registracijos formų pagaliau galėjau imtis kito veiksmo. Kokio? Žinoma – pasirinkti mokėjimo metodą. Reikėjo kredito kortelėje suvesti visus duomenis ir t. t. Taigi po 10 min. jau galėjau išsinuomoti dviratį.

Esu dviračių mėgėjas, todėl pasiekti stotį per 20 min. man nebuvo problema, taigi šitos istorijos pabaiga buvo laiminga. Tačiau klausimas – ar kiekvieno iš mūsų telefone turima bankininkystės programėlė negalėtų šiuo atveju padėti ir sutaupyti mums laiko, kad atskirų programėlių nereikėtų ieškoti? Gal mano bankas gali man padėti išsinuomoti dviratį?

Atsidarau banko programėlę ir matau, kad joje yra tokia funkcija. Bankas turi ir daug kitų privalumų. Jis turi mano tapatybės duomenis, tad man nebereikia suvesti savo asmens duomenų, bankas gali sumokėti už paslaugą, kuria naudosiuosi. Man tereikia užpildyti formą ir perskaityti terminus bei sąlygas. Žinome, kaip visi „skaito“, tad maždaug po sekundės pažymiu reikiamą langelį, kad su informacija susipažinau ir galiu naudotis paslauga. Manau, kad jei bus toks bankas, aš būsiu jo klientas. Aišku, aš – vienintelis žmogus be vairuotojo pažymėjimo.

Bankas turėtų siūlyti skirtingas paslaugas, bendradarbiauti su startuoliais, fintech įmonėmis. Dešimtys tokių bendrovių maloniai bendradarbiauja. Bankas galėtų, pavyzdžiui, padėti man su mano telekomunikacijų paslaugų teikėju arba tvarkyti mano reikalus, susijusius su valdžios institucijomis, arba ką nors man parduoti, užsiimti elektronine prekyba.

Atsižvelgę į tai, įdiegėme panašų dalyką, kurį vadiname elektroniniu butiku, ir čia matote pavyzdį iš Lenkijos rinkos. Deja, čia nėra dviračių nuomos funkcijos, bet įdomus dalykas – tiesiog turėdami mobilųjį telefoną savo kišenėje, galime sumokėti kelių mokestį be jokių kitų papildomų veiksmų.

Atrodo paprasta, kai sakau, kad reikia bendradarbiauti su kitais. Tačiau kaip tai padaryti technologiškai? Matote programėlę, kuri buvo rodoma prieš porą skaidrių. Tai yra standartinė internetinė bankininkystė. Mes siūlome agreguotų pasiūlymų bankininkystės sprendimą padalinti į tris pagrindinius sluoksnius: vartotojo, arba kitaip – išorinę mikrosąsają (angl. microfrontend), mikropaslaugomis (angl. microservices) vartotojams perduodančią verslo logiką, aplikacijų programavimo sąsają (angl. API) ir pagrindinę platformą. Reikalingas ir ketvirtasis – išorinių sistemų sluoksnis, nes, kaip sakiau, bendradarbiaujame su trečiąja šalimi. Greičiausiai ji irgi turės kažkokį sprendimą, kurį integruosime į savąjį.

Pavyzdžiu paimkime mūsų dviračio nuomos funkciją. Išorinės mikrosąsajos koncepcija yra paprasta, bet ją sunku įgyvendinti. Vartotojo sąsają mes kuriame iš dalių – tam tikrų blokų. Pagal šią koncepciją galime pridėti ir pašalinti microfrontend dalis nestabdydami sistemų gyvai. Norint sukurti tokią išorinę sąsają, mums reikia tam tikrų paslaugų, kurios tvarkys mūsų verslo logiką. Galiu įsivaizduoti, kad šiame pavyzdyje turėsime dviračio nuomos paslaugą, tačiau esame internetinis bankas, todėl galime naudoti jau paruoštas paslaugas, kurias galime rasti, kažkokio tipo mokėjimo paslaugas, sąskaitos paslaugas. Ir paskutinė, tačiau irgi svarbi dalis – platforma. Ji reiškia sprendimo dalį, tvarkančią bendrąjį funkcionalumą – banke tai būtų autentifikavimas, transakcijų autorizavimas. Jei norime turėti microfrontend, mums reikia tam tikros turinio paskirstymo sistemos, o kuriant mikro paslaugų sluoksnį, mums reikia paslaugų maršrutizavimo.

Paskutinis, mūsų sprendimo dalimi nesantis sluoksnis taip pat yra labai svarbus, nes kuriant bendradarbiavimo su išorine įmone/programa funkciją, reikia prisijungti prie jos sprendimo. Čia taip pat rasime visas backend domeno sistemos aplikacijų programavimo sąsajas (APIS), pavyzdžiui, pagrindinę bankininkystę, mokėjimo centrą.

Ką galima pasakyti apie technologinį rinkinį? Mano nuomone, kurdami tokį atvirą sprendimą, turime nepamiršti vieno principinio dalyko – sprendimas turi būti atviras. Ką turiu omenyje, sakydamas atviras? Turite vengti bet kokio priklausymo nuo vieno tiekėjo (angl. vendorlock), turite vengti kurti sistemą pagal savo idėjas, manau, kad kalbant apie programavimą visi dviračiai jau išrasti, todėl imkite tai, kas jau yra rinkoje: standartinę technologiją, standartinį karkasą (angl. framework), dizaino modelius, kuriuos žino visi programuotojai visame pasaulyje, nekurkite sistemos pagal savo idėjas. Prieš kelerius metus buvau pats programuotojas, todėl žinau, kodėl to nereikia daryti (šypsosi).

Kurdami išorinę mikro sąsają, pavyzdžiu galime naudoti „Google Angular“. Bet turime būti pasirengę naudoti bet kokią kitą populiarią platformą – apie tai kalbėsiu vėliau. Mikropaslaugų sluoksnyje dažniausiai naudojame „Spring boot“ ir viską talpiname naudodami „Docker“, jei galvojame apie diegimą patalpose, mums reikia „Red Hat“, „Openshift“, galime naudotis viešąja debesija. Šie trys blokai (frontend, mikropaslaugos, hostingas) yra svarbūs, nes tai yra technologijos, kurias taikys verslo paslaugų kūrėjai.

Jiems nereikia jaudintis dėl pagrindinės platformos, bet pagrindinėje platformoje jiems reikia įrankių: duomenų talpyklos (ang. caching), pranešimų, prisijungimo, stebėjimo darbams. Šiais laikais vieni iš svarbiausių dalykų yra nuolatinės integracijos, pristatymo ir diegimo procesai – tam siūlome GitLab. Ir galiausiai mums reikia duomenų talpyklų – mes naudojame „Oracle“ duomenų bazę ir „PostgreSQL“.

Kaip sakiau, jums reikalingas partneris, kuris jūsų platformos funkcionalumą galbūt kurs pats.

Taigi, partneris kuria naują funkcionalumą, tačiau jų darbuotojai turbūt nežino mūsų technologijų. Kai kuriame tokią platformą, turime būti tam pasiruošę, pavyzdžiui, frontend domene turėtume leisti naudoti „React“ arba „Vue.js“. Mikropaslaugų sluoksnyje turime standartinį „REST API“, taigi galime naudoti „Node JS“ arba „GOLang“. „Docker“ galime pakeisti į „Podman“, galime naudoti kitus įrankius, ne tuos, kurie įdiegti šioje platformoje, pvz., „Tensor Flow“, ir galime naudoti nemokamą duomenų bazę, pavyzdžiui, „MySQL“ – ji irgi iš „Oracle“, bet yra nemokama.

Apibendrinant, kalbėjau apie du aspektus – verslo aspektą ir technologiją. Verslo požiūriu svarbiausia išklausyti aplinkinius ir išspręsti jų problemas. Kaip jau sakiau pradžioje, bankas turi du pagrindinius dalykus, kurie padės mums sukurti naują funkcionalumą – tai mano tapatybė ir mano už paslaugas mokami pinigai.

Bendradarbiaukite, vietos rinkoje raskite startuolių, kurie tai noriai daro ir kurkite kartu su jais. Dar kartą – platforma turi būti atvira, kad būtų galima bendradarbiauti su kitomis komandomis. Komandomis, kurios taiko kitokias technologijas, o ne tuos įrankius, kuriuos naudojame mes. Jau minėjau, kad šiomis dienomis šios trys C raidės (angl. CI/CD/CD) yra privalomos. Būkite pasirengę naudotis viešąja debesija. Rinkitės technologiją, kurią galima diegti viešojoje debesijoje, ir stenkitės nepriklausyti nuo vienintelio debesies tiekėjo.