Kontejnerizace cloudu a nástup technologie Kubernetes jako nutnost k přežití
Novým hitem v oblasti cloudu se stala kontejnerizace jako metoda zkrocení enormně rychlého rozvoje virtualizace a digitalizace. V tomto rozhovoru se dozvíte, co jsou kontejnery, jakým způsobem pomáhají zkrotit prostředí multicloudu a proč je technologie Kubernetes absolutní nutností. Na naše otázky ohledně kontejnerizace cloudu odpovídal Vojtěch Morávek, Chief Innovation Officer ve společnosti Geetoo.
Co přesně je kontejnerizace a jaké výhody přináší?
Kontejnerizace je v IT již docela zaběhnutá technologie pocházející z UNIX systémů osmdesátých a devadesátých let. Je to způsob, jak oddělit jednu aplikaci od druhé tak, aby si každá z nich myslela, že má celý počítač pro sebe.
Nicméně z dnešní perspektivy se kontejnerizace začala prosazovat tak před deseti lety. Důležitým mezníkem jejího rozvoje a popularizace byl masivní rozvoj služeb velkých společností jako Google Mail, kdy bylo potřeba bleskově reagovat na vývoj a škálovat výkon s využitím mnoha serverů.
Postupně se tento tlak na rychlost vývoje aplikací a přidávání nových funkcí přelil do všech oblastí podnikání, kde jsou potřeba aplikace.
Proč se tento přístup prosazuje až teď?
Stávající vývojové postupy, vývoj takzvaných monolitických aplikací, začaly být pomalé a bylo nutné aplikaci rozdělit do menších celků, které jdou vyvíjet zvlášť a lze je tak budovat jiným tempem nebo na základě rozdílných postupů. Těmto částem dnes říkáme microservices a je vhodné je umístit do kontejnerů.
Jakým způsobem se dnes kontejnery vytváří?
Jak roste množství malých aplikací, a tedy i kontejnerů, tak je stále složitější a náročnější celou strukturu ručně udržovat v provozu. Kubernetes je technologie, která dokáže nasadit a zajistit provoz vskutku velkého množství kontejnerů a bez jejíž pomoci by je v dnešní podobě nešlo provozovat.
Jedna aplikace muže obsahovat desítky, ale i stovky kontejnerů. A to nepočítám různé verze jedné aplikace. Každý kontejner lze pomocí Kubernetes dále škálovat a zveřejňovat jeho další verze. Komplexita těchto změn je již nad síly ručního ovládání.
Co nabízí Geetoo klientům ve vztahu ke kontejnerizaci?
V Geetoo zákazníkům nabízíme vlastní spravované Kubernetes a s produkčním provozem aplikací nad touto mladou technologií máme více než čtyřleté zkušenosti, takže s ní pracujeme takřka od jejího vzniku. Umíme nabídnout správu Kubernetes nejen u nás v cloudu, ale i kdekoliv jinde, například v on-premise prostředích vlastních datových center klienta nebo v cloudech AWS, Azure a Googlu. Takže podporu od nás lze dostat bez ohledu na to, kde Kubernetes zrovna firma provozuje.
Jaký přístup k nasazení kontejnerů se vám v praxi osvědčil?
V první řadě je u každého zákazníka naprosto odlišná připravenost aplikací i týmů a liší se i míra znalostí. Nicméně komplexita kontejnerových aplikací i Kubernetes je zcela nepopiratelná, takže se zákazníky většinou řešíme celou problematiku od přípravy aplikací až po jejich nasazení a provoz.
Hledáme místa, odkud bude nejlepší začít, a následně se snažíme určit hranice, kde my převezmeme odpovědnost, aby se zákazník cítil komfortně a bezpečně. Tyto hranice určujeme podle klienta, někdy přebíráme odpovědnost za celou cestu aplikace ke kontejnerizaci včetně bezpečného nasazení a provozu, ale stejně tak máme projekty, kde se na nás obrací týmy až ve chvíli, kdy se samy dostanou do nesnází a neobejdou se bez naší expertízy s Kubernetes a DevOps.
Můžete uvést příklad klienta, kterému jste pomohli s nasazením Kubernetes?
Příkladů máme mnoho, vypíchnul bych ale spolupráci s pojišťovnou Kooperativa. Je to téměř ukázkový případ toho, jak zrychlující se požadavky na vývoj změnily pohled na potřeby IT a jak jsou interní i externí programátorské týmy tlačeny do rychlosti, flexibility a dynamičnosti.
Společně s IT týmy Kooperativy jsme vybrali a nasadili nejvhodnějším způsobem technologii Kubernetes. Zaškolili a předali jsme znalosti ohledně používání této platformy. Navázali jsme kontakt s jejich vývojáři, se kterými jsme připravili a kontejnerizovali aplikace a následně vytvořili základ DevOps strategie, kterou v současné době dále rozvíjíme.
Bude se bez kontejnerizace dát v následujících letech fungovat?
V dnešní době už neexistují dlouhodobé roadmapy vývoje aplikací, jak tomu bylo dříve zvykem. Dnes se programuje ta funkcionalita, která momentálně dává největší smysl. Největší tlak je tedy u vývoje aplikací formou microservices kladen na rychlost. Ačkoliv existují i další motivace jako snadnější přenositelnost nebo využití různých programovacích jazyků v jednom projektu, tak výhoda rozdělení aplikace na menší celky, které budou dodávány různou rychlostí vývoje podle potřeb trhu, bude k přežití absolutně nezbytná.