"Infrastruktura kao kod" izazov je s kojim se isplati uhvatiti u koštac, pogotovo za ogromne okoline

“Infrastruktura kao kod” izazov je s kojim se isplati uhvatiti u koštac, pogotovo za ogromne okoline

Što je sustav veći, to IaC (Infrastructure-as-Code) donosi više prednosti. Kako to izgleda u praksi?

Matija Gašpar glavni je DevOps inženjer u Raiffeisenbank Hrvatska (RBA). 35-godišnji Zagrepčanin u tu je banku pristigao prije nešto manje od četiri godine, nakon što je završio Tehničko veleučilište u Zagrebu i potom radio u više tvrtki, mahom bankama.

Jedan od glavnih poslova kojim se bavio – i trenutno bavi u RBA – implementacija je infrastrukture kao računalnog koda (Infrastructure as a code, IaC). Što je veći sustav, to su automatizacija, oporavak i konzistencija istog važniji. Zbog toga IaC donosi više prednosti većem sustavu poput banaka, nego manjim radnim okolinama, objašnjava Matija.

Brojne su prednosti i unapređenja koja dobivamo zahvaljujući ovakvoj implementaciji jer IaC automatizira podizanje i upravljanje infrastrukture. Konfiguracija infrastrukture definirana je u kodu i lako se pokreće pomoću alata kao što su Terraform i Ansible.

Možda najbitnija prednost je konzistencija i mogućnost lakog obnavljanja i ponavljanja infrastrukturnih taskova. Naime, sav kod je pohranjen na nekom sustavu verzioniranja kao što je Git, odakle ga se može lako revidirati i pokretati po potrebi.

Sve ovisi o veličini okoline

Proces migracije svih RBA aplikacija i alata na novu okolinu još je u tijeku, no Matija procjenjuje kako je realan vremenski okvir za implementaciju IaC u sustavu kao što je RBA od šest mjeseci do godinu dana. To obuhvaća postavljanje koda i okoline, kao i migraciju određenog broja aplikacija, nekad se dio vremena i resursa potroši i na isprobavanje raznih rješenja koja bi mogla biti korisna.

Nakon što se pokaže da aplikacije na novoj okolini uspješno rade, počinje se s migracijom preostalih. Koliko će to trajati, ovisi o veličini okoline koju imate – koja je, naravno, veća kad je riječ o bankama.

Na migraciji je u RBA radilo pet do osam ljudi, svaki zadužen za svoju tehnologiju i migraciju uz njih povezanih komponenti na novo okruženje. Broj je varirao ovisno o potrebi posla u danom trenutku za određeni segment.

Recimo, mrežnog administratora trebamo za početne IP adrese, propuštanja, podešavanje load balancera, pa je u tim trenucima njegova angažiranost veća. Nakon što to odradi, njegov posao se smanjuje i tu je po potrebi.

U migraciju je bilo uključeno i nekoliko vanjskih suradnika. To se pokazalo korisnim jer – unatoč tome što su poznavali IaC i automatizaciju – Matija i njegov tim nisu imali direktnog iskustva sa samim procesom migracije, odnosno najboljim načinima i alatima kako ju provesti od početka do kraja. Uključivanje ljudi s odgovarajućim iskustvima i znanjem svakako je ubrzalo cijeli proces.

Izazovi po IaCu

Ipak, bila je to po mnogim aspektima izazovna implementacija. Jedan od važnijih, recimo, bila je potreba za suradnjom timova oko migracije određene aplikacije.

Osim toga, to što se okolina poput one u RBA sastoji od velikog broja aplikacija nije predstavljalo najveći problem. Veći je izazov bilo to što razne aplikacije rade na različite načine i imaju drukčije zahtjeve, prilagođene svojoj svrsi i potrebama.

Kao tim za migraciju kod pisanja predloška za naseljavanje pojedinih aplikacija morali smo paziti na potrebe i zahtjeve svake. Zbog toga je bilo izazovno napisati jedan univerzalni predložak koda koji će zadovoljiti svaku aplikaciju.

