;

Sedm proměn cloudu

12. 8. 2021
Doba čtení: 7 minut

Sdílet

 Autor: (c) T. L. Furrer - Fotolia.com
Výpočetní výkon bez serverů? Programování bez kódu? Nejen to jsou novinky v oblasti cloudu, který se neustále vyvíjí.

Slovo „cloud“ je jedním z moderních zaklínadel, kterým se řada lidí v IT sebevědomě ohání, podobně jako politici „podporou rozvoje“ nebo lékaři „klidovým režimem“ jako řešením prakticky na cokoli. Ve skutečnosti se za ním skrývá složitost a nejasnost, protože během let mělo mnoho různých významů. Než vůbec výraz „cloud“ vznikl, mainframové společnosti nabízely využití systémů v rámci sdílení počítačového času. První kolokační firmy pronajímaly účty na unixových serverech. Společnosti jako America Online nabízely cosi jako cloudové úložiště a výpočetní služby pro účely zábavy.

Vývoj pokračoval i po zavedení označení „cloud“. Prvotními nabídkami byly fakticky desítky tenkých virtuálních strojů běžících na výkonných serverech. Zákazník mohl mít práva superuživatele, i když jeho instance zabírala nepatrný zlomek kapacity serveru. Následně se FTP servery začaly označovat jako „buckety“ a „dropboxy“. Následovala exploze služeb na trhu a tvůrci zkratek si oblíbili příponu „aaS“.

Vývoj pokračuje a s každou novinkou se uživatelé znovu zamýšlejí, jaké prostředky a jakým způsobem si potřebují pronajmout a co za své peníze očekávají. V mnoha případech jde o oprášení starých nápadů označených novou nálepkou a doprovázených novou marketingovou kampaní. Mnohými z nich jsou ale chytrá řešení, která napravují problémy způsobené předchozí vlnou inovací či „inovací“. Aktuálně nejvýraznějších je v oblasti cloudu sedm trendů:

1. Účtování po menších časových jednotkách
První generace cloudových služeb užívala k účtování poměrně velké jednotky. Například služba AWS Lambda začala zaokrouhlovat všechna volání na celých 100 ms. Programátoři brzy zjistili, že zaplatí stejně za kratičké využití prostředků jako za dvaceti-, třiceti- nebo i vícenásobně delší. Přestali se tedy starat o efektivitu a úspornost kódu. Ostrá konkurence na trhu však nutí poskytovatele měrnou jednotku zkracovat. AWS přestal zaokrouhlovat na 100 ms a začal účtovat po 1 ms. Vyčištění kódu a optimalizace pomalých rutin se tedy reálně projeví nižšími náklady.

2. Operační systémy na dietě
Moderní operační systémy zvládají nesmírně široký okruh různorodých úloh, od práce s dokumenty a úpravy fotografií přes multimédia a hraní her po řízení tiskové fronty. Ale proč vlastně pokaždé spouštět cloudové instance připravené na všechny tyto činnosti? Jedna z cest, jak vše zjednodušit, se nazývá unikernel. Kompilátor po překladu kódu vybere pouze knihovny skutečně nutné pro běh aplikace a vytvoří minimální obraz stroje, který běží na standardním hypervizoru. Jde při tom nejen o úspornost, ale také o omezení bezpečnostních rizik.

3. Funkce jako open source
Další způsob, jak zjednodušit nasazování aplikací v cloudu, spočívá v tom, že programátor napíše jednoduchou funkci a nechá zbytek práce na samotném cloudu. V posledních letech všechny významné cloudové platformy začaly nabízet své vlastní nástroje umožňující malým fragmentům kódu, jednotlivým funkcím, do nějaké míry rozhodovat a zpracovávat určitá data. To představovalo významný pokrok, zejména pro ty, kdo sestavovali rozsáhlejší produkt z mnoha dílčích služeb. Jedinou nevýhodou byla vázanost na konkrétního dodavatele.
Funkce sice bylo možné psát některým z mnoha jazyků, ale interakce s cloudovým rámcem byla proprietární. Dnes existuje řada zajímavých open source projektů jako OpenWhisk, OpenFaaS, Kubeless, Knative nebo Fission, které umožňují využívat funkce jako službu (FaaS) na libovolném stroji.

