Novinky

Neobjavujte Ameriku, kontajnery riešte s OpenShiftom

Čím ďalej tým častejšie sa vo svojej práci stretávame s požiadavkami na prevádzku aplikácií v kontajneroch. Nie je to len požiadavka vývojárov, ktorí majú radi všetko nové, ale aj potreba IT prevádzky mať jednotnú platformu, ktorá poskytuje čo najviac priestoru vývojárom pri zachovaní prevádzkových parametrov, najmä v bezpečnosti a dostupnosti. Vďaka kontajnerom je spokojný aj "biznis", pretože nasadenie požadovaných zmien v aplikáciách trvá výrazne kratší čas.

Takýto ideálny scenár však v praxi naráža na niekoľko prekážok. Jednou z nich je nekoordinované nasadenie kontajnerovej platformy. Obvykle s kontajnermi prichádzajú vývojári. A je to pochopiteľné, pretože nainštalovať si Docker a začať tvoriť kontajnery s aplikáciami je veľmi jednoduché a s kontajnerizáciou im odpadnú problémy, s ktorými sa doteraz stretávali. Svoju prácu (nové aplikácie alebo ich úpravy) sú schopní odovzdať formou kódu vrátane prostredia, a to v kontajneri, ktorý je prakticky nezávislý na okolitom svete. Toto riešenie má veľké výhody v podobe prenosnosti medzi rôznymi súčasne bežiacimi prostrediami (firemná infraštruktúra, verejný cloud alebo počítač kolegu) a jasne popísanými závislosťami. Lenže existencia kontajnera nestačí, je nutné ho niekde prevádzkovať, a to už je úloha pre ľudí z IT prevádzky.
 

Zdanlivo správne riešenie

Na základe zadania vývojárov začne IT prevádzka budovať platformu pre prevádzku kontajnerov. Keď si ohmatajú Docker a zamyslia sa nad požiadavkami na túto platformu, musia zákonite dospieť k rozhodnutiu, že je potrebné postaviť platformu, ktorá bude vedieť koordinovať beh veľkého množstva kontajnerov, riešiť ich štartovanie, distribúciu medzi rôznymi servermi a škálovanie aplikácií. A tak siahnu po Kubernetes, platforme pre orchestráciu kontajnerov, ktorý je vyvíjaný pre riešenie týchto požiadaviek.
 
Vzniká tak vysoko dostupná, orchestrovateľná platforma pre prevádzku kontajnerov, závislostí medzi nimi, ich správu a organizáciu. Kontajnerizovaných aplikácií pribúda, platforma rastie a stáva sa z nej dôležitá súčasť firemného prostredia. A objavujú sa ďalšie požiadavky - na strane IT prevádzky rastie potreba štandardného kontajnerového vybavenia ako sú verzie programovacích jazykov alebo nastavenie a zaistenie bezpečnosti, monitoring platformy a škálovanie. Na strane vývojárov sú to požiadavky na automatizáciu CI / CD procesov do platformy. Spoločným menovateľom sú ale rastúce nároky na náročnosť na oboch týchto frontoch. Vývojári chcú rýchlejšie vyvíjať a meniť prostredie, IT prevádzka nestíha ich požiadavky zapracovávať a zároveň udržiavať celú platformu aktuálnu a bezpečnú. Navyše zmeny v nástrojoch pre správu kontajnerov, Kubernetes a ďalších komponentoch prebiehajú veľmi rýchlo a zvyšujú nároky na znalosti a nasadenie pracovníkov IT prevádzky. Celá platforma sa začína nafukovať, jej komplexita rastie a jej závislosť na niekoľkých ľuďoch s vysokou odbornosťou sa stáva horšie udržateľnou až nebezpečnou.
A tu výrazne rastie riziko, že jedného dňa prestane niečo fungovať a človek s odbornou znalosťou nebude v dosahu. V lepšom prípade ho niekto aspoň čiastočne zastúpi, v horšom prípade chyba zasiahne "biznis".
 
 
 

Mýty a fakty

Nespočetne veľa organizácií si pri hľadaní vhodného riešenia kontajnerovej platformy prešlo rovnakou cestou. A tak plne v súlade s princípom otvorenosti sa poučme z doterajších omylov a riaďme sa overenými postupmi. Medzi tie najviac diskutované omyly patrí aj dojem, že komunitné, nepodporované verzie technológií či produktov sú zadarmo. Áno, to síce sú, ale vo výsledku vyjde implementácia výrazne drahšie ako technológie od prevereného, spoľahlivého partnera. Dôvod je jednoduchý, komunitné verzie sa veľmi rýchlo menia, je potreba často vykonávať zmeny v prostredí a aktualizovať. Nie je na koho sa obrátiť, keď je treba, a je tu viac práce s obsahom. Oproti tomu v produkčnej verzii je všetko už pripravené na nasadenie do produkcie vr. vždy dostupnej technickej aj vzdelávacej podpory partnera.
 
Oplatí sa zamyslieť aj nad tým, ako je zvažovaná platforma kompatibilná s inými technológiami. Možnosť voľby a prípadné zmeny použitých nástrojov a využitie všetkého, čo je nielen dnes, ale bude aj v budúcnosti k dispozícii, je úplne zásadné.
 
Stretávame sa aj s názorom, že stačí "mať" len kontajnery bez komplexnejšieho prístupu v podobe spolupráce a integrácie medzi vývojármi a odborníkmi na IT z prevádzky. Napríklad Openshift toto umožňuje, ale ako z praxe vieme, vzájomná závislosť vývoja softvéru a IT prevádzky je nepopierateľná, a tak skôr či neskôr vás potreba DevOps prístupu doženie. Začnite ju radšej uplatňovať hneď od začiatku. Aj tu sú dôvody prosté, len kontajnery s Kubernetes alebo podobné technológie nestačia. Ich použitie nepokryje reálne požiadavky na vývoj a prevádzku aplikácií. CI / CD, Jenkins, Maven, Java, audit, SDN, security, multitenancy - to je len časť tém, ktoré v reálnej prevádzke budete riešiť a iba sofistikovaná platforma vám ich pomôže efektívne orchestrovať. Zároveň pre vývojárov aplikácií sú zaujímavé nové postupy a technológie ako serverless, AI / ML, sprostredkovanie služieb a API ďalším vývojárom atď. V tej chvíli je zaujímavá podpora OpenShiftu pre jednoduchú inštaláciu a prácu s týmito technológiami buď s podporou Red Hatu alebo komunít okolo týchto technológií.
 
 
OpenShift spája všetky tieto aspekty a požiadavky na prevádzku aplikácií v kontajneroch do jedného celku tak, aby uľahčil prácu nielen obom svetom - vývojárom a IT prevádzke, ale predovšetkým umožnil balansovať prevádzku, jednoducho spravovať kontajnery a koordinovať všetky procesy a zároveň mať kontrolu nad celou infraštruktúrou a jej prostriedkami.
 

Autor: Radek Vokal, Senior inžinier manažér, Red Hat

Veracomp Vás má rád

A preto si nenechajte ujsť vychytávky,
ktoré pre vás pripravujeme každý mesiac.

Ďalšie články

RSS

Naši partneri o nás