Sodobna platforma za razvoj in uvajanje programske opreme

To je prva v seriji objav o spremembah, izboljšavah in dodatkih v prihajajoči posodobitvi platforme Red Hat OpenShift 4.0, ki vam bo pomagala pri pripravi na prehod na novo različico.

Sodobna platforma za razvoj in uvajanje programske opreme

Od trenutka, ko se je novonastala skupnost Kubernetes prvič zbrala v Googlovi pisarni v Seattlu jeseni 2014, je bilo jasno, da je projekt Kubernetes namenjen revoluciji današnjega razvoja in uvajanja programske opreme. Hkrati so ponudniki javnih oblačnih storitev nadaljevali z aktivnim vlaganjem v razvoj infrastrukture in storitev, ki so delo z IT in ustvarjanje programske opreme naredile veliko lažje in dostopnejše ter jih naredile neverjetno dostopne, kar si je na začetku le malokdo lahko predstavljal. desetletje.

Najavo vsake nove storitve v oblaku so seveda pospremile številne razprave med strokovnjaki na Twitterju, debate pa so potekale o najrazličnejših temah – vključno s koncem odprtokodne dobe, zatonom lokalne IT in neizogibnostjo novega monopola programske opreme v oblaku in kako bo nova paradigma X nadomestila vse druge paradigme.

Ni treba posebej poudarjati, da so bili vsi ti spori zelo neumni

Resničnost je taka, da nič ne bo izginilo in danes lahko zaradi nenehnega pojavljanja nove programske opreme v naših življenjih opazimo eksponentno rast končnih izdelkov in načina njihovega razvoja. In kljub dejstvu, da se bo vse okoli spremenilo, bo hkrati v bistvu vse ostalo nespremenjeno. Razvijalci programske opreme bodo še vedno pisali kodo z napakami, operativni inženirji in strokovnjaki za zanesljivost bodo še vedno hodili naokoli s pozivniki in prejemali samodejna opozorila v Slacku, menedžerji bodo še vedno delovali v smislu OpEx in CapEx in vsakič, ko pride do napake, bo starejši razvijalec žalostno zavzdihne z besedami: “Saj sem ti rekel”...

Oh res je treba razpravljati, katera orodja lahko imamo na voljo za ustvarjanje boljših izdelkov programske opreme in kako lahko izboljšajo varnost ter naredijo razvoj lažji in zanesljivejši. Ker projekti postajajo bolj zapleteni, se pojavljajo nova tveganja in danes so življenja ljudi tako odvisna od programske opreme, da se morajo razvijalci preprosto truditi svoje delo opravljati bolje.

Kubernetes je eno takih orodij. Potekajo dela za združitev Red Hat OpenShift z drugimi orodji in storitvami v enotno platformo, ki bi naredila programsko opremo zanesljivejšo, lažjo za upravljanje in varnejšo za uporabnike.

Glede na to skupina OpenShift postavlja eno preprosto vprašanje:

Kako lahko delo s Kubernetesom naredite enostavnejše in priročnejše?

Odgovor je presenetljivo očiten:

  • avtomatizirati zapletene vidike uvajanja v oblaku ali zunaj njega;
  • osredotočanje na zanesljivost ob skrivanju kompleksnosti;
  • še naprej nenehno delati na izdajanju preprostih in varnih posodobitev;
  • doseči obvladljivost in revizijo;
  • prizadevati si že na začetku zagotoviti visoko varnost, a ne na račun uporabnosti.

Naslednja izdaja OpenShift bi morala upoštevati tako izkušnje ustvarjalcev kot tudi izkušnje drugih razvijalcev, ki programsko opremo v velikem obsegu uvajajo v največjih podjetjih na svetu. Poleg tega mora upoštevati vse nabrane izkušnje odprtih ekosistemov, ki so osnova današnjega sodobnega sveta. Hkrati je treba opustiti staro miselnost amaterskega razvijalca in preiti na novo filozofijo avtomatizirane prihodnosti. Premostiti mora vrzel med starimi in novimi načini uvajanja programske opreme ter v celoti izkoristiti vso razpoložljivo infrastrukturo – ne glede na to, ali jo gosti največji ponudnik oblaka ali deluje na majhnih sistemih na robu.

Kako doseči ta rezultat?

Pri Red Hatu je običajno dolgočasno in nehvaležno delo opravljati dolgo časa, da bi ohranili ustaljeno skupnost in preprečili zaprtje projektov, v katere je vključeno podjetje. Odprtokodna skupnost vsebuje ogromno nadarjenih razvijalcev, ki ustvarjajo najbolj nenavadne stvari – zabavne, izobraževalne, odpirajo nove priložnosti in preprosto lepe, vendar seveda nihče ne pričakuje, da se bodo vsi udeleženci premikali v isto smer ali sledili skupnemu cilji. Izkoristiti to energijo in jo preusmeriti v pravo smer je včasih potrebno za razvoj področij, ki bi koristila našim uporabnikom, hkrati pa moramo spremljati razvoj naših skupnosti in se učiti od njih.

