Moderná platforma pre vývoj a nasadenie softvéru

Toto je prvý zo série príspevkov o zmenách, vylepšeniach a doplnkoch v pripravovanej aktualizácii platformy Red Hat OpenShift 4.0, ktorá vám pomôže pripraviť sa na prechod na novú verziu.

Moderná platforma pre vývoj a nasadenie softvéru

Od chvíle, keď sa začínajúca komunita Kubernetes prvýkrát zhromaždila v pobočke spoločnosti Google v Seattli na jeseň roku 2014, bolo jasné, že projekt Kubernetes bol predurčený na to, aby spôsobil revolúciu v spôsobe, akým sa dnes softvér vyvíja a nasadzuje. Poskytovatelia verejných cloudových služieb zároveň naďalej aktívne investovali do rozvoja infraštruktúry a služieb, čo značne uľahčilo a sprístupnilo prácu s IT a tvorbu softvéru a urobilo ich neskutočne dostupnými, čo si na začiatku r. desaťročia.

Oznámenie každej novej cloudovej služby samozrejme sprevádzali početné diskusie medzi odborníkmi na Twitteri a viedli sa debaty na rôzne témy – vrátane konca éry open source, úpadku on-premise IT a nevyhnutnosti nového softvérového monopolu v cloude a ako nová paradigma X nahradí všetky ostatné paradigmy.

Netreba dodávať, že všetky tieto spory boli veľmi hlúpe

Realita je taká, že nič nezmizne a dnes môžeme vidieť exponenciálny rast koncových produktov a spôsobu ich vývoja v dôsledku neustáleho objavovania sa nového softvéru v našich životoch. A napriek tomu, že všetko okolo sa zmení, zároveň v podstate všetko zostane nezmenené. Vývojári softvéru budú stále písať kód s chybami, prevádzkoví inžinieri a špecialisti na spoľahlivosť budú stále chodiť s pagermi a dostávať automatické upozornenia v Slacku, manažéri budú stále pracovať v zmysle OpEx a CapEx a vždy, keď dôjde k zlyhaniu, senior vývojár bude smutne si povzdychnúť so slovami: „Hovoril som ti to“...

naozaj by sa malo prediskutovať, sú nástroje, ktoré môžeme mať k dispozícii na vytváranie lepších softvérových produktov a ako môžu zlepšiť bezpečnosť a uľahčiť a spoľahlivejšie vývoj. Ako sa projekty stávajú zložitejšími, vznikajú nové riziká a dnes sú životy ľudí natoľko závislé od softvéru, že vývojári sa jednoducho musia snažiť robiť svoju prácu lepšie.

Kubernetes je jedným z takýchto nástrojov. Pracuje sa na spojení Red Hat OpenShift s ďalšími nástrojmi a službami do jedinej platformy, vďaka ktorej by bol softvér spoľahlivejší, ľahšie spravovateľný a bezpečnejší pre používateľov.

Na základe toho si tím OpenShift kladie jednu jednoduchú otázku:

Ako môžete zjednodušiť a zjednodušiť prácu s Kubernetes?

Odpoveď je prekvapivo jasná:

  • automatizovať komplexné aspekty nasadenia v cloude alebo mimo cloudu;
  • zamerať sa na spoľahlivosť a zároveň skryť zložitosť;
  • pokračovať v nepretržitej práci na vydávaní jednoduchých a bezpečných aktualizácií;
  • dosiahnuť kontrolovateľnosť a auditovateľnosť;
  • snažte sa spočiatku zabezpečiť vysokú bezpečnosť, ale nie na úkor použiteľnosti.

Ďalšie vydanie OpenShift by malo brať do úvahy tak skúsenosti tvorcov, ako aj skúsenosti ostatných vývojárov, ktorí implementujú softvér vo veľkom meradle v najväčších spoločnostiach na svete. Okrem toho musí brať do úvahy všetky nahromadené skúsenosti z otvorených ekosystémov, ktoré sú základom dnešného moderného sveta. Zároveň je potrebné opustiť starú mentalitu amatérskeho vývojára a prejsť na novú filozofiu automatizovanej budúcnosti. Potrebuje preklenúť priepasť medzi starými a novými spôsobmi nasadenia softvéru a naplno využiť všetku dostupnú infraštruktúru – či už je hosťovaná najväčším poskytovateľom cloudu, alebo beží na malých systémoch na okraji.

Ako dosiahnuť tento výsledok?