4. Architektura Arm
Procesory Arm jsou nejen pro milovníky počítačů Mac. Společnost Amazon má svou řadu serverů vybavených vlastními procesory Gravitron s jádry Arm, které slibují až o 40 % nižší náklady na provoz. Jsou tu samozřejmě určitá „ale“. Binární soubory je nutné překompilovat pro platformu Arm, pokud nepracujete ve vyšších jazycích jako Java, JavaScript (Node.js) nebo PHP (Drupal, Word­Press apod.). Úspory potom do značné míry závisejí na povaze využití výpočetních prostředků a konkrétní zátěži.
Podle některých srovnávacích testů jsou stroje s procesory Gravitron srovnatelné s původními stroji osazenými procesory Intel, podle jiných vykazují poněkud nižší výkon, a tedy jsou vhodné spíše pro lehčí kód, který zvládne zátěž, aniž musí běžet delší dobu, čímž by se úspora nákladů smazala. K rozhodnutí, zda přejít, či nepřejít, je nutné porovnat konkrétní aplikace v obou verzích vedle sebe.

5. Databáze pro všechno
Kdysi programátoři Fortranu sledovali, jak do jejich oblíbeného jazyka přibývaly nové a nové funkce, a tvrdili, že nevědí, jaký bude programovací jazyk budoucnosti, ale že se rozhodně bude jmenovat Fortran. Totéž lze vztáhnout na databáze – kdysi dávno uchovávaly obdélníkové tabulky, dnes dělají téměř vše. Programátoři si všímají, co vše se jim nabízí. Například PostgreSQL 11 má vlastní JIT pro kompilování dotazů a v současné době dokáže i verzovat. Podporuje JSON, takže lze snáze než dříve vytvořit kompletní mikroslužbu bez opuštění databáze. Jiné databáze jako Azure Cosmos DB spojují SQL, MongoDB, Cassandra a grafová API, další, např. Google Firebase, nabízí možnost data jak ukládat, tak je dodávat klientům prostřednictvím replikace.

ICTS24

6. Nové role kancelářských aplikací
Tabulky plné čísel, písmen a vzorců jsou doménou účetních a manažerů, nikoli programátorů. Získávají si však postupně větší respekt jako chytrý formát souborů a způsob, jak zpřístupnit cloud masám. Hnutí „bez kódu“ vynechává programátory a nabízí přímo tvůrcům maker nástroje, které mění tabulky na aplikace. Například Google se chlubí tím, že jedna firma vytvořila a zavedla více než 35 podnikových aplikací zcela bez programování, pouze pomocí platformy AppSheet. Ale spreadsheetem to nekončí.
Někteří vývojáři namísto tvorby a zavádění aplikací jako samostatných instancí programují aplikace, které se integrují do textových editorů, prezentačních programů a dalších generických nástrojů Google nebo Microsoft.

7. Výpočetní kapacita na okraji sítě
Cloud se ustavičně vyvíjí a přesouvá stále více výpočetních prostředků na okraje sítě. Firmy jako Cloudflare bývaly kdysi „hloupým“ úložištěm. Nyní nabízejí inteligentní výpočetní služby. Ve více než
200 datových centrech umístěných co nejblíže uživatelům lze spouštět kód v jazycích JavaScript, Rust, C nebo C++. K dispozici jsou i místní databáze. Služba AWS for the Edge nabízí podobnou možnost přiblížit kód uživatelům, Microsoft Azure IoT Edge zase cílí na rozmach koncových zařízení, jejichž funkcionalita závisí na cloudu. A takových příkladů bychom mohli uvést desítky.
Cloud byl kdysi omezený na centralizovaná kolokační centra s instancemi k pronajmutí, ale dnes se posouvá blíže místu vzniku dat a spotřeby výpočetních prostředků, do místních počítačových sítí. Můžeme očekávat, že internet věcí, chytré spotřebiče, počítače v automobilech a další zařízení se z pouhých koncových bodů, které si s cloudem vyměňují data, postupně stanou jeho nedílnou součástí.