V začetku leta 2018 je Red Hat prevzel projekt CoreOS, ki je imel podobne poglede na prihodnost - bolj varen in zanesljiv, ustvarjen na odprtokodnih principih. Podjetje si je prizadevalo za nadaljnji razvoj teh zamisli in njihovo izvajanje, pri čemer je našo filozofijo udejanjilo v praksi – poskušalo je zagotoviti, da vsa programska oprema deluje varno. Vse to delo temelji na Kubernetesu, Linuxu, javnih oblakih, zasebnih oblakih in tisočih drugih projektih, ki podpirajo naš sodobni digitalni ekosistem.

Nova izdaja OpenShift 4 bo jasna, avtomatizirana in bolj naravna

Platforma OpenShift bo delovala z najboljšimi in najbolj zanesljivimi operacijskimi sistemi Linux, s podporo za golo strojno opremo, priročno virtualizacijo, samodejnim programiranjem infrastrukture in seveda vsebniki (ki so v bistvu samo slike Linuxa).

Platforma mora biti varna že od samega začetka, vendar razvijalcem še vedno omogočati enostavno ponavljanje – to pomeni, da mora biti dovolj prilagodljiva in varna, hkrati pa skrbnikom še vedno omogočati enostavno revizijo in upravljanje.

Omogočati mora izvajanje programske opreme "kot storitev" in ne sme povzročiti neobvladljive rasti infrastrukture za operaterje.

Razvijalcem bo omogočil, da se osredotočijo na ustvarjanje resničnih izdelkov za uporabnike in stranke. Ne bo vam treba broditi skozi džunglo nastavitev strojne in programske opreme, vsi naključni zapleti pa bodo stvar preteklosti.

OpenShift 4: platforma NoOps, ki ne potrebuje vzdrževanja

В ta publikacija opisal tiste naloge, ki so pomagale oblikovati vizijo podjetja za OpenShift 4. Cilj ekipe je čim bolj poenostaviti vsakodnevna opravila delovanja in vzdrževanja programske opreme, narediti te procese enostavne in sproščene - tako za strokovnjake, ki sodelujejo pri implementaciji, kot za razvijalce. Toda kako se lahko približate temu cilju? Kako ustvariti platformo za izvajanje programske opreme, ki zahteva minimalen poseg? Kaj NoOps sploh pomeni v tem kontekstu?

Če poskušate abstrahirati, potem za razvijalce koncepti "brez strežnika" ali "NoOps" pomenijo orodja in storitve, ki vam omogočajo, da skrijete "operativno" komponento ali zmanjšate to breme za razvijalca.

  • Ne delajte s sistemi, temveč z vmesniki aplikacij (API).
  • Ne trudite se z implementacijo programske opreme – naj to stori ponudnik namesto vas.
  • Ne smete takoj skočiti v ustvarjanje velikega ogrodja – začnite s pisanjem majhnih delov, ki bodo delovali kot "gradniki", poskusite, da bo ta koda delovala s podatki in dogodki, ne pa z diski in zbirkami podatkov.

Cilj je, tako kot doslej, pospešiti iteracije pri razvoju programske opreme, omogočiti ustvarjanje boljših izdelkov in tako, da razvijalcu ni treba skrbeti za sisteme, na katerih teče njegova programska oprema. Izkušen razvijalec se dobro zaveda, da lahko osredotočanje na uporabnike hitro spremeni sliko, zato se ne bi smeli preveč truditi s pisanjem programske opreme, razen če ste popolnoma prepričani, da je potrebna.

Za strokovnjake za vzdrževanje in delovanje se lahko beseda »NoOps« sliši malce strašljivo. Toda pri komunikaciji s terenskimi inženirji postane očitno, da imajo vzorci in tehnike, ki jih uporabljajo za zagotavljanje zanesljivosti in zanesljivosti (Site Reliability Engineering, SRE), veliko podobnosti z zgoraj opisanimi vzorci:

  • Ne upravljajte sistemov – avtomatizirajte njihove procese upravljanja.
  • Ne implementirajte programske opreme – ustvarite cevovod za njeno uvajanje.
  • Izogibajte se združevanju vseh svojih storitev in dovolite, da okvara ene povzroči odpoved celotnega sistema – razpršite jih po celotni infrastrukturi z orodji za avtomatizacijo in jih povežite na načine, ki jih je mogoče nadzorovati in nadzorovati.

