Na listopadové konferenci Ignite Microsoft oznámil další strategický krok v oblasti hybridních řešení - Azure Arc. Jak vypadá nasazení cloudového modelu nad vaší vlastní infrastrukturou, hostingem či libovolným cloudem nebo Kubernetes clustery od kohokoli a kdekoli? A jak to doplňuje technologii Azure Stack nebo IoT Edge? Dnes se na to podíváme konceptuálně a příště si první preview střípky vyzkoušíme.
Zakazníci, kteří začnou využívat Azure, brzy zjistí, že způsob operování a governance takového prostředí je velmi mocný a začnou si říkat, že by bylo skvělé tohle mít i ve svých on-premises a edge systémech. Jde například o tyto aspekty:
Bylo by skvělé tohle mít konzistentním způsobem k dispozici i pro řešení, která potřebujete mít ve svém datovém centru nebo na edge (v továrně, na pobočce, v místě zákazníka) či v jiném cloudu/hostingu, ale kompletně to asi nepůjde. Nicméně Microsoft dělá hodně proto, aby co nejvíc toho opravdu šlo. Pro Microsoft není hybridní svět jen dočasný stav, než bude všechno v cloudu, ale vnímá hybrid jako stav trvalý kdy zejména v oblasti edge budete potřebovat z důvodů latencí, přenosové kapacity či compliance lokální technologie ve své výrobě, pobočce apod.
Jak tedy dostat cloudový model IT do prostředí mimo cloud?
První varianta, o které jsem už mnohokrát psal, je dovézt si Azure technologie do svého datového centra nebo edge. Myšlenka spočívá v tom, že technologii si vyzmete už od železa nahoru, tedy připravíte si jen elektřinu a síťové napojení a jedete.
Azure Stack Hub (ano, je to Azure Stack, jen se mu k názvu přidalo jedno slovo) je způsob, jak můžete od základních vrstev železa přes hypervisor až po virtuální sítě, softwarově definovanou storage i compute v podobě VM, Kubernetes nebo WebApp a serverless provozovat u sebe prostředí konzistentní s Azure. Na rozdíl od ostatních variant tady máte řešení od železa nahoru a tím jste schopni dosáhnout nejvyšší konzistence, protože tu funguje zcela nativně ARM, RBAC a tak podobně. Nicméně to také znamená, že musí být optimalizovaný celý stack technologií, takže to nenainstalujete z cédéčka na vaše stávající systémy (logicky - pokud mám mít konzistenci i pro automatizaci jako Azure, musí pod tím být opravdu Azure svět, ne VMware nebo AWS). Azure Stack Hub si kupujete jako hotové řešení - proste objednáte velkou bednu a tu vám přivezou.
Někde je zbytečné mít celý šelmostroj Azure Stack Hub - stačí vám podstatně méně výkonu, chcete menší zařízení a to možná i takové, které se vleze do batohu a můžete s ním pobíhat po fabrice, po poli nebo jako zachranáři v oblasti povodní. Azure Stack Edge je pokračováním (přejmenováním a doplněním) technologie Azure Data Box Edge, o kterém už jsem psal. Nově jsou ale různé další varianty krabiček, takže kromě formátu do racku jsou tu i menší zařízení pracující na baterie upravené do terénu, aby vám mohly bez následků spadnout na zem a daly se dát do prašného prostředí továrny nebo do batohu. Modely mohou být vybaveny nejen CPU, ale i jinými typy compute určenými pro akceleraci Machine Learning funkcí jako je FPGA nebo GPU. Všechny zařízení řídíte z cloudu a jste schopni do nich posílat v cloudu odladěné moduly jako je Stream Analytics pro zpracování dat, lokální IoT Hub pro napojení IoT zařízení, machine learning modely, kognitivní moduly nebo váš vlastní serverless kód. Novinkou je plán umožnit nejen spouštění kontejnerizovaných modulů, ale i klasických VM pro případ, že váš software něco takového potřebuje. Současně zařízení funguje jako datové překladiště a je schopné synchronizovat nebo pushovat data do cloudu pro další zpracování. Box si objednáte v Azure portálu a platíte měsíční poplatek.
Shrnuto - Azure Stack Hub a Edge znamenají doručení technologického stacku Azure k vám. Buď rack konzistentní technologie (Hub) kterámá lokální portál a ARM nebo jen jednu krabičku řízenou z cloudu, na kterou můžete jednoduše poslat cloudové funkce pro lokální zpracování a sbírat výsledná data do Azure.
Ve světě IoT potřebujete na sloup pověsit rozhodně něco menšího, než rack s Azure Stack Hub. Na to je myšleno v IoT strategii Azure. V zásadě jde o to získat schopnost IoT zařízení napojit na cloud a řešit tam jejich bezpečnost (!), správu, deployment, nastavení, push logiky a kódu, příjem a zpracování dat nebo obousměrnou komunikaci.
O Azure Sphere už jsem tu také psal. Jde o Microsoftem navržený mikrokontroler - system on čip obsahující hardwarový bezpečnostní modul, ARM procesor pro OS, dva další ARM procesory pro real-time OS a modul síťové konektivity. K tomu je Azure Sphere OS - operační systém postavený na Linuxu a podporovaný Microsoftem ve stávající formě minimálně do roku 2031 včetně over-the-air updatů pro trvalou bezpečnost (srovnejte s tradičními krabičkami, které výrobce po krátké době přestane aktualizovat, protože ma “nový lepší” model). Zařízení můžete napojit na Azure IoT Hub a to buď ve velkém Azure nebo v Azure Stack Hub nebo na Azure IoT Edge zařízení (například Raspberry Pi).
Azure Sphere čip má 4MB paměti, takže tam zázraky neuděláte (jdete po velikosti, spotřebě a ceně). Nicméně bývá potřeba IoT zařízení napojit do lokální chytřejší brány pro lokální zpracování dat, detekci anomálií, gateway pro napojení do velkého Azure a tak podobně. Tady už se bavíme o chytřejších krabičkách jako je Raspberry Pi s ARM procesorem nebo x86/amd64 platformách třeba s Linux nebo Windows. Na tento box jste schopni nainstalovat Azure software a napojit ho do cloudu. Následně můžete zařízení řídit z cloudu a také mu z cloudu posílat funkční moduly. Například Azure Stream Analytics, Azure SQL Database Edge (i pro ARM64), serverless kód, machine learning modely exportované z Azure, kognitivní služby a tak podobně. Mimochodem je i možnost nasazované moduly spravovat přes Kubernetes API díky Virtual Kubelet pro Azure IoT Hub.
Co když ale potřebujete něco většího, ale nemůžete tomu vyměnit podvozek (tedy přivést si tam Azure Stack Hub) - váš VMware, Hyper-V ve vlastním DC nebo hostingu, VM u jiného poskytovatele nebo váš vlastní Kubernetes cluster? I to je součástí hybridní strategie Microsoft nově s Azure Arc.
Je logické, že když vaše VM běží v non-Azure prostředí, nemůžete automatizovat tvorbu VM, sítí nebo storage tak, jak to jde u Azure Stack Hub. Nicméně to neznamená, že vám tady cloud nemůže pomoci. Už dnes jste schopni napojit svoje VM běžící kdekoli do Azure Monitor a sledovat telemetrii, analyzovat logy, dělat update management, inventarizaci nainstalovaného software nebo využít cloudový SIEM Azure Sentinel. To je dnes součást strategie Azure Arc, ale ten jde pro VM ještě o kousek dál. V čem to spočívá?
Objekty mimo Azure sice můžete přes Azure Monitor krásně sledovat, ale nemají svou reprezantaci v Azure Resource Manageru. Azure Arc vám umožní na VM nainstalovat Arc agenta, který způsobí, že se z toho VM stane resource v Azure tak, jak třeba Azure VM. To má dost zásadní přínosy jak pro současné preview služby, tak ještě víc do budoucna:
Kubernetes je úžasný infrastrukturní systém nové generace, orchestrátor kontejnerů. V Azure ho můžete monitorovat, sbírat z něj logy a telemetrii a díky Azure Policy (v preview) řídit bezpečnostní politiky (omezovat kontejnerové registry, vynutit jen podepsané obrazy, zakázat kontejnery spuštěné pod rootem, dropnout Linux capabilities, implementovat Pod security a tak podobně). Také si Azure Kubernetes Service snadno začleníte do vaší CI/CD pipeline v Azure DevOpS Pipelines nebo GitHub Actions.
Azure Arc cílí na to, přenést tohle všechno do Kubernetes běžících kdekoli - v Azure Stack Hub, na vašem železe, v jiném cloudu. V zásadě do něj nainstalujete jistou formu agenta a policy kontroleru a z cloudu monitorujete a řešíte governance, tedy bezpečnostní a provozní pravidla vašich clusterů, a komplexní monitoring (logy, telemetrie).
Dokážete také moderním GitOps způsobem implementovat základní deployment do clusterů, tedy třeba všude mít stejnou verzi NGINX kontroleru, připravené namespace dev/test/prod, RBAC pravidla nebo omezení na zdroje pro různé namespaces. Díky GitOps můžete kolaborovat v rámci například Azure DevOps nebo GitHub a začlenit governance a bezpečnost do vašich CI/CD pipeline. Git se tak může stát zdrojem pravdy pro to, jak má být cluster nastavený a jaká základní komponenty mají být nasazené (Ingress kontroler, Service Mesh, DAPR, Cert-manager). Můžete jít ještě dál a v Gitu držet jaké aplikace v jaké verzi mají být nasazené. To může být ideální scénář pro edge nasazení (místo deploymentu přes složitou CI/CD pipeline budete mít pro edge clustery centrální zdroj pravdy a stačí z nich outbound konektivita).
Dostávám se k tomu, co mi na Azure Arc připadá největší revoluce. V Azure se o managed služby stará Microsoft (PaaS) a získáváte tak například hotovu databázi a neřešíte nic jiného. Microsoft ji pro vás updatuje, řeší problémy, škáluje a tak podobně. Bylo by skvělé něco takového mít v on-premises, ale to asi nepůjde, nebo ano? Z pohledu nějakého celkového SLA ne, protože PaaS je i o správě celého železa, hypervisoru, sítí a storage technologií pod tím. Nicméně některé aspekty by se možná řešit daly. Například aktualizace v cloudu neprobíhají tak, že se někdo připojí do VM a nainstaluje patche. Ve skutečnosti se připraví nový image, který už aktualizace obsahuje, a tím se bezvýpadkově nahradí předchozí instance. Je to dost promakaný proces. Jenže tohle těžko udělat, když to není v Azure. Ledaže by existoval nejaký infrastrukturní komponent, který je připraven na takové moderní zacházení a je dostupný v jiných cloudech nebo on-premises. A takové řešení existuje - Kubernetes.
V plánu je tedy to, že vezmete Kubernetes běžící kdekoli, napojíte ho na Azure Arc a tím Microsoft získá jednotný infrastrukturní systém. Stále je na vás řešit Kubernetes a všechno co je pod ním (hypervisor, sítě, storage) a to lze udělat buď samostatně, nebo z jiného cloudu jako služba nebo v rámci Azure Stack Hub. Ve společné vrstvě Kubernetes se pak Microsoft může vyřádit a s použitím různých technologií jako je Kubernetes Operator vám nabídnout některé služby o dost cloudovějším modelem, než tak, že vám pošle cédéčko se SQL Server. Microsoft pro vás tedy ve vašem Kubernetes rozjede nějakou službu a bude řešit i proces aktualizace na novější verze, škálování a vysokou dostupnost. Současně s tím bude vědět kolik té služby konzumujete, takže může nasadit cloudový model licencování - nemusíte si tedy koupit nějaký papírek s klíčky na rok, ale platit jako v cloudu třeba od hodiny. Dostanete tedy službu s přidanou hodnotou, které má nemálo vlastností PaaS řešení v Azure (ale samozřejmě Microsoft půjde jen do úrovně služby samotné, pokud vám nefunguje Kubernetes nebo infrastruktura pod ním, musíte řešit vy - nebo si pod to dát Azure Stack Hub).
První služby v rámci zatím privátního preview budou Azure SQL Database a Azure Database for PostgreSQL v režimu hyperscale (Citus technologie). Můžeme očekávat i další datové služby, zejména v oblasti ML a kognitivek (ty už dnes kontejnery také podporují, takže je to spíš otázka vyřešení managmentu přes Arc). K dispozici ale postupně budou i nedatové služby pro vývojáře, například Azure API Management má v preview schopnost vystrčit některé své nody právě do on-premises světa přes Azure Arc (a potažmo váš Kubernetes). Billing bude cloudový - podle reálného využívání služby.
Sečteno podrtrženo - Azure Arc je zajímavý způsob, jak dostat cloudové chování do vašich systémů, ať už beží naprosto kdekoli a na čemkoli.
Jak už jsem naznačil, dává smysl i přístupy kombinovat. Například vzít Azure Stack Hub, který do vašeho datového centra dostane API konzistentní s Azure a vyřeší pro vás i vrstvy hypervisoru, ARM, softwarově definované storage a sítě. V něm můžete provozovat IoT Hub a napojit do něj například IoT Edge, Azure Sphere nebo Azure Stack Edge. Také v něm můžete s plnou podporou provozovat AKS-engine (Kubernetes) - no a ten přes Arc může být základem například pro managed datové služby.
Hybridní strategie je pro Microsoft klíčová. Kromě zmíněných technologií je i celá řada dalších, které hybridní scénáře podporují - Azure Site Recovery pro DR mezi on-premises a cloudem, Azure Sentinel jako cloudový SIEM pro všechno včetně SaaS služeb, identitní systém AAD díky synchronizaci s AD, hybridní správa pracovních stanic a tak podobně.
Z pohledu Azure tedy můžete přivést kousek Azure technologie k sobě, napojit svůj IoT svět na cloud a distribuovat cloudové vlastnosti do svých zařízení nebo díky Azure Arc napojit svoje stávající prostředí ať běží kdekoli do cloudu z důvodu správy, governance, bezpečnosti, compliance, monitoringu a využívání některých služeb cloudu u sebe. Bude na tom určitě hodně práce a vše se bude rychle rozvíjet. Strategické i technologické základy jsou položeny myslím velmi pevně.