Autorid: Eero Otsus, Kimberly Remmelg • 14. juuni 2021

Mida annab mikroteenuste kasutuselevõtt ja mis võiks juhtuda, kui IT süsteeme ehitatakse ilma süsteemi arhitekti olemasoluta?

Arhitekt vormib ettevõtte eesmärgid ja plaanid tarkvaraks, ent tihtipeale on tema potentsiaal alahinnatud, väidab Postimehes, Starshipis ja Pipedrive'is arendajana töötanud Eero Otsus.

Autor: abhijit-arunava

Inervjuu I osas rääkisime Eeroga, mis teda IT juures paelub ning miks ja kas üldse inimesed peaksid IT-d õppima. Selles osas räägime tema IT-spetsiifilistest koolitustest. Head lugemist!

Sinu üks koolitus on “Mikroteenuste koolitus”. Lähtudes enda kogemusest, millised on mikroteenuste arhitektuuri eelised monoliitse arhitektuuri ees?

Mikroteenused on vaid üks lähenemine, kuidas infosüsteemi arendada. Kõigel on oma eelised ja puudused, ning ka monoliitne lahendus on mõnel juhul parim valik. Kuid minu kogemuses on mikroteenused olnud õige lähenemine kahel juhusel - suure monoliitse süsteemi etapilisel refaktoorimisel ning teenuste puhul, mis hõlmavad endas väga lõdvalt seotud informatsiooni. Viimane on ilmselt enim levinud use case mikroteenuste jaoks, sest tegelikult paljud teenused täna selliselt toimivad – sidudes mitmete valdkondade infot.

Mõelgem sellest kui ühe firma erinevatest osakondadest - müügiosakonnale ilmselt piisab teadmisest, kas klient on hetkel midagi võlgu, enne kui uue tehinguga edasi liigub. Täpsem info laekumistest, arvetest, bilansist on finantsosakonna, võib-olla isegi eraldiseisva raamatupidamisfirma, hallata. Ja nüüd kujutage ette vastupidist, kui iga müügiesindaja peab kandma sisse oma laekumised, konteerima dokumendid, esitama bilanssi ja aastaaruannet.

Mis on 5 olulist võitu, mida annab mikroteenuste kasutuselevõtt?

Mul on väga raske konkreetseid punkte välja tuua, sest me räägime ikkagi võrdlusest millegi muuga. Ja mikroteenused ei pruugi olla alati parim valik. See on vaid üks variant ning olulised võidud teiste variantide ees sõltuvad eesmärkidest. Kuid minu arvates on mikroteenustel mõned äriliselt väga head aspektid, mida arhitektuuri valimisel kaaluda.

Hästi üles ehitatud mikroteenused teevad võimalikuks süsteemi osade ümberehitamise, kaasajastamise ja allhankimise eraldiseisvalt. Ning koormuste kasvades on võimalik skaleerida vaid konkreetseid valupunkte säästes sellega ressursse. Ning mulle tundub, et inimlikul tasandil on meil eraldiseisvaid teenuseid lihtsam hoomata – mida on lihtsam korraga ehitada, tervet linna või üht maja?

Kuidas minna mikroteenustele üle sujuvalt, nii et muu ei saaks samal ajal märgatavaid tagasilööke (nt töötempo, produktiivsus ja tiimide töö/töökeskkond ei kannataks)?

Esimese asjana tuleks mõista, et see ei ole mingi protsess, mida viia läbi nii öelda tavapärase töö kõrvalt. See ongi tavapärane töö ise! Ehk siis sellele tuleb läheneda nagu igale projektile – eraldada ressursse ning planeerida tegevusi.

Mingit võlukeppi või imevitsa ei maksa otsida, tuleb käised üles käärida ja tööle asuda. Ma tihti esitan küsimuse “Kuidas süüa elevanti?” … “Tüki haaval”. Ja nii see on. See võib tunduda ületamatu protsess ning võib võtta isegi aastaid, kuid kui kurss on selge, siis ei ole miskit võimatut.

Mis võiks juhtuda, kui IT süsteeme ehitatakse ilma süsteemi arhitekti olemasoluta?

