Vše, co byste měli vědět, než vyzkoušíte Kubernetes

by Štěpán Kaiser
0 Comments

V dnešní době spousta společností používá Kubernetes pro orchestraci kontejnerů a říkal jsem si, že by mohlo být zajímavé podívat se na to, co vám přináší kontejnery samotné - tj. ještě předtím než se do všeho vloží právě Kubernetes.

Vsadím se, že jste už slyšeli o Kubernetes. A vsadím se, že si mnoho z vás (stejně jako poprvé já) googlilo, co to přesně znamená a k čemu Kubernetes slouží. “Kubernetes jsou nástroj pro orchestraci kontejnerů.” stojí v definici. No jo, ale co jsou to kontejnery? 

Co je to kontejner?

Kontejner je logický “balíček”, který obsahuje vše, co aplikace (jakékoliv velikosti) potřebuje k tomu, aby běžela (např. aplikace jako taková, její závislosti, knihovny, konfigurační soubory, atd.) 

Ke kontejnerům nás vlastně dostal docela logický evoluční cyklus:

  • Zhruba v 90. letech bylo běžné používat fyzické servery, na kterých aplikace běžely
  • S příchodem nového milénia byla vymyšlena virtualizace. Na jednom fyzickém železe šlo konečně rozjet větší množství  virtuálních strojů.
  • A kolem roku 2013 přišly kontejnery.  Díky kterým dnes už nevirtualizujeme celé stroje, ale pouze aplikace (spolu se vším, co k běhu potřebují). Kontejnery neobsahují OS image a jsou proto  mnohem menší, snáze přenositelné a flexibilnější.

Kontejnery jsou tedy naprosto nezávislé na prostředí, ve kterém  běží. Můžete tedy vzít kontejner s vaší aplikací a bez problémů ho rozjet v prostředí AWS, GCP, Azure, ve vašem datovém centru nebo klidně na vašem laptopu. Tato skutečnost s sebou přináší spoustu výhod, protože se vývojáři mohou soustředit  hlavně na vývoj aplikací a (v ideálním případě) je jim jedno, kde a jak jejich aplikace poběží.

Co mi takový kontejner může přinést?

 

Nezávislost asvobodu 

Jak již bylo zmíněno, obrovská síla kontejnerů tkví  v tom, že je můžete spustit kdekoliv. Velmi populární jsou dnes hybridní setupy infrastruktury - to znamená, že část vašich aplikací běží ve vašem soukromém datacentru a část v public cloudu. Momentálně pro toto hybridní řešení neexistuje  lepší postup než “kontejnerizovat” vaše aplikace. Google nedávno přišel s nástrojem Anthos, který vám přesně toto umožňuje.áte zde jeden interface pomocí kterého spouštíte kontejnery kdekoliv. 

Z kontejnerů budou mít radost i vaše Ops (DevOps) týmy. Nebudou totiž muset řešit, , kde kontejner nasadí. Toto řešení je komfortní i pro samotné  developery. Vývojář si totiž kontejner může úplně klidně pouštět u sebe na laptopu (Sandbox).

 

Efektivní využitelnost zdrojů - transparentní náklady

Kontejnery jsou oproti klasickým virtuálním strojům malé (tedy většinou -  je samozřejmé, že pokud do kontejneru zabalím obrovský monolith, bude i kontejner taky velký) a vyžadují mnohem méně zdrojů (paměť, CPU). Z toho plyne, že můžete velmi efektivně využívat vaše fyzické zdroje - na jeden server můžete poskládat kontejnery tak šikovně, abyste dostupné zdroje maximálně využili a měli minimum železa na které se jen práší.

 

Agilita - efektivita - stabilita

Pokud zmiňuji agilitu a rychlost - mám na mysli dvě věci: agilita a rychlost samotných kontejnerů a zároveň agilita a rychlost lidí, kteří s kontejnery pracují. 

  • Kontejnery jsou štíhlé a tím pádem  (lightweight container) se dají velmi rychle nastartovat (či zabít), lze je  rychle replikovat (nebo-li horizontálně škálovat) nebo patchovat. 
  • Týmy, které s kontejnery pracují (ať už je vyvíjí nebo je provozují) mohou být nezávislé věnovat méně času debuggingu a opravám. 

Všechno to napomáhá rychlejšímu a efektivnějšímu vývoji, rychlejšímu odbavování požadavků businessu, snazšímu provozu aplikací a stabilnější infrastruktuře, která je schopna reagovat na  časté změny - ať už změnou myslím časté vydávání nových verzí nebo třeba proměnlivý traffic.

A navíc..Kontejnery adoptovali velcí globální hráči jako Google, Netflix nebo třeba Twitter -  a to už o něčem vypovídá.

Na závěr bych ještě rád poznamenal, že síla kontejnerů roste s:

  • Možností kontejnery horizontálně škálovat (replikovat je)
  • Rozdělením infrastruktury na menší celky

Ve výsledku pravděpodobně nezůstanete u jednoho kontejneru a na to už potřebujete řešení, které je bude řídit/orchestrovat.  A tím se dostáváme zpět ke Kubernetes, které přesně tuto funkci splňují. Více o Kubernetes se dozvíte v mém předchozím článku zde.



Štěpán Kaiser

Štěpán Kaiser

Štěpán is responsible for ensuring that all our clients are satisfied with our services. In Revolgy, he is also responsible for our global sales team - he's trying to make their work easier and remove various obstacles in their working lives.

Posts by Topic