V Red Hat je zvykom robiť dlho nudnú a nevďačnú prácu, aby sme zachovali vybudovanú komunitu a zabránili uzatváraniu projektov, v ktorých sa firma angažuje. Komunita s otvoreným zdrojovým kódom obsahuje obrovské množstvo talentovaných vývojárov, ktorí vytvárajú tie najvýnimočnejšie veci – zábavné, vzdelávacie, otvárajú nové príležitosti a sú jednoducho krásne, ale, samozrejme, nikto neočakáva, že sa všetci budú pohybovať rovnakým smerom alebo sledovať spoločné ciele. . Využitie tejto energie a jej presmerovanie správnym smerom je niekedy nevyhnutné na rozvoj oblastí, ktoré by boli prospešné pre našich používateľov, no zároveň musíme sledovať vývoj našich komunít a učiť sa od nich.

Začiatkom roka 2018 získal Red Hat projekt CoreOS, ktorý mal podobné názory na budúcnosť – bezpečnejší a spoľahlivejší, vytvorený na princípoch open-source. Spoločnosť pracovala na ďalšom rozvoji týchto myšlienok a ich implementácii, pričom zaviedla našu filozofiu do praxe – snažila sa zabezpečiť, aby všetok softvér fungoval bezpečne. Celá táto práca je postavená na Kubernetes, Linuxe, verejných cloudoch, súkromných cloudoch a tisíckach ďalších projektov, ktoré sú základom nášho moderného digitálneho ekosystému.

Nové vydanie OpenShift 4 bude jasné, automatizované a prirodzenejšie

Platforma OpenShift bude fungovať s najlepšími a najspoľahlivejšími operačnými systémami Linux, s hardwarovou podporou na báze kovu, pohodlnou virtualizáciou, automatickým programovaním infraštruktúry a samozrejme kontajnermi (čo sú v podstate len linuxové obrazy).

Platforma musí byť zabezpečená od začiatku, ale stále musí vývojárom umožniť jednoduchú iteráciu – to znamená, že musí byť dostatočne flexibilná a bezpečná a zároveň musí správcom umožniť, aby ju ľahko kontrolovali a spravovali.

Malo by umožniť, aby sa softvér prevádzkoval „ako služba“ a neviedol k neriaditeľnému rastu infraštruktúry pre operátorov.

Umožní vývojárom sústrediť sa na vytváranie skutočných produktov pre používateľov a zákazníkov. Nebudete sa musieť predierať džungľou hardvérových a softvérových nastavení a všetky náhodné komplikácie budú minulosťou.

OpenShift 4: Platforma NoOps, ktorá nevyžaduje údržbu

В túto publikáciu opísal tie úlohy, ktoré pomohli formovať víziu spoločnosti pre OpenShift 4. Cieľom tímu je čo najviac zjednodušiť každodenné úlohy spojené s prevádzkou a údržbou softvéru, aby tieto procesy boli jednoduché a uvoľnené – ako pre špecialistov podieľajúcich sa na implementácii, tak aj pre vývojárov. Ako sa však k tomuto cieľu priblížiť? Ako vytvoriť platformu pre spustenie softvéru, ktorý vyžaduje minimálny zásah? Čo v tomto kontexte znamená NoOps?

Ak sa pokúsite abstraktovať, potom pre vývojárov pojmy „bez servera“ alebo „NoOps“ znamenajú nástroje a služby, ktoré vám umožňujú skryť „prevádzkový“ komponent alebo minimalizovať túto záťaž pre vývojárov.

  • Nepracujte so systémami, ale s aplikačnými rozhraniami (API).
  • Netrápte sa implementáciou softvéru – nechajte poskytovateľa, aby to urobil za vás.
  • Nevrhajte sa hneď do vytvárania veľkého rámca – začnite písaním malých kúskov, ktoré budú fungovať ako „stavebné kamene“, snažte sa, aby tento kód fungoval s údajmi a udalosťami, a nie s diskami a databázami.

Cieľom je rovnako ako doteraz urýchliť iterácie vo vývoji softvéru, poskytnúť možnosť vytvárať lepšie produkty a vývojár sa nemusí starať o systémy, na ktorých jeho softvér beží. Skúsený vývojár si je dobre vedomý toho, že zameranie sa na používateľov môže rýchlo zmeniť obraz, takže by ste nemali vynakladať príliš veľa úsilia na písanie softvéru, pokiaľ si nie ste úplne istí, že je to potrebné.

Pre profesionálov v oblasti údržby a prevádzky môže slovo „NoOps“ znieť trochu strašidelne. Pri komunikácii s terénnymi inžiniermi je však zrejmé, že vzory a techniky, ktoré používajú, zamerané na zabezpečenie spoľahlivosti a spoľahlivosti (Site Reliability Engineering, SRE) majú veľa podobností so vzormi opísanými vyššie:

  • Nespravujte systémy – automatizujte ich riadiace procesy.
  • Neimplementujte softvér – vytvorte kanál na jeho nasadenie.
  • Vyhnite sa spájaniu všetkých služieb dohromady a nedovoľte, aby zlyhanie jednej spôsobilo zlyhanie celého systému – rozložte ich v celej infraštruktúre pomocou automatizačných nástrojov a prepojte ich spôsobmi, ktoré možno monitorovať a monitorovať.

