Průvodce mikroslužbami a ekosystémy kubernetes







José Manuel Flores, inženýr řešení ve společnosti F5
Autor: José Manuel Flores, Solution engineer ve společnosti F5

Vývoj softwaru je proces podobný zahradničení. V obou případech musíte být schopni pochopit, jak různé prvky spolupracují, abyste dosáhli krásného a produktivního výsledku. Stejně tak v zahradnictví i ve vývoji softwaru vznikají spory o tom, jak řešit mnoho aspektů. Jestliže v prvním případě může být protagonisty plevel, ve druhém je to správné rozlišení mezi mikroslužbami a Kubernetes.

Mikroslužby: rostliny v zahradě

Rostliny jsou nejdůležitějším prvkem v zahradě. Jsou to živé organismy, které ji tvoří a přispívají k její kráse a funkčnosti. Podobně jsou mikroslužby hlavními součástmi moderních softwarových aplikací. Jsou to jednotlivé služby, které plní specifické funkce a spolupracují na vytvoření větší, komplexnější aplikace.

Stejně jako rostliny se i mikroslužby liší velikostí, tvarem a účelem. Některé jsou malé a specializované a mají za úkol provést jedinou operaci. Jiné jsou větší a mají na starosti méně specifické úkoly. Navíc mohou být tvořeny skupinou menších komponentů. Například jahodník je malý a produkuje pouze jahody. Je to podobné jako u mikroslužby, která zpracovává pouze transakce kreditními kartami (malé a specializované). Rostlina jako koriandr neprodukuje pouze listy používané v omáčkách a guacamole. Jeho stonky, kořeny a semena jsou také přítomny v pokrmech mnoha kuchyní. Cilantro může být podobné službě, která spravuje autentizaci uživatelů, což je širší a obecnější proces.

Kontejnery: hrnce mikroslužeb

Většinu rostlin je potřeba zasadit do půdy, ze které čerpají živiny a vláhu. Pokud její kořeny necháme na vzduchu, velmi pravděpodobně rychle odumře. Přestože lze rostliny umístit přímo do země, mnoho zahrádkářů dává přednost květináčům, protože jim to umožňuje využít nejvhodnější zeminu pro každou rostlinu a usnadňuje to obranu proti případným škůdcům. Kromě toho mohou rostliny snadněji přemisťovat různými oblastmi zahrady nebo je umístit do skleníku a hledat nejvhodnější světlo nebo teplotu v každém ročním období. Podobně existuje několik možností, pokud jde o hostování mikroslužby, a nejběžnější je kontejner. Mikroslužba v kontejneru má vše, co potřebuje ke spuštění aplikace, a lze ji snadno přesouvat mezi různými prováděcími prostředími.

Kubernetes: zahradní nářadí

Můžeme mít naše mikroslužby (rostliny) v našich kontejnerech (hrncích), ale k jejich nasazení, údržbě a škálování potřebujeme nástroje. Zde vstupuje do hry Kubernetes, platforma, která poskytuje mnoho funkcí a pluginů zaměřených na usnadnění správy a údržby mikroslužeb a je považována za klíčový nástroj pro orchestraci kontejnerů. Kubernetes například poskytuje automatické vyrovnávání zátěže, zjišťování služeb a možnosti samoopravy, což vývojářům šetří práci na údržbě a monitorování. A kdy se očekává, že mikroslužby (závody) budou produkovat více? Kubernetes podporuje nepřetržité aktualizace a automatické škálování, aby aplikace mikroslužeb fungovaly hladce. Zde je třeba vzít v úvahu, že prakticky stejné funkcionality nabízejí i další alternativy Kubernetes, jako je Docker Swarm a HashiCorp Nomad.

Můžeme mít naše mikroslužby (rostliny) v našich kontejnerech (hrncích), ale k jejich nasazení, údržbě a škálování potřebujeme nástroje. Zde vstupuje do hry Kubernetes

Mikroslužby bez Kubernetes: možnost divoké zahrady

Uvedli jsme argumenty pro použití Kubernetes ke správě mikroslužeb a zabránění výpadkům aplikací. Ale Kubernetes a kontejnery nejsou vždy nutné. V závislosti na složitosti aplikace se můžete rozhodnout použít platformu virtuálního nebo dokonce fyzického stroje, kterou lze nasadit nebo zřídit pomocí automatizačních nástrojů. Tyto nástroje neposkytují stejnou úroveň automatizace a škálovatelnosti jako Kubernetes, ale mohou být řešením pro nekomplikované nebo nekritické aplikace. Konečně je zde možnost použití bezserverových platforem (jako je AWS Lambda), které vám umožňují spouštět kód mikroslužeb v reakci na události, aniž byste se museli starat o základní infrastrukturu.

Ne všechno v Kubernetes jsou Microservices

Zkušení zahradníci vědí, že doplňkové výsadby (například měsíčky k rajčatům) vedou k lepšímu využití zdrojů a zdravější zahradě. Stejně tak Kubernetes poskytuje širokou škálu funkcí a pluginů, díky kterým je tato platforma dobrá nejen pro správu mikroslužeb. Kubernetes lze použít pro aplikace bez mikroslužeb (jako jsou modely strojového učení nebo monolity). Mnoho organizací používá Kubernetes ke správě mikroslužeb a dalších aplikací a některé dokonce nasazují virtuální stroje (VM) v rámci Kubernetes. To může být skvělá volba pro organizace, které přecházejí ze starších monolitických aplikací na architekturu orientovanou na mikroslužby.

Dostat se ke kořeni věci

Kromě podpory touhy více navštěvovat parky a zahrady si tento článek klade za cíl uvést na stůl dva problémy:

  • Ne vše nasazené v Kubernetes je mikroslužba. Funkce a doplňky poskytované Kubernetes dělají z této platformy velmi užitečný nástroj v široké škále ekosystémů.
  • Ne vždy je nutné spravovat mikroslužby pomocí Kubernetes. Některé aplikace vzkvétají s alternativními nástroji a přístupy divoké zahrady.




Čerpáme z těchto zdrojů: google.com, science.org, newatlas.com, wired.com, pixabay.com