SRE vedo, da gre lahko kaj narobe in da bodo morali izslediti in odpraviti težavo – zato avtomatizirajo rutinsko delo in vnaprej nastavijo proračune za napake, tako da so pripravljeni določiti prednostne naloge in sprejeti odločitve, ko se pojavi težava.

Kubernetes v OpenShiftu je platforma, zasnovana za reševanje dveh glavnih težav: namesto da bi vas prisilil k razumevanju navideznih strojev ali API-jev za izravnavo obremenitve, deluje z abstrakcijami višjega reda – procesi uvajanja in storitvami. Namesto nameščanja programskih agentov lahko izvajate vsebnike in namesto pisanja lastnega nadzornega sklada uporabite orodja, ki so že na voljo na platformi. Torej, skrivna omaka OpenShift 4 res ni nobena skrivnost - gre samo za to, da vzamemo načela SRE in koncepte brez strežnikov in jih pripeljemo do njihovega logičnega zaključka, da pomagamo razvijalcem in operativnim inženirjem:

  • Avtomatizirajte in standardizirajte infrastrukturo, ki jo uporabljajo aplikacije
  • Povežite procese uvajanja in razvoja, ne da bi pri tem omejili same razvijalce
  • Zagotavljanje, da zagon, revidiranje in varovanje XNUMX. storitve, funkcije, aplikacije ali celotnega sklada ni nič težje od prvega.

Toda kakšna je razlika med platformo OpenShift 4 in njenimi predhodniki ter od »standardnega« pristopa k reševanju tovrstnih problemov? Kaj spodbuja obseg izvedbenih in operativnih skupin? Zaradi dejstva, da je kralj v tej situaciji grozd. Torej,

  • Poskrbimo, da je namen grozdov jasen (Dragi oblak, ta grozd sem izbral, ker sem lahko)
  • Stroji in operacijski sistemi obstajajo, da služijo gruči (Vaše Veličanstvo)
  • Upravljajte stanje gostiteljev iz gruče, minimizirajte njihovo ponovno gradnjo (drift).
  • Za vsak pomemben element sistema je potrebna varuška (mehanizem), ki bo spremljala in odpravljala težave
  • Okvara *vseh* vidikov ali elementov sistema in povezanih obnovitvenih mehanizmov je normalen del življenja
  • Celotna infrastruktura mora biti konfigurirana prek API-ja.
  • Uporabite Kubernetes za zagon Kubernetesa. (Da, da, to ni tipkarska napaka)
  • Namestitev posodobitev mora biti preprosta in brez težav. Če je za namestitev posodobitve potreben več kot en klik, potem očitno delamo nekaj narobe.
  • Spremljanje in odpravljanje napak v kateri koli komponenti ne bi smelo predstavljati težav, zato bi moralo biti sledenje in poročanje po celotni infrastrukturi preprosto in priročno.

Želite videti zmogljivosti platforme v akciji?

Predogledna različica OpenShift 4 je postala na voljo razvijalcem. Z namestitvenim programom, ki je enostaven za uporabo, lahko zaženete gručo na AWS na vrhu Red Had CoreOS. Za uporabo predogleda potrebujete samo račun AWS za zagotavljanje infrastrukture in nabor računov za dostop do slik za predogled.

  1. Za začetek pojdite na try.openshift.com in kliknite »Začni«.
  2. Prijavite se v svoj račun Red Hat (ali ustvarite novega) in sledite navodilom za nastavitev vaše prve gruče.

Po uspešni namestitvi si oglejte naše vadnice Usposabljanje OpenShiftda bi globlje razumeli sisteme in koncepte, zaradi katerih je platforma OpenShift 4 tako enostaven in priročen način za zagon Kubernetesa.

Preizkusite novo izdajo OpenShift in delite svoje mnenje. Zavezani smo k temu, da bo delo s Kumbernetesom čim bolj dostopno in enostavno – prihodnost NoOps se začne danes.

Zdaj pa pozornost!
Na konferenci DevOpsForum 2019 20. aprila bo eden od razvijalcev OpenShift, Vadim Rutkovsky, imel mojstrski tečaj - zlomil bo deset grozdov in jih prisilil, da jih popravijo. Konferenca je plačljiva, vendar s promocijsko kodo #RedHat dobite 37% popust

Mojstrski tečaj ob 17 - 15, stojnica pa je odprta ves dan. Majice, kape, nalepke - običajno!

Dvorana #2
"Tu je treba spremeniti celoten sistem: skupaj s certificiranimi mehaniki popravljamo pokvarjene skupine k8s."


Vir: www.habr.com

Dodaj komentar