Ovo je prva objava u seriji materijala posvećenih promjenama, poboljšanjima i dodacima u nadolazećem ažuriranju platforme Red Hat OpenShift do 4.0, koje će pomoći u pripremi za prijelaz na novu verziju.

Od trenutka kada su se predstavnici tada još uvijek formirajuće zajednice Kubernetes prvi put okupili u jesen 2014. godine u Googleovom uredu u Seattleu, već je bilo jasno da je projektu Kubernetes suđeno da temeljito promijeni suvremene pristupe razvoju i implementaciji softvera. U isto vrijeme, javni pružatelji usluga u oblaku nastavili su aktivno ulagati u razvoj infrastrukture i usluga, što je značajno olakšalo i pojednostavilo rad s IT-jem i razvoj softvera, čineći ih nevjerojatno dostupnim, što je malo tko mogao zamisliti na početku desetljeća.
Naravno, najava svake nove usluge u oblaku pratila je brojna rasprava stručnjaka na Twitteru, pri čemu su rasprave vođene o najrazličitijim temama – uključujući kraj ere otvorenog koda, zalazak IT-a na strani klijenata (on-premises IT), neizbježnost nove softverske monopole u oblaku i to kako će nova paradigma X zamijeniti sve ostale paradigme.
Ima li smisla reći da su sve te rasprave bile prilično glupe?
Stvarnost je takva da ništa nikuda ne nestaje, i danas možemo primijetiti eksponencijalni rast krajnjih proizvoda i načina njihovog razvoja, što je povezano s neprekidnim pojavljivanjem novog softvera u našem životu. I unatoč tome što će se sve oko nas mijenjati, u svojoj suštini sve će ostati nepromijenjeno. Programeri softvera i dalje će pisati kod s greškama, inženjeri koji se bave radom i stručnjaci za pouzdanost i dalje će nositi pager i primati automatske obavijesti na Slacku, menadžeri će i dalje operirati pojmovima OpEx i CapEx, a svaki put kada nastane kvar, stariji programer će tugaljivo uzdahnuti riječima: 'Rekao sam.'...
Što bi se doista trebalo raspraviti, ovo su alati koje možemo imati na raspolaganju za stvaranje kvalitetnijih softverskih proizvoda, te kako oni omogućuju povećanje sigurnosti i pojednostavljenje razvoja, čineći ga pouzdanijim. S povećanjem složenosti projekata pojavljuju se novi rizici, i danas životi ljudi toliko ovise o softveru da su programeri jednostavno obavezni raditi svoj posao bolje.
Kubernetes je jedan od takvih alata. U okviru Red Hat OpenShift radi se na integraciji s drugim alatima i uslugama u jedinstvenu platformu koja bi omogućila izradu softvera koji je pouzdaniji, lakši za upravljanje i sigurniji za korisnike.
Uzimajući u obzir navedeno, tim OpenShift postavlja jedno jednostavno pitanje:
Kako pojednostaviti i olakšati rad s Kubernetesom?
Odgovor je iznenađujuće očit:
- automatizirati složene aspekte implementacije u oblaku ili izvan njega;
- fokusirati se na pouzdanost, skrivajući složenost;
- redovno raditi na izdavanju jednostavnih i sigurnih ažuriranja;
- postići kontrolu i mogućnost revizije;
- te težiti osiguravanju visoke sigurnosti od samog početka, ali ne na uštrb korisničkog iskustva.
Sljedeće izdanje OpenShifta treba uzeti u obzir kako iskustvo programera, tako i iskustvo drugih developera koji u velikim razmjerima implementiraju softver u najvećim kompanijama svijeta. Osim toga, mora uzeti u obzir cijelo stečeno iskustvo otvorenih ekosustava, koji su danas temelj modernog svijeta. Pri tome je potrebno odbaciti stari mentalitet amaterskog programera i preći na novu filozofiju automatizirane budućnosti. Treba biti „most“ između starih i novih načina implementacije softvera i u potpunosti iskoristiti svu dostupnu infrastrukturu – bez obzira na to je li održavana od strane najvećeg pružatelja oblaka ili pokrenuta na malim sustavima na periferiji.
Kako postići takav rezultat?
U Red Hatu je uobičajeno provoditi dugo vremena obavljajući dosadan i nezahvalan posao kako bismo zadržali formiranu zajednicu i spriječili zatvaranje projekata u kojima tvrtka sudjeluje. U open-source zajednici postoji ogroman broj talentiranih developera koji stvaraju najneobičnije stvari – zabavne, edukativne, otvaraju nove mogućnosti i jednostavno lijepe, no, naravno, nitko ne očekuje da će svi sudionici ići u istom smjeru ili imati zajedničke ciljeve. Korištenje te energije, preusmjeravanje u pravom smjeru, ponekad je potrebno za razvoj pravaca koji bi bili korisni našim korisnicima, ali istovremeno moramo pratiti razvoj naših zajednica i učiti od njih.
Početkom 2018. godine Red Hat je kupio projekt CoreOS, koji je imao slične poglede na budućnost – sigurniji i pouzdaniji, temeljen na principima open-source. Tvrtka je radila na daljnjem razvoju tih ideja i njihovu ostvarivanju, provodeći našu filozofiju – nastojeći osigurati sigurnu operativnost cijelog softvera. Sav ovaj rad se oslanja na Kubernetes, Linux, javne oblake, privatne oblake i tisuće drugih projekata koji čine osnovu našeg modernog digitalnog ekosustava.
Novi OpenShift 4 bit će razumljiv, automatiziran i prirodniji.
OpenShift platforma će raditi s najboljim i najpouzdanijim Linux operativnim sustavima, s bare-metal hardverskom podrškom, prikladnom virtualizacijom, automatskim programiranjem infrastrukture i, naravno, kontejnerima (koji su zapravo samo Linux slike).
Platforma mora biti sigurna od samog početka, ali istovremeno omogućiti jednostavne iteracije za developere – dakle, posjedovati dovoljnu fleksibilnost i pouzdanost, a da pri tome i dalje omogućava administratorima audite i olakšava upravljanje.
Ona bi trebala omogućiti pokretanje softvera 'kao usluge', a ne dovesti do nekontroliranog širenja infrastrukture za operatore.
Omogućit će programerima da se usmjere na stvaranje stvarnih proizvoda za korisnike i klijente. Neće biti potrebno prolaziti kroz komplicirane postavke hardvera i softvera, dok će svi slučajni problemi ostati u prošlosti.
OpenShift 4: NoOps platforma koja ne zahtijeva održavanje
U opisana su pitanja koja su pomogla oblikovati viziju tvrtke kada je u pitanju OpenShift 4. Tim ima zadatak da maksimalno pojednostavi svakodnevne zadatke vezane uz eksploataciju i održavanje softvera, čineći te procese jednostavnima i opuštenima – kako za stručnjake zadužene za implementaciju, tako i za programere. Ali kako se približiti ovom cilju? Kako stvoriti platformu za pokretanje softvera koja zahtijeva minimalnu intervenciju? Što u ovom kontekstu zapravo znači NoOps?
Ako pokušate apstrahirati, za programere pojmovi „serverless“ ili „NoOps“ znače alate i usluge koje omogućuju skrivanje „eksploatacijskih“ aspekata ili minimiziranje tog tereta za programera.
- Radite ne sa sustavima, već s aplikacijskim sučeljima (API).
- Ne bavite se implementacijom softvera – neka se tim umjesto vas pobrine dobavljač.
- Ne biste trebali odmah započeti s izradom velikog okvira – počnite s pisanjem malih dijelova koji će služiti kao „građevni blokovi“, nastojeći da taj kod funkcionira s podacima i događajima, a ne s diskovima i bazama podataka.
Zadatak, kao i prije, ostaje ubrzati iteracije u razvoju softvera, omogućiti stvaranje kvalitetnijih proizvoda, i da programer ne mora brinuti o sustavima na kojima se pokreće njegov softver. Iskusni programer savršeno razumije da se, ako se usredotočite na korisnike, situacija može brzo promijeniti, stoga ne biste trebali ulagati previše truda u pisanje softvera ako nemate apsolutnu sigurnost u njegovu nužnost.
Za stručnjake koji se bave održavanjem i radom, pojam „NoOps“ može zvučati pomalo zastrašujuće. Međutim, tijekom razgovora s operativnim inženjerima postaje očito da se obrasci i metode koje koriste za osiguranje pouzdanosti bez neuspjeha (Site Reliability Engineering, SRE) u velikoj mjeri podudaraju s prethodno opisanim obrascima:
- Ne upravljajte sustavima – automatizirajte procese upravljanja njima.
- Ne bavite se implementacijom softvera – stvorite pipeline za njegovo raspoređivanje.
- Pokušajte ne povezati sve vaše usluge zajedno i ne dopustite da neuspjeh jedne od njih dovede do neuspjeha cijelog sustava – rasporedite ih diljem infrastrukture koristeći alate za automatizaciju, i povežite ih uzimajući u obzir mogućnost kontrole i nadzora.
SRE stručnjaci znaju da se nešto može poći po zlu i morat će pratiti i otkloniti problem – zato automatiziraju rutinski rad i unaprijed definiraju prihvatljive odstupanja (error budgets) kako bi bili spremni na postavljanje prioriteta i donošenje odluka u slučaju problema.
Kubernetes u OpenShiftu je platforma koja je dizajnirana da riješi dva osnovna zadatka: umjesto da vas prisili da se bavite virtualnim strojevima ili API sučeljima uravnoteživača opterećenja, radi se s apstrakcijama višeg reda – s procesima raspoređivanja i uslugama. Umjesto instalacije softverskih agenata, možete pokrenuti kontejnere, a umjesto pisanja vlastitog nadzornog stoga, koriste se već dostupni alati na platformi. Na taj način, tajni sastojak OpenShift 4 zapravo ne predstavlja nikakvu tajnu – samo trebate uzeti kao osnovu principe SRE i koncept bez poslužitelja, i dovesti ih do logičkog zaključka, u pomoć programerima i operativnim inženjerima:
- Automatizirati i standardizirati infrastrukturu koja se koristi aplikacijama
- Povezati procese raspoređivanja i razvoja, ne ograničavajući pritom same programere
- Osigurati da pokretanje, revizija i osiguranje sigurnosti stotog servisa, funkcije, aplikacije ili cijelog stoga bude jednako jednostavno kao i kod prvog.
Koja je razlika između platforme OpenShift 4 i njenih prethodnica, kao i između "standardnog" pristupa rješavanju sličnih problema? Kako se postiže skaliranje za timove koji se bave implementacijom i operacijom? Kralj u ovoj situaciji je klaster. Dakle,
- Pobrinimo se da svrha klastera bude jasna (Skupa usluga, ovaj sam klaster podigao zato što sam mogao)
- Računala i operacijski sustavi postoje da bi podržavali klaster (Vaše Veličanstvo)
- Upravite stanjem hostova s klastera, minimizirajte njihova prekoračenja (drift).
- Za svaki važan element sustava potrebna je dadilja (mehanizam) koja će pratiti i rješavati probleme.
- Kvar *svakog* aspekta ili elementa sustava odgovarajući mehanizmi oporavka — to je uobičajeni dio života.
- Cijela infrastruktura mora se konfigurirati putem API-ja.
- Koristite Kubernetes za pokretanje Kubernetesa. (Da, da, ovo nije greška.)
- Ažuriranja bi trebala biti instalirana lako i bez napora. Ako za instalaciju ažuriranja treba više od jednog klika mišem, očito radimo nešto pogrešno.
- Praćenje i otklanjanje grešaka bilo kojeg komponenta ne bi smjela predstavljati problem, a takođe bi praćenje i izrada izvješća o cijeloj infrastrukturi trebala biti jednostavna i jednostavna.
Želite li vidjeti mogućnosti platforme u akciji?
Predverzija OpenShift 4 dostupna je programerima. Uz jednostavan instalacijski alat možete pokrenuti klaster na AWS-u na Red Hat CoreOS-u. Da biste koristili predverziju, potrebna vam je samo AWS računa za pružanje infrastrukture i skup računa za pristup predverzijama.
- Da biste započeli, idite na i kliknite ‘Započni’.
- Prijavite se u svoj Red Hat račun (ili izradite novi) i slijedite upute za postavljanje vašeg prvog klastera.
Nakon uspješne instalacije, upoznajte se s našim obrazovnim materijalima , kako biste dobili detaljniji uvid u sustave i koncepcije koje čine platformu OpenShift 4 tako jednostavnim i korisnim alatom za pokretanje Kubernetesa.
Isprobajte novo izdanje OpenShifta i podijelite svoje mišljenje. Težimo tome da rad s Kubernetesom bude što pristupačniji i bez napora – budućnost NoOps počinje danas.
A sada pozornost!
Na konferenciji 20. travnja jedan od razvojnih inženjera OpenShifta, Vadim Rutkovski, održat će radionicu – uništit će deset klastera i natjerati ih da ih poprave. Konferencija je plaćena, ali uz promocijski kod #RedHat ostvarite popust od 37%.
Radionica od 17:15 do 18:15, a štand radi cijeli dan. Majice, kape, naljepnice – kao i obično!
Dvorana #2
"Treba promijeniti cijeli sustav: popravljamo slomljene k8s klastere zajedno sa certificiranim majstorima."
Izvor: habr.com
