Vodič kroz DevOps na tri platforme
Na početku ove knjige nalazila se velika zbirka beležaka nastala tokom sertifikacionih obuka, proučavanja VMware infrastrukture, Tanzu i OpenShift platformi, vraćanja na Vanilla Kubernetes temelje i izgradnje sopstvenih laboratorija. Na kraju se ne nalazi samo sređen skup lekcija. Nalazi se povezana mapa savremenog cloud-native sistema i način razmišljanja koji ostaje upotrebljiv i kada se alati, verzije i nazivi proizvoda promene.
Vanilla Kubernetes, Tanzu i OpenShift pokazali su se kao tri različita pogleda na zajednički temelj. Vanilla Kubernetes omogućava da se vide osnovni mehanizmi i odgovornosti. Tanzu ih povezuje sa VMware infrastrukturom i enterprise upravljanjem. OpenShift ih ugrađuje u integrisanu razvojnu i operativnu platformu sa sopstvenim bezbednosnim, administrativnim i korisničkim slojevima. Razlike između njih jesu važne, ali postaju razumljive tek kada se prepoznaju principi koje dele.
Zato najveća vrednost vodiča nije u pamćenju tri verzije iste komande. Ona je u sposobnosti da se u svakom okruženju postave ista osnovna pitanja: koji objekat predstavlja željeno stanje, koja komponenta ga usklađuje sa stvarnim stanjem, gde se čuvaju podaci, kako saobraćaj stiže do aplikacije, kojim identitetom se zahtev izvršava, gde se vide događaji i logovi, kako se meri zdravlje sistema i kako se on oporavlja kada nešto pođe drugačije od plana.
Gradivo je počelo cloud-native i DevOps kontekstom, jer tehnologija nema puni smisao bez problema koji pokušava da reši. Kontejnerizacija je zatim odvojena od orkestracije i upravljanja platformom. YAML, JSON i precizna terminologija postavili su jezik kojim se opisuje željeno stanje. Kubernetes arhitektura objasnila je ko to stanje čita, čuva i ostvaruje, dok su alati i radna opterećenja pokazali kako se ti mehanizmi koriste u svakodnevnom radu.
Praktikumi su pretvorili objašnjenja u proverljive postupke. Storage, networking i bezbednost pokazali su da aplikacija nije samo kontejner koji se uspešno pokrenuo. Operacionalizacija je dodala ono što određuje stvarnu zrelost sistema: pristup, monitoring, logovanje, observability, identitete, upravljanje incidentima, backup, restore, skaliranje, održavanje i pouzdanost. GitOps, AI/ML, MLOps, AIOps i napredne tehnike zatim su prikazani ne kao izdvojeni moderni ukrasi, već kao nastavak istih principa deklarativnosti, automatizacije, merenja i kontrolisane promene.
Time je zatvoren put kroz pet nivoa na kojima je knjiga građena: od razumevanja konteksta, preko Kubernetes temelja i praktičnog rada, do produkcionog upravljanja i savremene evolucije platforme. Nijedan nivo ne poništava prethodni. Naprotiv, svaki zavisi od njega.
Sopstvene laboratorije bile su mesto na kojem su beleške prestajale da budu samo tekst. U njima je bilo moguće proveriti šta se događa kada konfiguracija nije potpuna, kada mrežna pretpostavka nije tačna, kada resurs ne može da bude raspoređen, kada servis nije dostupan ili kada se deklarisano i stvarno stanje ne podudaraju. Upravo takve situacije razvijaju sposobnost dijagnostike koju idealni primeri često ne mogu da pruže.
Važan rezultat laboratorijskog rada nije samo funkcionalna aplikacija. Rezultat su i tragovi procesa: zapis početnog stanja, razlog promene, korišćene komande i manifesti, izlazi provera, uočene greške, odluke, rollback i završna validacija. Dokumentacija nije administrativni dodatak tehničkom radu. Ona je deo pouzdanosti sistema, prenosa znanja, audita i odgovornosti.
Čitalac koji je izveo vežbe, ali i beležio njihove pretpostavke, odstupanja i dokaze, stekao je više od proceduralnog znanja. Razvio je naviku da promenu posmatra kao kontrolisan eksperiment: sa ciljem, rizikom, očekivanim ishodom, merenjem i mogućnošću oporavka. To je jedna od najvažnijih veza između DevOps-a, administracije platforme i SRE discipline.
Posle ove knjige čitalac bi trebalo da može da razlikuje kontejnerizaciju, orkestraciju i upravljanje platformom; da razume odnose između kontrolne i radne ravni; da čita i oblikuje deklarativne konfiguracije; da prepozna uloge najvažnijih Kubernetes resursa i kontrolera; da bira alate prema problemu koji rešavaju; i da isti koncept pronađe u Vanilla Kubernetes, Tanzu i OpenShift okruženju čak i kada je predstavljen drugim nazivom ili interfejsom.
Treba takođe da ume da postavi laboratoriju, proveri klaster i aplikaciju, prati put mrežnog zahteva, razume persistenciju podataka, primeni osnovne kontrole pristupa, koristi monitoring i logove, planira backup i oporavak, razmišlja o skaliranju i performansama i pristupi incidentu bez nasumičnog menjanja sistema. Jednako je važno da prepozna granicu sopstvenog znanja i trenutak kada je potrebno proveriti zvaničnu dokumentaciju, konsultovati drugu stručnu oblast ili zaustaviti rizičnu promenu.
Knjiga ne može zameniti iskustvo u živom produkcionom okruženju, timsku saradnju ni odgovornost koja prati rad sa poslovnim sistemima. Može, međutim, pružiti dovoljno stabilnu mapu da novo iskustvo ne ostane niz nepovezanih događaja. Kada postoji struktura znanja, svaka nova platforma, greška i dokumentacija lakše pronalaze svoje mesto.
Cloud-native ekosistem nastaviće da se menja. Projekti će sazrevati, alati će se spajati ili nestajati, interfejsi će dobijati nova imena, a platforme će preuzimati sve više operativnih zadataka. Zbog toga dugoročna stručnost ne počiva samo na poznavanju trenutne sintakse. Ona počiva na razumevanju arhitekture, sposobnosti poređenja, pažljivom čitanju dokumentacije, eksperimentisanju u bezbednom okruženju i disciplini da se rezultat proveri.
Upravo zato ova knjiga završava geek anegdotama, ljudima i open-source kulturom. Iza svakog ozbiljnog sistema nalaze se zajednice, rasprave, neobične odluke, duhovita imena, produkcione nezgode i lekcije koje su postale deo kolektivnog tehničkog iskustva. Taj završetak podseća da tehnologija nije nastala u savršenom linearnom procesu, baš kao što ni ova knjiga nije nastala iz savršeno urednih beležaka.
Njena početna građa bila je „kupus”, ali kupus nastao iz radoznalosti, rada i potrebe da se stvari povežu. Uređivanjem nije trebalo ukloniti tu živost, već otkriti strukturu koja je u beleškama već postojala: najpre razumeti, zatim pokušati, naići na problem, dokumentovati, povezati i pokušati ponovo.
Ako posle poslednje stranice čitalac ne vidi Vanilla Kubernetes, Tanzu i OpenShift kao tri odvojene gomile komandi, već kao tri realizacije povezanih principa; ako ume da pređe od simptoma ka slojevima sistema, od promene ka dokazu i od greške ka dokumentovanoj lekciji — onda se put ove knjige uspešno nastavlja u njegovom sopstvenom radu.
Znanje se ne završava time što je sadržaj sređen. Ono počinje da živi onda kada može da se proveri, objasni, podeli i dalje razvija.