Također, trebalo je s timovima koji održavaju aplikaciju dogovoriti idealno vrijeme i proces migracije. Problem bi se pojavio i kad neka od aplikacija nije bila prethodno pisana za mikroservisnu arhitekturu.

Zbog toga nije bila u tom trenutku prikladna za migraciju. Kako bi to omogućili, Matija i njegov tim trebali su prepraviti njen kod.

Alati za integraciju i isporuku

Alate Argo, Helm, Terraform i Git odabrali su zato što općenito slove – a za sad se i u praksi pokazuju – kao najbolja rješenja na tržištu za stalnu integraciju i isporuku (continuous integration and continuous delivery/deployment, CI/CD) i IaC općenito.

ArgoCD omogućuje jednostavno i efikasno naseljavanje, skaliranje i nadogradnju aplikacija, dok se Terraform, recimo, koristi za provizioniranje svih potrebnih resursa za funkcioniranje infrastrukture na koju će se naseljavati aplikacije.

U praksi to znači da zapišemo željenu konfiguraciju naše infrastrukture u HCL-u, jeziku kojeg Terraform koristi, pohranimo ju na naš Git klijent te ju preko tog klijenta instanciramo, odnosno pokrećemo.

Taj napisani kod sadržava i kreira Kubernetes cluster, kafka cluster ili MSK u slučaju AWS-a, potrebne baze, alate za nadzor i logiranje kao što su Grafana, Prometheus, Opensearch i tako dalje.

Preko Terraforma podižemo sve potrebno za naseljivu okolinu za aplikacije, njihov nadzor i održivost.

Kao lokaciju za pohranjivanje vlastitog koda koristili su Git, kojeg se – osim za čuvanje i upravljanje kodom – koristi i za druge stvari. Recimo, može poslužiti i za cijeli CI dio, prethodi deployu aplikacija koji odrađuje ArgoCD, dodaje Matija.

ArgoCD se primarno koristi za inicijalno naseljavanje i kasniji deploy novih verzija već postojećih aplikacija. Također omogućuje, do određene mjere, praćenje logova i pregled samih aplikacija naseljenih preko njega.

Iako se okolina poput one u RBA sastoji od velikog broja aplikacija, veći izazov u implementaciji IaC-a im je bio taj što razne aplikacije rade na različite načine i imaju drukčije zahtjeve.

Lokalno i u cloudu

Zamišljeno je da svaka aplikacija prethodno ima svoj repozitorij na Gitu koda pisanog specifično za nju. On bi trebao biti strukturiran prema postavkama predefiniranih templatea za Helm.

Helm ili helm chartovi su zapravo YAML predlošci koji opisuju i definiraju neki Kubernetes resurs. Služe kako bi kod deploya preko ArgoCD-a olakšali i automatizirali samu isporuku aplikacija, pošto je već prethodno definirano koju strukturu datoteka treba imati u svom repozitoriju i koje parametre te datoteke moraju sadržavati.

Helm je – u situaciji kad se koriste Argo i Kubernetes – praktičan jer preko svojih chartova automatizira instalaciju i konfiguraciju potrebnih resursa na radnoj okolini, objašnjava Matija. Samo provizioniranje infrastrukture, ako je u cloudu, moguće je uz pomoć svestranih alata kao što je već spomenuti Terraform ili, primjerice, nativnog AWS alata kao što je Cloud Formation.

Odlučili smo se za Terraform jer preko njega možemo provizionirati potrebne resurse lokalno i u cloudu, a i jer je dosta dobro pokriven raznim modulima i dokumentacijom.

Jedan klik za deploy

Taj repozitorij kod kreiranja aplikacije biva naveden kao referentna točka u ArgoCD-u te ju ArgoCD naseli na Kubernetes cluster koji mu je prethodno postavljen kao ciljana okolina za deploy.

Nakon što smo prvi puta naselili aplikaciju, kasnije u ArgoCD-u kod naseljavanja nove verzije samo zamijenimo vrijednost stare verzije za novu (čiji smo novi kod prethodno stavili na Git klijent) te ju Argo sam automatski sinkronizira i naseli.

