"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

Umjetna inteligencija

Europa gradi AI tvornice vrijedne milijarde eura. Zašto Hrvatska nema nijednu?

Hrvatska će izdvojiti 39 milijuna eura za AI tvornicu, ali ta "domaća" tvornica inteligencije možda uopće neće biti izgrađena u Hrvatskoj.

Umjetna inteligencija

AI krade tekstove, ignorira pravila interneta i zakone

Umjetna inteligencija olakšala je krađu sadržaja u digitalnom svijetu. Kako se boriti protiv agregatora koji se predstavljaju kao news portali, ali ne poštuju pravila prenošenja i izdavačima uskraćuju pravednu naknadu, pitali smo prvog čovjeka HUDI-ja.

Umjetna inteligencija

CTO Netlifya: Više ćeš naučiti izradom 30 nesavršenih aplikacija nego tutorijalom

Umjetna inteligencija toliko je snizila prag za razvoj softvera da je najbolji način učenja postalo baciti se na posao, izrađivati i objavljivati nesavršene aplikacije te ih usput poboljšavati, smatra Dana Lawson, tehnološka direktorica Netlifyja.

Što ste propustili

Umjetna inteligencija

CTO Netlifya: Više ćeš naučiti izradom 30 nesavršenih aplikacija nego tutorijalom

Umjetna inteligencija toliko je snizila prag za razvoj softvera da je najbolji način učenja postalo baciti se na posao, izrađivati i objavljivati nesavršene aplikacije te ih usput poboljšavati, smatra Dana Lawson, tehnološka direktorica Netlifyja.

Veliki intervjui

Muška usamljenost – kako je prepoznati i ne produbljivati u IT kolektivima?

Najopasnija rečenica u muškoj ekipi glasi : "Sve pet”, a koliko često samo to čujete? Skoro svaki dan! Kad je ona znak za alarm, što to muškarci ne razumiju jedni o drugima te kako u IT kolektivima nehotično ne njegovati toksičnost, razgovaramo sa Sandrom Kraljevićem.

Turizam

Hrvatski hoteli gube prihod zbog loših web stranica i digitalnog iskustva

Hoteli ne iskorištavaju potencijal svog najvažnijeg prodajnog kanala, dapače, ne doživljavaju ga i gube prihode. Benefite iz programa vjernosti nude prekasno, a eure iz džepa izbija im i komplicirani booking engine. Na čemu bi trebali poraditi hrvatski hoteli, piše u svojoj kolumni Domagoj Razum, direktor poslovanja u Laurisu by BID.

Umjetna inteligencija

Tekstovi će imati oznaku koja odaje jesu li pisani pomoću AI-ja

Tekst generiran Claudeom imat će nevidljivi vodeni žig koji bi trebao preživjeti copy/paste, nova pravila vrijedit će i za datoteke. Iako je to način da se AI div uskladi s europskim regulativama o transparentnosti, učinak je vrlo upitan.

Umjetna inteligencija

OpenAI-jev Luis Velasco dolazi na Infobip Shift u Zadru

OpenAI na Infobip Shift ove godine prvi put šalje svog predstavnika. Luis Velasco, forward deployed engineer u OpenAI-ju, u Zadru će govoriti o AI agentima i novoj fazi razvoja umjetne inteligencije.

Analiza

Procurili podaci 88.000 hrvatskih građana: Što hakeri mogu napraviti s OIB-om i JMBG-om?

Podaci 88 000 hrvatskih građana preuzetih iz hrvatskih pravosudnih sustava objavljeni su na internetu i može ih se besplatno preuzeti. Što je točno objavljeno i ima li razloga za paniku?