Pokročilá témata z cloudování

Co to znamená efektivně využívat cloudové služby? Z obchodního pohledu je nejdůležitější získání přidané hodnoty ve srovnání s on-premise řešením. O tomto tématu byl můj předchozí příspěvek. V dnešním příspěvku proberu několik oblastí, které jsou důležité z technického pohledu.

Neustálý rozvoj cloudu

Cloud je mladá technologie a zdaleka neumí všechno. Pokud cloud začneme používat jako platformu pro vývoj svého vlastního řešení, rychle narazíme na oblasti, které našim specifickým potřebám nevyhovují. Může se jednat o možnosti konfigurace sítí, připravené konfigurace softwaru jako například Hadoop clustery, schopnosti předpočítaných modelů umělé inteligence nebo možnosti interního datového katalogu. Kriticky důležitým rozhodnutím je, jak moc – a zda vůbec – se vyplatí v takovém okamžiku investovat do překonání těchto omezení.

Provozovatelé cloudu jsou totiž ve stejné situaci jako vy. Snaží se vytvářet komponenty a služby, které uživatelé potřebují a které jsou pro ně užitečné. Mají však o poznání lepší pozici. Vědí, co uživatele cloudu nejvíce trápí, jsou schopni investovat výrazně větší částky do vývoje, a protože znají interní technologie, jsou schopni navrhnout a vytvořit lepší řešení. Je docela velká pravděpodobnost, že po půl roce vývoje nějaké funkcionality se v definici služby objeví tlačítko, zda chcete použít ekvivalent funkce, kterou jste sami složitě vyvíjeli.

Například Amazon v AWS za rok 2020 představil 2300 (slovy dva tisíce tři sta) novinek, rozšíření nebo zlepšení svých služeb. To je více než šest novinek denně. Pravděpodobnost, že v takovém množství se objeví i to, co potřebujete nebo co vám může pomoci, je veliká.

V této situaci mohou přijít vhod dvě rady. Nevyvíjejte nic, co by mohl udělat poskytovatel cloudu lépe. Používejte cloudové služby jenom tak, jak jsou, a tím nejjednodušším doporučeným způsobem. Postavte rychle řešení podle potřeb uživatelů a počítejte s tím, že může mít krátkou morální dobu životnosti. Za dva roky můžete postavit řešení znovu a lepší. Jestliže řešení navrhnete rozumně, přechod bude jednoduchý.

A pokud se už odhodláte k rozvoji nějaké služby, zeptejte se, jaké má plány s touto službou provozovatel. V tomto ohledu jsou provozovatelé velmi otevření. A odpověď vás může překvapit. Můžete se dovědět, že potřebná funkcionalita existuje, ale je složité ji najít nebo se jmenuje jinak, můžete se dovědět, že stačí pár měsíců počkat… a taky se můžete dovědět, že daná služba je na seznamu zastaralých funkcí a že byste měli raději použít něco jiného či jinak.

Dohled a sledování

Tím, že aplikaci přenesete do cloudu, ji současně přenesete do složitějšího prostředí. Technologický stack bude obsahovat vaši aplikaci, operační systémy, kontejnery, virtuální servery, hostitelský hardware a také disková pole a ostatní datová úložiště. Síťové prostředí bude bohatší o mnoho firewallů, bran a různých dalších prvků. Pravděpodobně využijete různé interní služby pro zasílání zpráv. Všechny tyto komponenty vás zahrnou hromadou informací o svém chování a stavu. Ale protože k mnoha z komponent nebudete mít přímý přístup, je složité množství informací interpretovat a získat představu, co reportované hodnoty říkají o ostatních vrstvách technologického stacku. A zejména co říkají o výkonu vaší aplikace. A ten je tím jediným, co vás zajímá.

Klíčovým problémem se ukazuje být to, jak vybrat a monitorovat ty správné věci na té správné úrovni. To představuje problém zejména v situaci, kdy dojde k výpadku nebo přetížení nějaké komponenty. V tu chvíli je už pozdě na to zjišťovat, jak se jednotlivé vrstvy infrastruktury ovlivňují, a probírat se hodnotami stovek čítačů a měřících bodů často v různých aplikacích a časově neprovázaných.

