Zakaj je prehod na arhitekturo mikrostoritev, API-je in DevOps tako pomemben in kaj prinaša

Zakaj je prehod na arhitekturo mikrostoritev, API-je in DevOps tako pomemben in kaj prinaša
13. 10. 2017 Adam Sabljakovic

DR. MATJAŽ B. JURIČ

Zakaj je prehod na arhitekturo mikrostoritev, API-je in DevOps tako pomemben in kaj prinaša

Ko se podjetja bolj in bolj zavedajo, da bodo morala razviti aplikacije ter rešitve za podporo digitalnemu poslovanju, se vedno bolj jasno kaže tudi, da obstoječe arhitekture in pristopi niso kos temu izzivu.

Razvoj digitalnih rešitev z uporabo večslojne arhitekture, klasičnih razvojnih pristopov, aplikacijskih strežnikov in pakiranja rešitev v monolite ima dve ključni pomanjkljivosti: na ta način ni možno ustrezno uporabiti najnovejših tehnologij in predvsem tak pristop ne zagotavlja zadostne hitrosti razvojnih ciklov. Posledica je predolg time-to-market. Zato je vpeljava arhitekture mikrostoritev in s tem povezanih API-jev ter DevOps nujna. Pa poskusimo pojasniti, zakaj je tako.

Arhitektura mikrostoritev

Arhitektura mikrostoritev prinaša nov način, kako koncipiramo, razvijamo in pakiramo aplikacije. Aplikacija ni več ena velika celota, ampak je sestavljena iz množice mikrostoritev. Pri tem velja, da ena mikrostoritev ni »last« le ene aplikacije, ampak si aplikacije mikrostoritve delijo. To pomeni, da je eno mikrostoritev lahko uporablja več aplikacij.

Z drugimi besedami to pomeni, da pri razvoju neke nove aplikacije, če delamo pravilno, ne razvijamo vsega od začetka, ampak najprej izberemo obstoječe mikrostoritve in dodamo manjkajoče funkcionalnosti tako, da razvijemo nove mikrostoritve. S tem v bistvu sestavljamo aplikacije na način lego kock. Mikrostoritve nas silijo v to, da razvijamo samostojne, ponovno uporabljive enote.

Še bi lahko naštevali prednosti arhitekture mikrostoritev, kot so robustnost, odpornost proti napakam, skalabilnost, elastičnost in tako dalje. Vendar se bomo raje osredotočili na prednosti, ki jih arhitektura mikrostoritev prinaša z vidika agilnosti razvoja.

Če smo mikrostoritve vpeljali pravilno, potem moramo okrog mikrostoritev tudi ustrezno organizirati razvojne procese in ekipe. Enostaven test je, ali smo sposobni vsako mikrostoritev razvijati, testirati in nameščati popolnoma neodvisno od drugih mikrostoritev. Z drugimi besedami to pomeni, ali lahko, če v neki aplikaciji želimo spremeniti določeno funkcionalnost, zgolj popravimo eno ali več mikrostoritev, vsako posebej namestimo, ne da bi čakali na namestitev cele aplikacije.

Tak pristop pomembno poveča agilnost razvojnih ekip, saj zmanjšuje odvisnosti, eliminira čakanja drug na drugega in zmanjšuje odvisnosti med deli kode.

Klasične in mikrostoritve

Vidimo torej, da vpeljava mikrostoritev ni zgolj programerski oz. tehnični problem, ampak mikrostoritve pomembno vplivajo tudi na organizacijo projektov, projektno vodenje, delovanje in sestavo ekip ter ne nazadnje na celo strukturo oddelkov za razvoj.

API-ji

Drugi izjemno pomemben element so API-ji. API-ji so povezovalni element mikrostoritev z zunanjim svetom, torej s spletnimi in mobilnimi aplikacijami, mikrostoritvami med seboj, zalednimi sistemi, partnerskimi organizacijami in tako naprej. Zaradi tega je treba pridobiti ustrezna znanja in kompetence za načrtovanje ter razvoj in dokumentiranje API-jev. Z razvojem mikrostoritev so API-ji pomembno prerasli zgolj okvire storitev REST. Danes se pri načrtovanju API-jev srečujemo z asinhronimi interakcijskimi vzorci, reaktivnimi API-ji, platformami za pretok dogodkov (event streaming) in novimi protokoli, kot je na primer gRPC.

Poleg tega je za uspešno vpeljavo in upravljanje API-jev treba vzpostaviti tudi ustrezna orodja, med katera se uvrščajo:

  • orodja za upravljanje API-jev (API management),
  • prehodi (API gateway),
  • nadzor in administracija (API governanace and administration),
  • tržnice (API maketplace),
  • razvijalski portali in peskovniki (developer portal, API sandbox).

DevOps – razvojne operacije

Za pohitritev in avtomatizacijo postopkov razvoja, builda, nameščanja, testiranja ter izvajanja obstaja še tretji ključni steber – DevOps, ki je prav tako zelo pomemben. Obsega več faz:

  • sprotni razvoj (Continous Developement),
  • sprotno integracijo (Continous Integration),
  • sprotno dostavo (Continous Delivery),
  • sprotno nameščanje (Continous Deployment),
  • sprotno izvajanje (Continous Operations).

Pri tem pa je treba razumeti posebej to, da DevOps niso samo orodja, ampak so predvsem procesi, načini dela, najboljše prakse in kultura.

Sklep

Za podjetja in organizacije, ki se zavedajo, da morajo biti konkurenčne v digitalnem gospodarstvu, je zelo pomembno, da ne spregledajo pomena prehoda na arhitekturo mikrostoritev, na uporabo API-jev in na udejanjanje DevOps. Raziskave danes namreč jasno kažejo, da je največji zaviralec digitalizacije izvedbena sposobnost podjetij, da razvijejo in lansirajo digitalne rešitve.

Torej, tudi podjetja, ki imajo jasno razdelano digitalno strategijo in izdelane projekte, bodo neuspešna, če se IT (oz. zunanji izvajalec) ne bo ustrezno pripravil ter posodobil arhitekture razvoja digitalnih rešitev. srečujemo z asinhronimi interakcijskimi vzorci, reaktivnimi APIji, platformami za pretok dogodkov (event streaming) in novimi protokoli, kot je na primer gRPC.

V pomoč pri taki posodobitvi je lahko digitalna platforma, ki združuje v tem članku omenjene mikrostoritve, APIje, DevOps in običajno dodaja še integracijsko platformo, ogrodje za razvoj spletnih in mobilnih aplikacij ter orodja za vključevanje uporabnikov.

Če uživate v člankih, jih delite s prijatelji. Lepe stvari je lepo deliti.