Radek Rous: Očekáváme větší adopci Dockeru a Kubernetes mezi velkými firmami
Rozhovor s expertem na Docker a Kubernetes
Rychlost vývoje softwaru se neustále zvyšuje a požadavky na flexibilitu a škálovatelnost aplikací jsou vyšší, než kdy dříve. Kontejnerizace a orchestrace aplikací se stávají klíčovými technologiemi pro vývojáře a DevOps inženýry po celém světě. Kubernetes a Docker jsou v čele vývoje a přinášejí revoluční změny ve způsobu, jakým jsou aplikace vyvíjeny, nasazovány a spravovány. V dnešním článku se na tyto technologie zeptáme Radka Rouse, odborníka v oblasti softwaru a lektora kurzů zaměřených na Docker a Kubernetes.
Radek Rous
Radek Rous je Lead Software Developer ve společnosti RIGANTI s.r.o. a zároveň působí jako Software Team Lead v ITIXO s.r.o., kde se věnuje návrhu softwarové architektury, technické analýze, mentoringu a implementaci v .NET. S více než osmi lety zkušeností v oboru má Radek hluboké znalosti vývoje webových a mobilních aplikací, DevOps a samozřejmě v kontejnerizaci a orchestraci aplikací.
Docker a Kubernetes
Docker a Kubernetes redefinují pravidla vývoje softwaru, zvyšují efektivitu a umožňují rychlý vývoj a nasazení aplikací v jakémkoli měřítku. Mohou výrazně ovlivnit celkovou strategii vývoje softwaru a posunout hranice toho, co je možné.
Ať už jsi vývojář hledající zlepšení svých workflow, DevOps inženýr s motivací zefektivnit nasazování a správu aplikací, nebo technický leader hledající inovativní řešení pro výzvy současného softwarového vývoje, Docker a Kubernetes nabízejí odpovědi na mnohé otázky. Radek se dnes podělí o své bohaté zkušenosti, perspektivy na budoucí vývoj těchto technologií a rady pro vývojáře, jak začít s Dockerem a Kubernetes.
V rozhovoru s Radkem se dozvíš, jaké jsou klíčové koncepty a best practices pro práci s těmito technologiemi, jaké chyby se vývojáři nejčastěji dopouštějí a jak je předejít, a jak Docker a Kubernetes mohou být využity k dosažení vyšší efektivity a lepšího výkonu aplikací. Radek také nabízí perspektivu na budoucí vývoj v oblasti kontejnerizace a orchestrace, zdůrazňuje význam neustálého učení a adaptace na nové technologie a praktiky v rychle se měnícím světě IT.
Kdy jste se poprvé dostal k technologiím Docker a Kubernetes?
S Dockerem jsem se setkal už dlouho zpátky, dalo by se říci téměř v jeho úplných počátcích. V té době bylo standardem hostovat si aplikace na on-prem serverech, maximálně s virtualizací, a cloud byl také v plenkách. Měli jsme ve firmě několik projektů, kde jsme s kontejnery experimentovali a nebo jsme se Docker snažili použít pro setup vývojářského prostředí.
S Kubernetes jsem poprvé pracoval až později, řekl bych přibližně tři roky zpátky. Převzal jsem technickou část organizace Update Conference Prague, což je největší .NET vývojářská konference v Praze. Její weby a další systémy jsou provozované v Kubernetes. Díky tomu jsem se začal věnovat konfiguraci dalších aplikací a obecně správě Kubernetes.
Co vás na práci s Dockerem a Kubernetes nejvíce baví?
Docker je pro mě synonymem pro konzistenci, opakovatelnost. Například automatizované buildy aplikací si už téměř nedovedu představit jinak. Na Kubernetes mám zase nejradši spolehlivost při provozu - oproti provozování kontejnerů na vlastní pěst je to úplně někde jinde.
Jak byste lajkovi vysvětlil, co to znamená pracovat s technologiemi jako je Kubernetes?
Vysvětlit to úplnému lajkovi je poměrně těžký úkol. Na pochopení je potřeba alespoň základní pojem o tom, co znamená provozovat aplikaci. Pomocí Dockeru si připravíme kontejnery s našimi aplikacemi - to jsou zapouzdřené „krabičky”, které umí běžet v izolaci mají velmi přesné vyspecifikováno, jak komunikují s vnějším světem. Kubernetes je pak nástroj, kterému tyto krabičky dáme a on se o ně dokáže postarat - umí mezi ně rozdělovat výpočetní výkon, nastartovat jeden kontejner vícekrát v případě velkého vytížení, sdílet mezi nimi konfiguraci a tak dále.
Jaké jsou nejběžnější chyby, kterých se vývojáři dopouštějí při práci s Dockerem a Kubernetes, a jak jim lze předejít?
Setkal jsem se s tím, že vývojáři často spouští kontejner v privilegovaném režimu, což do určité míry maže výhody kontejnerizace. Často je to z lenosti nebo nedostatku znalostí. Co se ale může zdát jako rychlé vyřešení problémů, může později způsobit problémy mnohem větší.
Další častou chybou je například spouštění více aplikací v tom samém kontejneru.
Můžete sdílet příklad, kde Docker a Kubernetes výrazně pomohly ve vašem projektu?
Například na projektu zmiňované konference, kde jsou desítky webů, video portál, CMS, e-shop a k tomu všemu několik microservices - provozovat toto „po staru” by bylo velmi náročné a umím si představit hromadu problémů, kterých jsme byli díky Kubernetes ušetřeni.
Jaké technologie doporučujete kombinovat s Dockerem a Kubernetes pro efektivní vývoj?
Základ je přívětivý a pohodlný code editor - za mě ideální VS Code, nicméně jde spíše o to, aby na něj byl člověk zvyklý. V poslední době se jako přínosný pomocník ukázal GitHub Copilot. Pak už jen oblíbená příkazová řádka, za mě PowerShell ve Windows Terminálu s rozšířením OhMyPosh, a to je všechno co potřebujeme.
Co byste doporučil jako první krok pro ty, kteří se chtějí naučit Kubernetes?
Naučit se Docker.
Jak vidíte budoucnost vzdělávání v oblasti Dockeru a Kubernetes, jaké dovednosti by měli vývojáři rozvíjet?
Budoucnost je v tom veliká. Microservices řešení se rozmáhají čím dál tím více a to jde v podstatě ruku v ruce s kontejnerizací a potřebou kontejnery někde provozovat.
Řekl bych, že je důležité snažit se zůstat v obraze s nejnovějšími technologiemi a poznatky, tedy „jít s dobou” a neusnout v minulosti. I Docker a Kubernetes se stejně jako jiné nástroje vyvíjí a mění a je potřeba se adaptovat a novinek využít.
Jaký je váš oblíbený nástroj nebo funkce v Kubernetes a proč?
Za mě jsou to rozhodně Helm charts. Přestože jsem schopný při jejich nastavování pořádně zanadávat. Je to velká pomoc pro řešení s velkým množstvím aplikací, které potřebujeme dostat do Kubernetes. Šablony a sdílení konfigurace pro jednotlivé deployment definice ušetří hromadu práce, protože velká část těchto definic je pro všechny aplikace v řešení stejná, nebo velmi podobná. Díky Helm charts pak můžeme upravovat jednu šablonu místo desítek yaml definic.
Jaký trend v oblasti kontejnerizace a orchestrace očekáváte v nejbližších letech?
Vzestup a ještě větší adopci. Prozatím to většinou byly pouze „technical pioneers”, kdo tyto technologie adoptovali a začali ve větší míře používat. Nyní se tím postupně začínají zabývat i velké firmy, které často modernizují svá původní řešení.
Máte nějaké triky nebo tipy pro efektivní využití Dockeru a Kubernetes, které byste mohl sdílet?
Nesnažte se provozovat Docker kontejnery po svém, nebude to tak spolehlivé a bezstarostné jako s použitím orchestrátoru. Používejte automatizované pipeliny pro build a nasazení a ušetřete si čas, problémy a bolest hlavy.
Inovace a spolupráce s Dockerem a Kubernetes
Docker a Kubernetes nejsou jen o technologiích; jsou to platformy, které umožňují vývojářům a DevOps inženýrům spolupracovat, sdílet znalosti a inovovat ve způsobu, jakým jsou aplikace vytvářeny, nasazovány a spravovány. Tato spolupráce přináší stálý tok nových myšlenek a řešení, klíčových pro růst a rozvoj v oblasti softwarového inženýrství.
Docker a Kubernetes poskytují mocné nástroje pro zefektivnění vývojového cyklu, umožňují rychlejší reakci na tržní požadavky a nabízí nekonečné možnosti pro škálování a správu aplikací. Vstup do světa kontejnerizace a orchestrace otevírá dveře do budoucnosti softwarového vývoje, kde flexibilita, efektivita a inovace jsou na prvním místě.
Naskoč na budoucnost softwarového vývoje
Přidej se k Radkovi a objev možnosti, které Docker a Kubernetes nabízejí. Ať už jsi začínající vývojář, zkušený DevOps inženýr, nebo technický leader hledající způsoby, jak inovovat a zefektivnit procesy v organizaci, znalost Dockeru a Kubernetes je klíčová pro profesní cestu.
Pod vedením experta s hlubokými znalostmi a vášní pro obor se můžeš těšit na cestu plnou objevů a učení, které tě provedou od základů kontejnerizace a orchestrace aplikací po pokročilé techniky a best practices. Je to šance stát se součástí komunity, která formuje budoucnost softwarového inženýrství.
Připrav se na budoucnost a objev svůj potenciál v dynamickém světě softwarového vývoje. Začni svou cestu s Dockerem a Kubernetes ještě dnes a staň se součástí nové generace softwarových vývojářů a inženýrů.
Autor: Jan Bílek