Jakou zvolit edici VMware Tanzu pro Kubernetes prostředí

Už mi stačí jen několik prvních úvodních otázek a dokážu si naše zákazníky docela dobře zaškatulkovat. Samozřejmě párkrát se spletu, ale o to je to zábavnější a poučnější, minimálně pro mě. Ve své podstatě je několik kategorií, do kterých si zákazníky dle požadavků na K8s prostředí zařazuji. Jsou to třeba zákazníci, kteří teprve nedávno slyšeli o kontejnerech a Kubernetes. Ti hledají cestu, jak se zorientovat a jak začít používat Kubernetes. Pravděpodobně jim někdo poradil, že další krok v kontejnerizaci je právě K8s. Musím se přiznat, že tento typ zákazníků mám rád, nemají vytvořené špatné návyky nebo postupy a je radost jim předat zkušenosti a společně vytvářet funkční řešení na míru. Pak jsou to lidé, kteří již nějaké zkušenosti mají a hledají způsob, jak nejlépe využít stávající Kubernetes clustery a jak optimalizovat své kontejnery nebo způsob jejich nasazení. S těmi hovoříme o tom, že existuje něco jako DevSecOps a zde se otevírá mnoho cest a témat. V neposlední řadě to jsou velcí a velmi zkušení kolegové, se kterými řešíme architekturu aplikací, optimalizací CI/CD pipeliningu, service mesh nebo technické a ekonomické aspekty provozu aplikací napříč cloud prostředími.  

Mám za to, že VMware vyšel z podobných zkušeností, když vytvářel jednotlivé edice své implementace Kubernetes, multicloud přístupu a CI/CD nástrojů, které nazval jedním jménem – Tanzu.  Vlastně bych to asi udělal podobně a dává mi to smysl a vidím v tomto přístupu podobné myšlení, vycházející ze zkušeností.   

VMware Tanzu je primárně nabízen ve třech edicích: Basic, Standard a Advanced na které se podíváme. Ano, můžete se setkat i s dalšími edicemi jako je Tanzu Kubernets Grid Integrated, ty pro jejich okrajovější použití dnes ponechme stranou. Stejně odhaduji jejich budoucí zánik způsobem postupného začlenění do výše zmíněných edic. Pojďme se tedy na ně podívat, a řekněme si, k jakým účelům jsou vhodné. Jen ještě zmíním důležitý fakt, že vyšší edice vždy obsahuje set technologií a vlastností té nižší, které rozšiřuje. 

Z nadhledu je rozdělení intuitivní. Je vidět jak s rostoucím množstvím kontejnerů, počtů K8s clusterů a potřebou automatizovat nasazení aplikací se uzpůsobuje daná edice Tanzu. 

Graphical user interface Description automatically generated

Když se podíváme trochu detailněji na jednotlivé edice

Tanzu Basic  – Vytváření K8s clusterů a základ DevOps  

Jednoduchý pohled na edici je takový, že se zde integruje Kubernetes do prostředí vSphere. Je to prostě základ. Potřebujete vytvářet K8s clustery, obdobně jak jste zvyklí v prostředí veřejných cloudů? Tedy rychle, s volbou velikosti a výkonu, s jistotou, že bude vždy k dispozici aktuální verze a je postaráno o možnosti upgradu. Prostě chcete se starat o Kuberenets clustery, tak snadno jako o virtuální servery. Tak Tanzu edice Basic cílí přesně na vás.   

Nenechte se však zmást názvem Basic. Tanzu v této edici integruje do vSphere velké množství know-how, velmi pokročilých technologií a podpory. Jen popis toho, co vše se je naprogramováno, vyvinuto nebo integrováno do vSphere a vmkernelu by vydalo na samostatnou knihu. Kubernetes je poměrně komplexní systém a jeho nástroje pro automatizaci nasazení také. V tomto ohledu VMware výrazně přispěl ke zjednodušení práce administrátorům při denní správě K8s clusterů.  

Stejně tak přináší jednoduchost a snadnost vývojovým teamům při vytváření svých prostředí, bez nutnosti obtěžovat sysadminy při vytváření clusterů. VMware integroval do nativního nástroje kubectl schopnost zavolat vSphere a požádat o vytvoření clusteru.  

Vypadá to tak, že vývojový team si v YAML souboru nadefinuje požadovanou charakteristiku clusteru a tu pomocí běžného příkazu kubectl apply -f muj-cluster.yaml vytvoří. Jednoduché a velmi praktické a bez nutnosti vytvářet tickety na provozní oddělení.  

Table 1: ukázka YAML soubor pro vytvoření K8s clusteru ve vSphere 

Tanzu Standard 

S tím, jak vám budou růst počty vašich K8s clusterů. A to, že budou a neskončíte jen u jednoho je skutečnost. S tím, jak je v Tanzu jednoduché a rychlé vytvoření clusterů přijdete na to, že přirozeně vytváříte stagingy tedy clustery pro testy, vývoj apod. Po chvíli zjistíte, že vaši externí dodavatelé potřebují také své clustery a to nepočítám DMZ apod. S tím jak porostete, tak budete potřebovat vytvořit a spravovat clustery, také ve veřejných cloudech.  A najednou bude mít Kubernetes clusterů fakt hodně a ani se nenadějete. V tuto chvíli začnete potřebovat edici Standard s nástrojem Tanzu Mission Control. 

Table 2: VMware Taznu Mission Control 