Mis juhtub, kui maja ehitada ilma joonisteta? Sõltub muidugi ehitajast ja tellijast ja hea teineteisemõistmise korral võib isegi asjalik maja püsti saada ning hoole ja armastusega ka pikalt püsida. Tarkvaraarenduses rohkelt projekte täna nõnda ka lahendatakse. Kuid tehnoloogia areneb tormilise kiirusega ning lisaks sellele, et loodud lahendused vajavad pidevat hooldust, vajavad nad tihtipeale ka märkimisväärseid edasiarendusi. Ja siis see maja enamasti ka kokku kukub - kaasaegseid nõudmisi esitatakse vundamendile, mis seda ei talu.

Ning siin tulebki mängu arhitekt, kelle rolliks on näha suuremat pilti ja konstrueerida suuremat tervikut, samas mõista pisemaid osi, nende puudusi ja võimalusi. Tarkvara puhul on imeline võimalus ehitada vundament ringi samal ajal, kui maja seal peal püsti seisab ja sees elatakse. Püüdke seda päris majaga teha. Kuid tarvis on kedagi, kes ütleb, millal ja kuidas seda teha tuleb.

Miks peaks juht teadma, mida üks IT arhitekt teeb ja kuidas töötab, miks peaks teda meeskonda kaasama?

Arhitekti potentsiaal tarkvara arenduses on minu arvates tihti alahinnatud ja seetõttu ma eelistan terminit “infotehnoloogia arhitekt” tavapärasele “süsteemi arhitektile”. Arhitekt on ikkagi visionäär, kes kujundab kuhu ja kuidas informatsioon liigub, kus ja kuidas elab ja mis protsesside kaudu see tekib, muutub ja hävib.

Omal moel on arhitekt disainer, kes ilmtingimata ei pea oskama ühtki programmeerimiskeelt, vaid peab kujundama äriliselt kasulikke protsesse. Arhitekt vormib ettevõtte eesmärgid ja plaanid tarkvaraks. Kas Teie ei tahaks selliseid inimesi oma meeskonda?

Sul on koolitus “Universaalne JavaScript”, kus räägid lisaks ka keele ajalugu. Miks on oluline arendajal teada programmeerimiskeele tausta? Näiteks arendaja töötab Vue.js-ga, miks peaks/võiks ta teada kust ja kuidas Vue.js välja arenenud on?

Vue.js, React, Angular - need on raamistikud, mis on loodud tarkvaraarenduse igapäevatöö kiirendamiseks ja on suurepärane sisenemispunkt algajatele. Kuid sisimas on tegu JavaScriptiga ning minu eesmärk on õpetada raamistikest kaugemale nägema ja olla seeläbi paindlikum.

Algajatele annab see võimaluse kergemini raamistikke vahetada, kogenud arendajad saavad paremini mõista raamistike kitsaskohti ning leida võimalusi imede korda saatmiseks. Taaskord toon paralleeli auto juhtimisega - me ei kuule Ott Tänakut rääkimas, kui kõvasti ta pedaali vajutab või mitu kraadi rooli keerab. Ta räägib vedrustusest, rehvidest, autost, auto hingeelust. Ning selles peitubki paljuski tema edu võti. JavaScript on Vue.js’i, Reacti ja Angulari mootor ning hea autojuht võiks mootori hingeelu tunda.

Oled alustamas uut ametit - koolitaja. Kuidas tunned end koolitajana?

Pabistan tohutult, kui aus olla. Samas olen ka väga põnevil - ma olen need teemad enda jaoks läbi mõelnud, kuid olen enam kui kindel, et loengu ajal küsitakse midagi, mis lähtub absoluutselt teistsugusest perspektiivist ja muudab ka minu nägemust. See on tohutult põnev! Ja see kaalub mu pabina kordades üle! Seega ma ei jõua ära oodata!

Eerol on kuus koolitust, nii IT-maailmasse sisenejale kui juba töötavale spetsialistile.

Algajale mõeldud koolitused on Tarkvaraarenduse 101 – Sissejuhatav koolitus, Nutiteadlikkus ja netihügieen, Universaalne JavaScript,

Juba IT-s töötavatele mõeldud koolitused on Graafikafailide koolitus, Mikroteenuste koolitus ja Infotehnoloogia arhitektuur.

Tutvu koolitustega SIIN