Toto je první publikace v sérii materiálů, které se zabývají změnami, vylepšeními a doplňky v nadcházející aktualizaci platformy Red Hat OpenShift na verzi 4.0, které pomohou připravit uživatele na přechod na novou verzi.

Od okamžiku, kdy se zástupci teprve se formující komunity Kubernetes poprvé sešli na podzim roku 2014 v kanceláři Google v Seattlu, bylo možné říci, že projektu Kubernetes je souzeno zásadně změnit moderní přístupy k vývoji a nasazení softwaru. Zároveň veřejní poskytovatelé cloudových služeb pokračovali v aktivních investicích do rozvoje infrastruktury a služeb, což výrazně usnadnilo a zjednodušilo práci s IT a vytváření softwaru, a učinilo je neuvěřitelně dostupnými, což si málokdo mohl představit ještě na začátku desetiletí.
Samozřejmě, že oznámení každé nové cloudové služby doprovázela množství diskuzí odborníků na Twitteru, přičemž spory probíhaly na nejrůznější témata — včetně konce éry otevřených zdrojových kódů, zániku IT na straně klientů (on-premises IT), nezbytnosti nové softwarové monopoly v cloudu a o tom, jak nová paradigma X nahradí všechna ostatní paradigma.
Je třeba říci, že všechny tyto spory byly velmi hloupé.
Realita je taková, že nic nikam nezmizí, a dnes můžeme pozorovat exponenciální růst konečných produktů a způsobů jejich vývoje, což souvisí s neustálým příchodem nového softwaru do našeho života. A přestože se všechno kolem mění, v podstatě zůstává vše nezměněno. Vývojáři softwaru budou nadále psát kód s chybami, inženýři provozu a specialisté na spolehlivost budou i nadále nosit pagery a dostávat automatizovaná upozornění v Slacku, manažeři budou stále operovat s pojmy OpEx a CapEx a pokaždé, když dojde k poruše, starší vývojář si povzdechne se slovy: 'Já jsem to říkal'...
Co by se opravdu mělo prodiskutovat, tohle jsou nástroje, které máme k dispozici pro vytváření kvalitnějších softwarových produktů, a jak nám pomáhají zvýšit bezpečnost a usnadnit a zefektivnit vývoj. S rostoucí složitostí projektů se objevují také nová rizika, a dnes je život lidí natolik závislý na softwaru, že se vývojáři musí snažit dělat svou práci lépe.
Kubernetes je jedním z těchto nástrojů. Pracuje se na jejich integraci s dalšími nástroji a službami v rámci Red Hat OpenShift do jediné platformy, která by usnadnila provoz software, zvýšila jeho spolehlivost a bezpečnost pro uživatele.
Berouc v úvahu to, co bylo řečeno, se tým OpenShift ptá na jednu jednoduchou otázku:
Jak usnadnit a zpříjemnit práci s Kubernetes?
Odpověď je překvapivě evidentní:
- automatizovat složité aspekty nasazení v cloudu nebo mimo něj;
- zaměřit se na spolehlivost a přitom skrýt složitost;
- pokračovat v pravidelném vydávání jednoduchých a bezpečných aktualizací;
- usilovat o kontrolovatelnost a auditovatelnost;
- snažit se zajistit vysokou bezpečnost od samého začátku, ale ne na úkor použitelnosti.
Další verze OpenShift by měla zohlednit jak zkušenosti tvůrců, tak zkušenosti jiných vývojářů, kteří ve velkém měřítku nasazují software v největších světových firmách. Navíc by měla brát v úvahu veškeré získané poznatky z otevřených ekosystémů, které dnes tvoří základ moderního světa. Je také nezbytné opustit dřívější mentality amatérských vývojářů a přejít k nové filozofii automatizované budoucnosti. Měla by to být „most“ mezi starými a novými metodami nasazení softwaru a plně využívat veškerou dostupnou infrastrukturu – nezáleží na tom, jestli je spravována největším cloudovým poskytovatelem, či provozována na malých periferních systémech.
Jak dosáhnout takového výsledku?
V Red Hatu je běžné strávit dlouhou dobu plněním nudné a nevděčné práce, aby se uchovalo vzniklé společenství a zabránilo se uzavření projektů, kterých se společnost účastní. V open-source společenství se nachází obrovské množství talentovaných vývojářů, kteří vytvářejí ty nejneobyčejnější věci – zábavné, vzdělávací, otevírající nové možnosti a prostě krásné. Nikdo samozřejmě neočekává, že všichni účastníci budou směřovat jedním směrem nebo sledovat společné cíle. Využití této energie a její přesměrování do správného směru je někdy nezbytné pro rozvoj oblastí, které by byly užitečné našim uživatelům, ale zároveň musíme sledovat vývoj našich společenství a učit se od nich.
Na začátku roku 2018 Red Hat zakoupil projekt CoreOS, který měl podobné názory na budoucnost – bezpečnější a spolehlivější, vytvářené na principech open-source. Společnost pracovala na dalším rozvoji těchto myšlenek a jejich realizaci, uskutečňujíc naši filozofii – snažit se dosáhnout bezpečné funkce veškerého softwaru. Veškerá tato práce se opírá o Kubernetes, Linux, veřejné cloudu, privátní cloudu a tisíce dalších projektů, které tvoří základ našeho moderního digitálního ekosystému.
Nová verze OpenShift 4 bude srozumitelná, automatizovaná a přirozenější.
Platforma OpenShift bude fungovat s nejlepšími a nejspolehlivějšími operačními systémy Linux, s bare-metal hardwarovou podporou, pohodlnou virtualizací, automatizovaným programováním infrastruktury a samozřejmě kontejnery (které jsou v podstatě jen obrazy Linuxu).
Platforma by měla být bezpečná od samého začátku, ale zároveň poskytovat možnost pohodlných iterací pro vývojáře – tedy mít dostatečnou flexibilitu a spolehlivost, a přitom stále umožňovat správcům provádět audit a zajistit pohodlné řízení.
Měla by umožňovat spouštět software „jako službu“ a nezpůsobovat nezvladatelný růst infrastruktury pro operátory.
Umožní vývojářům soustředit se na vytváření skutečných produktů pro uživatele a klienty. Nebudou se muset prodírat houštinou nastavení hardwaru a softwaru, a všechny náhodné komplikace budou minulostí.
OpenShift 4: NoOps platforma, která nevyžaduje údržbu
V Popisovány byly úkoly, které pomohly utvořit vizi společnosti týkající se OpenShift 4. Tým má za cíl co nejvíce zjednodušit každodenní úkoly spojené s provozem a údržbou softwaru, učinit tyto procesy snadnými a bez stresu — jak pro specialisty, kteří se zabývají implementací, tak pro vývojáře. Ale jak se k tomuto cíli přiblížit? Jak vytvořit platformu pro spuštění softwaru, která vyžaduje minimální zásah? Co vlastně znamená NoOps v tomto kontextu?
Pokud se pokusíme abstrahovat, pro vývojáře pojmy „serverless“ nebo „NoOps“ znamenají nástroje a služby, které umožňují skrýt „provozní“ složku nebo minimalizovat tuto zátěž pro vývojáře.
- Pracujte ne se systémy, ale s aplikačními rozhraními (API).
- Nevěnujte se implementaci softwaru – nechte to na poskytovateli.
- Neměli byste se hned pouštět do vytváření velkého rámce – začněte psaním malých fragmentů, které budou sloužit jako „stavební bloky“, snažte se, aby tento kód pracoval s daty a událostmi, ne s disky a databázemi.
Úkol, jako vždy, spočívá v urychlení iterací při vývoji softwaru, poskytnout možnost k vytváření kvalitnějších produktů, a aby se vývojář nemusel obávat o systémy, na kterých běží jeho software. Zkušený vývojář si velmi dobře uvědomuje, že pokud se soustředí na uživatele, situace se může rychle změnit, proto není třeba vkládat příliš mnoho úsilí do psaní softwaru, pokud nejste absolutně přesvědčeni o jeho nutnosti.
Pro odborníky, kteří se zabývají údržbou a provozem, může termín „NoOps“ znít poněkud děsivě. Nicméně během komunikace s provozními inženýry se stává jasným, že vzory a metodiky, které používají k zajištění spolehlivosti (Site Reliability Engineering, SRE), se do značné míry překrývají s výše popsanými vzory:
- Neharmonizujte systémy – automatizujte procesy jejich správy.
- Nevěnujte se implementaci softwaru – vytvářejte pipeline pro jeho nasazení.
- Snažte se nespojovat všechny vaše služby dohromady a nedovolte, aby selhání jedné z nich vedlo k selhání celého systému – rozprostřete je po celé infrastruktuře pomocí automatizačních nástrojů a propojte je s možnostmi kontroly a monitorování.
Odborníci na SRE vědí, že něco může mít problém a oni budou muset problém sledovat a odstraňovat – proto automatizují rutinní práce a předem určují akceptovatelné odchylky (error budgets), aby byli připraveni na stanovení priorit a rozhodování v případě výskytu problému.
Kubernetes v OpenShift je platforma navržená k vyřešení dvou hlavních úkolů: místo toho, aby vás nutila zacházet s virtuálními stroji nebo API rozhraními vyrovnávačů zatížení, pracuje se s abstrahujícími vyššími úrovněmi – procesy nasazení a službami. Místo instalace softwarových agentů můžete spustit kontejnery, a místo psaní vlastního monitorovacího stacku použít již dostupné nástroje v platformě. Takže tajemný ingredience OpenShift 4 ve skutečnosti žádné tajemství nepředstavuje – stačí vzít za základ principy SRE a serverless koncepty a dovést je do logického závěru, na pomoc vývojářům a provozním inženýrům:
- Automatizovat a standardizovat infrastrukturu, kterou aplikace využívají.
- Spojit dohromady procesy nasazení a vývoje, aniž by tím byli omezováni samotní vývojáři.
- Dosáhnout toho, aby spuštění, audit a zajištění bezpečnosti stého servisu, funkce, aplikace nebo celého stacku byly stejně jednoduché jako prvního.
Jaký je tedy rozdíl mezi platformou OpenShift 4 a jejími předchůdci a "standardním" přístupem k řešení podobných problémů? Jak se dosahuje škálovatelnosti pro týmy, které se zabývají implementací a provozem? Odpověď spočívá v tom, že králem této situace je cluster. Takže,
- Udělejme to tak, aby bylo jasné určení clusterů (Drahé cloudové řešení, tento cluster jsem vytvořil, protože jsem mohl)
- Stroje a operační systémy existují proto, aby sloužily clusteru (Vaše Veličenstvo)
- Spravujte stav hostitelů z clusteru, minimalizujte jejich odchylky (drift).
- Pro každý důležitý prvek systému je třeba mít "chůvu" (mechanismus), která bude sledovat a odstraňovat problémy.
- Selhání *každého* aspektu nebo prvku systému by mělo mít odpovídající mechanismy obnovy — to je běžná součást života.
- Celá infrastruktura by měla být konfigurována prostřednictvím API.
- Použijte Kubernetes pro spuštění Kubernetes. (Ano, toto není překlep)
- Aktualizace by měly být instalovány snadno a bez problému. Pokud pro instalaci aktualizace potřebujete více než jedno kliknutí myší, očividně děláte něco špatně.
- Monitorování a ladění jakékoli komponenty by nemělo představovat problém, a tudíž sledování a vykazování celkové infrastruktury by mělo být také jednoduché a pohodlné.
Chcete vidět možnosti platformy v akci?
Předběžná verze OpenShift 4 je nyní dostupná pro vývojáře. Pomocí snadno použitelného instalátoru můžete spustit cluster na AWS nad Red Hat CoreOS. K využití předběžné verze potřebujete pouze účet AWS pro poskytnutí infrastruktury a sadu účtů pro přístup k obrazům předběžné verze.
- Chcete-li začít, přejděte na a klikněte na „Začít“.
- Přihlaste se do svého účtu Red Hat (nebo si vytvořte nový) a postupujte podle pokynů pro nastavení vašeho prvního clusteru.
Po úspěšné instalaci si prostudujte naše výukové materiály , abyste získali podrobnější představu o systémech a koncepcích, které dělají platformu OpenShift 4 tak jednoduchým a pohodlným nástrojem pro spuštění Kubernetes.
Vyzkoušejte novou verzi OpenShift a podělte se o svůj názor. Usilujeme o to, aby práce s Kubernetes byla co nejpřístupnější a bez námahy – budoucnost NoOps začíná už dnes.
A teď pozor!
Na konferenci 20. dubna jeden z vývojářů OpenShift, Vadim Rutkovsky, povede masterclass – rozbije deset klastrů a donutí je opravit. Konference je zpoplatněná, ale s promo kódem #RedHat získáte slevu 37%.
Masterclass bude od 17:15 do 18:15 a stánek funguje celý den. Trička, čepice, samolepky – jako obvykle!
Sál #2
„Celý systém je třeba změnit: opravujeme poškozené k8s klastry společně s certifikovanými techniky.“
Zdroj: habr.com