SRE vedia, že sa niečo môže pokaziť a budú musieť problém vystopovať a opraviť – preto automatizujú rutinnú prácu a vopred stanovujú rozpočty na chyby, aby boli pripravené určiť priority a rozhodnúť, keď sa vyskytne problém.

Kubernetes v OpenShift je platforma navrhnutá tak, aby riešila dva hlavné problémy: namiesto toho, aby vás nútila porozumieť virtuálnym strojom alebo rozhraniam API na vyrovnávanie záťaže, pracuje s abstrakciami vyššieho rádu – procesmi nasadenia a službami. Namiesto inštalácie softvérových agentov môžete spúšťať kontajnery a namiesto písania vlastného monitorovacieho zásobníka používať nástroje, ktoré sú už dostupné na platforme. Takže tajná omáčka OpenShift 4 naozaj nie je žiadnym tajomstvom – je to len otázka prijatia princípov SRE a bezserverových konceptov a ich dovedenie k ich logickému záveru, aby pomohli vývojárom a prevádzkovým inžinierom:

  • Automatizujte a štandardizujte infraštruktúru, ktorú aplikácie používajú
  • Prepojte procesy nasadenia a vývoja bez toho, aby ste obmedzovali samotných vývojárov
  • Zabezpečiť, aby spustenie, auditovanie a zabezpečenie XNUMX. služby, funkcie, aplikácie alebo celého zásobníka nebolo o nič zložitejšie ako prvé.

Aký je však rozdiel medzi platformou OpenShift 4 a jej predchodcami a od „štandardného“ prístupu k riešeniu takýchto problémov? Čo poháňa rozsah implementačných a operačných tímov? Vzhľadom k tomu, že kráľom v tejto situácii je klaster. takže,

  • Uisťujeme sa, že účel klastrov je jasný (Vážený mrak, zobral som tento klaster, pretože som mohol)
  • Existujú stroje a operačné systémy, ktoré slúžia klastra (Vaše Veličenstvo)
  • Spravujte stav hostiteľov z klastra, minimalizujte ich prestavbu (drift).
  • Pre každý dôležitý prvok systému je potrebná opatrovateľka (mechanizmus), ktorý bude problémy sledovať a odstraňovať
  • Zlyhanie *každého* aspektu alebo prvku systému a súvisiacich mechanizmov obnovy sú bežnou súčasťou života
  • Celá infraštruktúra musí byť nakonfigurovaná cez API.
  • Na spustenie Kubernetes použite Kubernetes. (Áno, áno, to nie je preklep)
  • Inštalácia aktualizácií by mala byť jednoduchá a bezproblémová. Ak inštalácia aktualizácie vyžaduje viac ako jedno kliknutie, zrejme robíme niečo zle.
  • Monitorovanie a ladenie akéhokoľvek komponentu by nemalo byť problémom, a preto by malo byť jednoduché a pohodlné aj sledovanie a reportovanie v rámci celej infraštruktúry.

Chcete vidieť možnosti platformy v praxi?

Pre vývojárov je k dispozícii ukážková verzia OpenShift 4. Pomocou ľahko použiteľného inštalačného programu môžete spustiť klaster na AWS nad Red Had CoreOS. Ak chcete použiť ukážku, potrebujete iba účet AWS na poskytovanie infraštruktúry a sadu účtov na prístup k obrázkom ukážky.

  1. Ak chcete začať, prejdite na stránku try.openshift.com a kliknite na „Začíname“.
  2. Prihláste sa do svojho účtu Red Hat (alebo si vytvorte nový) a podľa pokynov nastavte svoj prvý klaster.

Po úspešnej inštalácii si pozrite naše návody Tréning OpenShiftzískať hlbšie pochopenie systémov a konceptov, vďaka ktorým je platforma OpenShift 4 tak jednoduchým a pohodlným spôsobom, ako spustiť Kubernetes.

Vyskúšajte nové vydanie OpenShift a podeľte sa o svoj názor. Zaviazali sme sa, že práca s Kumbernetes bude čo najprístupnejšia a najjednoduchšia – budúcnosť NoOps začína dnes.

Teraz pozornosť!
Na konferencii DevOpsForum 2019 20. apríla jeden z vývojárov OpenShift, Vadim Rutkovsky, usporiada master class – rozbije desať klastrov a prinúti ich opraviť. Konferencia je platená, ale s propagačným kódom #RedHat získate zľavu 37%.

Master class od 17:15 - 18:15 a stánok je otvorený celý deň. Tričká, čiapky, nálepky - obvyklé!

Hala č. 2
"Tu je potrebné zmeniť celý systém: opravujeme poškodené klastre k8s spolu s certifikovanými mechanikmi."


Zdroj: hab.com

Pridať komentár