Fungování IT v podnicích prochází v současnosti prudkými změnami. V rámci digitální transformace je třeba inovovat způsoby tvorby a poskytování aplikací.
Probíhající digitální transformace se vyznačuje především třemi hlavními trendy. Zaprvé jde o digitalizaci procesů uvnitř organizací a směrem ven k zákazníkům a partnerům. Za druhé je tato transformace silně ovlivněna cloudem, ať už jde přímo o nasazování cloudových zdrojů nebo používání provozních modelů podobných cloudu. A za třetí se mění i způsob vývoje aplikací; dochází k přechodu na model kontinuální integrace a nasazování (CI/DI), který umožňuje časté iterativní změny.
Vrcholem těchto tří trendů je kontejnerizace. Díky kontejnerům se objevuje možnost vytvářet v modelu kontinuálního vývoje aplikace, které jsou mimořádně samostatné, vysoce škálovatelné, přenosné a zároveň granulární z hlediska komponent služeb, z nichž se skládají.
Kontejnerové aplikace, nasazované a řízené prostřednictvím orchestrační platformy, jako je Kubernetes, budou během příštího desetiletí nesporně hrát klíčovou roli ve vývoji IT. Podle společnosti Gartner bude do roku 2025 až 85 % organizací provozovat kontejnery v produkčním prostředí; v roce 2019 byl přitom odpovídající podíl 35 %.
Kontejnery lze provozovat mnohem hustěji (přepočteno na hardwarové zdroje) než tradiční virtuální stroje, což znamená, že je zapotřebí méně serverů. Výsledkem je snížení nákladů na licence i nároků na napájení. Z těchto důvodů se kontejnerizace stává často základem iniciativ, jejichž cílem je snížení nákladů nebo naopak rozšiřování podnikání. Organizace v první fázi obvykle nasazují v podobě kontejnerů 25 % až 40 % svých aplikací.
Ale co ukládání a ochrana dat, zálohování, snapshoty (snímky), replikace, zajišťování vysoké dostupnosti a zotavení po havárii? Ty činnosti jsou pro infrastrukturu podnikových aplikací zásadní, ale při provozu v kontejnerech mohou představovat problém. Než se dostaneme ke způsobům, jak tyto případné potíže vyřešit, podívejme se nejprve podrobněji na to, proč jsou kontejnery tak důležité a jak fungují.
Nasazování aplikací v kontejnerech je agilní
Představme si firmu, jejíž hlavní činnost je spojena s častým uváděním mnoha nových produktů na trh. Dochází k rychlým nárůstům poptávky a samotný provoz doprovázejí požadavky na analýzu dat. Může se jednat například o prodej letenek s náhlými a masivními nárůsty prodejů. Tradičně postavené aplikace na třívrstvé architektuře (klient-server-databáze) by se pro tento typ podnikání nasazovaly příliš pomalu, obtížně by se škálovaly a při vysoké poptávce (zátěži) by mohly mít problém s výkonem.
Kontejnery jsou koncipovány právě jako odpověď na popsanou situaci. Zapouzdřují totiž veškeré komponenty aplikace – což znamená, že mnoho takových mikroslužeb lze znovu použít při vývoji nových aplikací – a dají se podle požadavků na škálování rychle klonovat. Kontejnery navíc obsahují veškerou konektivitu k těm rozhraním API, na nichž jsou závislé, a lze je portovat do mnoha provozních prostředí. Znamená to, že např. náhlý prudký růst poptávky po vstupenkách na určitou události lze vyřešit rychlou reprodukcí vzájemně propojených instancí kontejnerových služeb a jejich rozšířením do více datových center včetně veřejného cloudu.
Zjednodušeně řečeno, základ technologie kontejnerů spočívá v tom, že jde o formu virtualizace. Na rozdíl od virtuálních serverů běží kontejnery přímo na hostitelském operačním systému a bez řízení pomocí hypervisoru. To znamená, že kontejnery představují oproti klasické virtualizaci mnohem granulárnější, odlehčený virtuální stroj, který obvykle poskytuje jednotlivé oddělené součásti celé aplikace propojené kódem (tj. rozhraními API).
I bez hypervisoru a z toho plynoucí režie dokážou přitom kontejnery využívat výhod orchestrační vrstvy. Právě tu poskytují nástroje jako Kubernetes, které organizují jeden nebo více běžících kontejnerů –každý se svým kódem, běhovým prostředím, závislostmi a voláním zdrojů – do tzv. podů. Inteligence pro provoz podů se nachází nad nimi v jednom nebo více clusterech Kubernetes.
Kubernetes přináší výzvy pro úložiště a zálohování
Jednu z největších výzev, které je třeba při nasazení systému Kubernetes překonat, představuje úložiště a ochrana dat. Kořeny tohoto problému sahají až k počátkům kontejnerů, které byly původně určeny především pro potřeby vývojářů. Spouštěly se tedy jako dočasná instance a jejich datové úložiště přetrvávalo pouze po dobu spuštění samotného kontejneru.
Ve chvíli, kdy se kontejnery staly hlavním proudem vývoje aplikací v podnicích, to už ale takhle dál fungovat nemůže. Většina podnikových IT aplikací je stavová, což znamená, že data vytvářejí, interagují s nimi a také je ukládají.
Orchestrace nad orchestrátorem
Zákazníci, kteří chtějí nasadit kontejnery s úložištěm a ochranou dat podnikové třídy, se proto musí poohlédnout po nově vznikající sadě produktů.
Jedná se o platformy pro řízení kontejnerových úložišť, odkud mohou spouštět Kubernetes a současně zajišťovat i řídit ukládání a ochranu dat spojené s provozem tohoto systému.
Na co by se měli zákazníci zaměřit?
Při posuzování různých platforem pro úložiště Kubernetes je třeba zohlednit hlavně to, že každý produkt z této kategorie by měl být nativně kontejnerový. To znamená, že požadavky aplikace na úložiště jsou samy nasazeny jako kontejnerizované mikroslužby. Požadavky na poskytování úložiště, připojení a výkon jsou napsány jako kód, se vší dynamikou a agilitou, které z toho vyplývají. To je v kontrastu s jinými metodami (např. CSI –Container Storage Interface), které spoléhají na neměnné, natvrdo nastavené ovladače k úložišti, jež je kontejnerům přiděleno.
Softwarově definovaná nativně kontejnerová úložná platforma pro Kubernetes by měla poskytovat přístup k blokovým, souborovým i objektovým úložištím a současně by měla být schopna využívat i cloudová úložiště. Dále je potřeba, aby platforma přenášela na další úroveň základní vlastnosti a výhody kontejnerizace i samotného systému Kubernetes. To znamená, že data by měla být přenosná stejně jako kontejnerizovaná aplikace a měla by být spravována prostřednictvím společné řídicí roviny. Škálování i opravy problémů mají fungovat autonomně.
Pokud jde o ochranu dat, měl by takový produkt poskytovat všechny klíčové metody zabezpečení dat, včetně zálohování a snímků, synchronní a asynchronní replikace a migrace. I v tomto případě by měl umožňovat použití cloudu, ať už v roli zdroje dat nebo cíle těchto operací.
Má-li produkt zvládat škálovatelnost prostředí Kubernetes, měl by být schopen spravovat stovky clusterů, tisíce uzlů a statisíce kontejnerů, a přitom poskytovat úložnou kapacitou v řádu desítek petabajtů. A konečně by měl mít vlastní „inteligenci“ zahrnující automatizovanou správu založenou na pravidlech, kdy se kontejnery například vytvářejí, replikují a odstraňují podle předem nastavených monitorovacích spouštěčů a současně se podle potřeby zajišťuje a mění velikost úložiště.
Jakmile najdete a implementujete řešení, které splňuje všechny tyto požadavky, sami rychle pochopíte, proč kontejnery začne do roku 2025 využívat 85 % organizací. A budete se divit, že jste se k tomuto přechodu neodhodlali dříve.
Patrick Smith, CTO EMEA ve společnosti Pure Storage.