A screenshot of a computer Description automatically generated

Tanzu Mission Control zajistí správu množství K8s clusterů napříč různými prostředími, včetně kontroly verzí, stavu záloh, nasazených bezpečnostních politik a jejich pravidelnou kontrolu, zda se dodržují. Dokáže se napojit na centrální správu identit (AD, LDAP, nebo využít SAML). Prostě od určité velikosti prostředí nebo jeho multiclodovosti se bez centrálního pohledu na stav vaší infrastruktury neobejdete, jinak nastává chaos a pak se špatně zajišťují SLA, auditing nebo shoda s firemními nastaveními. 

Tanzu Advanced 

Rozdíl mezi edicemi Basic a Stadard není úplně velký. To se mění s edicí Advanced. Z pohledu Kubernetes technologie, se děje velký skok v podpoře síťování a loadbalancigu a další velkou přidanou hodnotu přináší nadstavbové nástroje doplňující CI/CD pipeline.  

Zaměření edice Advanced je právě v nástrojích pro automatizaci vývoje, kontejnerizace a nasazení aplikací. Pojďme se v rychlosti podívat k čemu jsou, a trochu si popišme ty nejdůležitější.  Zde také platí, že tento výčet je přehledový a každá z technologií má potenciál na mnoho blogů a článků.  

Spring Runtime – Nástroje pro vyvoj software 

VMware vlastní framework Spring a plně podporuje jeho vývoj. Pokud tedy vyvíjíte v tomto prostředí, získáte s Tanzu Advanced plnou komerční podporu pro běhová prostředí. 

VMware Tanzu Build Service for Tanzu Advanced  

Vytvářet manuálně nebo nějak automatizovaně kontejnery pomocí Docker souborů lze jen do určité míry velikosti a rychlosti. S tím, jak stoupá množství aplikací, microservices, změn, a úprav v podkladových images je potřeba co nejvíce automatizovat vytváření kontejnerů.  

VMware zde spojuje technologii buildpackůkpack a dalších do systémů do celku, který když zaznamená změnu v kódu, podkladovém systému tak automaticky vytvoří OCI kompatibilní container a umístí ho do registry. 

Cílem je odstranit docker files, které od určitého množství je velmi obtížné udržovat a spravovat a automatizovat vytváření kontejnerů na základě externích změn.  

Pokud máte automatizovány integrační testy toto je další krok k plně funkční CICD pipeline.  

VMware Tanzu Service Mesh 

ServisMesh je princip nastavení komunikace mezi mikroslužbami. Tanzu nabízí vlastní implementaci založenou nad opensource nástroji, které velmi zajímavě rozšiřuje o centrální správu, bezpečnost a nasazení aplikace napříč mnoha K8s clustery.  

VMware NSX Advanced Load Balancer Enterprise 

Díky nedávné akvizici Avi Networks, je možné použít velmi pokročilý LoadBalancer pro K8s prostředí. V edici Basic a Standard je nabízena možnost loadbalancigu nad integrovanou technologií HAproxy nebo NSX Advance Load Balanceru Essentials. Na rovinu, v těchto edicích se vyplatí použít integrovanou HAproxy, protože Essentials verze je opravdu velmi funkčně osekaná.  

To však neplatí o verzi Enterprise, která naopak se směle staví proti zavedeným značkám v oblasti loadbalancigu, je zde je v mnoha ohledech lepší volbou.  

Jednoznačně jeden z důležitých bodů, proč zvážit investici do verze Advanced. 

VMware Tanzu Observability by Wavefront 

Dohled a monitoring nad K8s prostředím je v nižších verzích pokryt integrací metrik do systémů Prometheus a Grafana. Ve verzi Advanced přichází možnost využít velmi pokročilý a kvalitní nástroj pro monitoring K8s prostředí a stejně tak i provozu a chování aplikací. Tím se získá skutečně celkový přehled nad provozovanými systémy a je jednodušší hledat slabá nebo problematická místa. K tomu pomáhá i zabudovaná umělá inteligence.  

Ve skutečnosti verze Advance přináší více technologií, než jsem zde vypíchl. Na všechny se můžete podívat v rozdílové tabulce na oficiálních stránkách dokumentace.  

Závěrem 

Často s našimi zákazníky diskutujeme nad tím, zda se vyplatí jít do nějaké předpřipravené edice nebo je ekonomicky a technicky výhodnější si najít „bezplatnou“ alternativu.  Můj pohled a doporučení je jednoznačné. Použijte to, co již někdo vyvíjí a je standardem. Protože pokud půjdete do podpory vlastních řešení a implementace tak to budete muset „vyztužit“ a podepřít lidskou silou, které prostě nikdy není dostatek. Pokud to opravdu s Kubernetes myslíte produkčně vážně, je využít podporované, udržované systémů a hlavně inovované produkty. Je jedno zda hovořím teď o Tanzu nebo produktech v cloudu různých providerů. Možná, zde vstupní investice budou vyšší, ale ze středně dobého hlediska jsou zkušenosti takové, že se to vyplatí.  Chci tím říci, že kvalitní lidi budete potřebovat vždy. Nechte si však jejich mozky na kreativní práci kolem DevOps kultury, CICD pipliningu nebo vývoje aplikací. Vytváření K8s clusterů a jejich provoz už je lepší koupit vytvořené. Vyjde to na konci dne levněji a vy se můžete soustředit na důležité aspekty vašeho podnikání.