Glavna ideja je, zaključio je Matija, sustav postaviti tako da se jednim klikom za deploy koda digne cijela okolina.

Ako u budućnosti dođe do greške u sustavu, ponovo se istim deploy postupkom okolina vraća u prvotno ispravno stanje, sa svim podacima do prije greške.

Ovim postupkom smo dobili na brzini podizanja i rada na našoj okolini (primjerice, nadogradnje i povećanja sustava), održivosti i sigurnosti samog sustava te lakšem revidiranju komponenti sustava, pošto je sve pohranjeno na jednom mjestu u kodu.

I za kraj, Matiju smo pitali i što za njega označava #RBAmakesITeasy, slogan IT odjela, kojim komuniciraju da IT može biti jednostavniji i lakši, kolegijalnost veća, a kultura opuštenija – s više fokusa na ljude.

Za mene RBA potiče i omogućava edukacije te korištenje novih tehnologija na IT tržištu. Samim time mi omogućava da radim i razvijam svoje vještine na tehnologijama koje se nakon zajedničke procjene pokažu najboljim za našu okolinu.

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:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

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.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

eUsluge

Grad Zagreb omogućio potpun uvid u proračun kroz aplikaciju iTransparentnost

Nova aplikacija omogućuje svakom građaninu da detaljno prouči gradski porarčun po različitim parametrima.

Startupi

Što je to R&D potencijal – i kakve veze ima s razvojem startupa?

Je li startup nacija u kojoj su nastali tech giganti kao Skype, Wise, Bolt i Pipedrive to postala slučajno, otkrijte sa mnom na putu u Estoniju.

Nesortirano

Što je Akt o čipovima – i kako će doprinjeti tehnološkom razvitku Hrvatske

Jačanje konkurentnosti Europske unije u industriji poluvodiča prilika je i za Hrvatsku koja u sklopu 43 milijarde eura vrijedne incijative priprema otvaranje edukacijskih centara.

Što ste propustili

Panel

Hrvatski game developeri o stvaranju “ozbiljnih” videoigara

S predstavnicima game dev studija, ali i drugih privatnih tvrtki i dobrotvornih organizacija, raspravljamo o razvoju videoigara kojima svrha nije samo zabava, već i edukacija.

Intervju

Ivan Mrvoš: “Include više nije samo ‘onaj mali s pametnim klupama'”

Include, solinski startup poznat po pametnim klupama Steora, okrenuo se razvoju i proizvodnji novih proizvoda. Mrvoš, koji još nema ni 30 godina, a već je iskusni poduzetnik s respektabilnom karijerom, za Netokraciju je ispričao kako se i koliko ta tvrtka promijenila. Nedavno smo mogli pročitati da bi mogli promijeniti i vlasnika...

Esport

Peta sezona SET-a zaključena u Infobipu: Od 22 fakulteta pobjednički je varaždinski FOI

Student Esports Tournament, jedan od najpoznatijih studentskih esport događaja u Hrvatskoj, petu sezonu završio je u spektakularnoj LAN završnici koja se održala u prostorima Infobipa u Zagrebu.

Novost

Goran Bosankić u Field39 stiže na poziciju Chief Revenue Officera

Nakon više od 6 godina u Assecu SEE, a potom isto toliko u ABC Tech grupi, Goran Bosankić dolazi u Field39 kao Chief Revenue Officer i član Upravnog odbora.

Digitalni marketing

Super Bowl fenomen iliti “Vrijeme je da se vratite pred TV. Počinju reklame.”

Dok sam bio u Americi netom prije Super Bowla jedno mi je postalo jasno. Američki nogomet tamo je religija, a SuperBowl kao Božić. Samo što se za ovaj Božić svi okupe oko TV-a gledati reklame!

Novost

Teo Širola iz Muzeja iluzija proglašen najboljim mladim menadžerom 2023. godine

Hrvatsko udruženje menadžera i poduzetnika (HUM) CROMA dodijelilo je predsjedniku tvrtke Metamorfoza, koja upravlja globalnom mrežom Muzeja iluzija, nagradu za mladog menadžera 2023. godine.