O čem se tu budeme vlastně bavit?

Tak jsem se rozhodl, že začnu experimentovat s Kubernetes. Proč vlastně s Kubernetes, co je to Docker, a jaký to má všechno smysl?

Pokusím se odpovědět popořadě, ne každý má zkušenosti s vývojem aplikací ve větším měřítku, myslím tím aplikací, které mají fakt vliv. Tam kde potřebujete aplikaci nějak postupně aktualizovat na produkci, nejlépe za chodu, aplikaci, kterou potřebujete udržovat co nejvíce stabilní a funkční.

Ono to vlastně není jen tak, zpravidla vývoj potřebuje aplikaci nějak vyvinout, otestovat, odzkoušet v nějaké betě, a potom dát na produkci. Tomu se říká zjednodušeně “Continuous integration”. Dnes je moderní agilní vývoj, a vlastně není důvod, proč by klasické “operations” mělo nasazovat nějakou verzi 10.0, a pak verzi 11.0 jako v době Windows 95, a pak třeba Windows 98, ale prostě více logiky dává nasazovat postupné aktualizace, ostatně tak to máme už ve Windows 10.

Ovšem jak na to? Základem je si uvědomit, že tu máme i moderní vývojové trendy, jako třeba mikro služby. Micro services jsou služby, kde jednotlivé části aplikace mezi sebou komunikují pomocí nějaké sběrnice (XML-RPC) nebo message brokera (RabbitMQ). Aplikace je poté rozdělena na několik menších částí, které je možné vyvíjet odděleně.

Výhoda je ta, že pokud zjistíte, že u auta potřebujete nové světlo, tak jako dosud nesestavujete celé nové auto (tedy celou aplikaci), ale vytvoříte pouze ono světlo (službu), a vyměníte pouze tuto část aplikace, což je mimo jiné ona kontainerizacece v Dockeru.

O tom vlastně je celé Kubernetes, že máte kompletní prostředí pro aplikaci rozsekanou na kousky v podobě kontainerů, které jsou ve vývojových, testovacích, preview a produkčních verzích. Výhoda je zřejmá, celý vývoj máte tak nějak více pod kontrolou a můžete pravidelně aktualizovat jednotlivé verze aplikace a velmi jednoduše nasazovat přes docker repozitáře na produkci.

Že je to pro vás španělská vesnice? Nebojte, postupem času se dostaneme více do detailů a projdeme si mnohé zajímavosti.