Na druhé straně vytvořit dohledové dashboardy s užitečnou vypovídající hodnotou je extrémně drahé. Vytvoření stojí spoustu času a testování je časově náročné a funkčně komplikované. Navíc je složité prosadit investice do jejich vývoje. Nejsou přímo potřeba pro byznysového funkce aplikace. A pokud vše funguje podle očekávání, tak se ani pořádně nevyužijí. Nerezignovat na tuto oblast je velká výzva.

Využití více dodavatelů cloudových služeb

Požadavek nezávislosti na providerovi je hodně diskutované téma. Pokud použijeme jednu izolovanou službu s jednoduchým rozhraním, jako je server s operačním systémem nebo existující služby pro zpracování řeči, obrazu nebo videa, je udržení nezávislosti a přechod mezi poskytovateli poměrně jednoduchý. Jak ale začnete služby na jedné platformě propojovat, začnete využívat interní messaging, interní dohledové služby nebo dokonce platformní služby, jako jsou AWS Glue, AZURE SQL Edge nebo Google BigTable, je přenos funkcionality na jinou platformu čistou iluzí.

Existují systémy, které si kladou za cíl transparentně spravovat více platforem. Například Terraform umí spravovat AWS, Azure, Oracle Cloud, Google Cloud i Terraform Cloud. V praxi to znamená, že musíte zvládnout nejen obecné rozhraní takového nástroje, ale i to, jak řeší speciality jednotlivých providerů. A pro efektivní využití služeb jsou podstatné právě tyto speciality.

Úplně se přimknout k jednomu poskytovateli taky není doporučovaná strategie. Spíše se vyplatí využívat rozdílné cloudové poskytovatele pro různé oblasti nebo funkce. Například analytika v Azure, primární systémy v AWS a webové služby v Google Cloud. Nebo finance v AWS, CRM v Salesforce, obchod a sklady v AZURE. Udržovat si znalost a schopnost používat více platforem je třetí doporučení.

Upgrady a chyby zůstávají

Přechod do cloudu snižuje nároky na administraci. To je často uváděná výhoda. A určitě je to pravda. Pro mnoho administrativních činností má cloud vysokou podporu. Škála administrativních činností a rozsah potřebných kompetencí se ale nemění.

Cloud může zajistit aplikaci záplat nebo aktualizaci operačních systémů, databázových serverů i dalších komponent. Nemůže ale zajistit, že tyto zásahy nebudou mít vliv na váš kód. Nemůže sám ani otestovat vliv změn na váš kód. Stejně tak platí, že cloud není „errorless“ prostředí. Stále musíte řešit reakci na výskyt chyb, vysokou dostupnost a procesy zotavení po havárii. Cloud nabízí mnoho prostředků, které s řešením mohou pomoci a které byste jinde museli složitě budovat. Jejich použití a efektivita je nakonec stejně na vás.

Administrace po přechodu do cloudu může zabrat méně času. Ale vyžaduje administrátory s větším rozsahem znalostí a kompetencí. To znamená dražší pracovníky.

Využití cloudu je další instance základní otázky IT, která nás v různých obměnách provází už desítky let. „Je možné přidáním dalšího systému nebo další technologické vrstvy získat jednodušší a potenciálně levnější řešení?“

Odpověď je stále stejná: NE, není to možné. To, co můžeme získat, je řešení s vyšší přidanou hodnotou. To je důvod, proč se to dělá. A je to jediný důvod, proč má použití cloudu smysl.

Předchozí kapitoly jsou příklady toho, co jsme se naučili za posledních pět let na projektech pro naše zákazníky. Příklady toho, co je nutné dělat, aby přidaná hodnota použití cloudových služeb byla co nejvyšší.

 

Autor: Ondřej Zýka

Data a informace jsou bohatství, o které je potřeba řádně pečovat. RNDr. Ondřej Zýka prosazuje tuto myšlenku již více než patnáct let, a to nejen ve společnosti Profinit, kde pracuje jako Information Management Principal Consultant. Řídí se jí v projektech vývoje datových skladů, zlepšování datové kvality, správy metadat či implementace Master Data Managementu. Tato myšlenka je také jedním z témat jeho přednášek na vysokých školách, kde přednáší o databázových systémech.