Je vaše aplikace nativní nebo agnostická… nebo snad obojí?
V tomto článku se nebudeme věnovat možnostem, jak z on-premise aplikace udělat cloudovou službu – to je příběh na jiný rozhovor (který s vámi ale rádi povedeme osobně).
Raději se zaměříme na architekturu cloudové aplikace a jak ji uzpůsobit tak, aby plnila přesně požadavky vašeho týmu. A v takovém případě musíme zabrousit do oblasti aplikací cloudově nativních a cloudově agnostických. Hrozná slova, ale uvidíte, že stojí za to je rozpoznat.
Co je to cloudově nativní aplikace?
Nejprve se zaměříme na hledisko podvozku, na kterém aplikace běží. Už jsme se zmínili o aplikace, která byla připravená pro on-premise prostředí a pak byla předělaná tak, aby mohla být poskytovaná jako služba (tuto cestu například zvolila společnost SoftLi).
To ale není cloudově nativní přístup. Prvotním prostředím, pro které byla aplikace uzpůsobená, byla fyzická infrastruktura. Aby mohla být aplikace považovaná za cloudově nativní, musí být vyvinuta s tím, že je uzpůsobená provozu v cloudu.
Její jednotlivé komponenty jsou postavené na cloudových službách a dohromady tvoří celek, který je v cloudu jako doma. Díky tomu se díváme na velmi nezanedbatelné výhody:
- Efektivní nakládání s výpočetními zdroji
- Jednoduchá optimalizace prostředí
- Snadná škálovatelnost dle potřeby
Pak jsou tu ale výhody, které už neplatí obecně, a tím se dostáváme do kategorie cloudově agnostických aplikací.
Co je to cloudově agnostická aplikace?
Tady se trochu dostáváme do terminologických úzkých. Ačkoli se všechny aplikace postavené pro cloud označují jako cloudově nativní, cloudově nativními označujeme i ty, které jsou postavené pro specifickou cloudovou platformu. Pro ujasnění budeme tuto druhou kategorii označovat jako uzavřeně cloudově nativní.
Jestliže je tedy jejím opakem cloudově agnostická aplikace, jedná se o takový program, kterému je vlastně jedno, na kterém cloudovém podvozku běží. Není totiž závislá na konkrétních proprietárních technologiích jednoho poskytovatele.
V současné době se navíc čím dál častěji tyto aplikace staví na kontejnerizačních platformách – Docker nebo Kubernetes – které jim dodávají všechny výhody, které jsme zmínili u nativních aplikací, a ještě navíc k tomu přidávají všechny výhody kontejnerů.
Díky tomu se tyto aplikace nemusí vyhýbat různým cloudovým poskytovatelům, ale dokonce poskytují i volnost pro využití multicloudu.
Jsou uzavřené cloudově nativní aplikace špatné?
Obecně vzato – ne. Může to být tak, že pro konkrétní společnost a jejich konkrétní aplikaci poskytuje konkrétní dodavatel takové proprietární služby, že výhody technologického uzamčení převáží.
Všimněte si ale, kolikrát se v předešlém odstavci objevilo slovo konkrétní nebo proprietární/uzamčený. Je to z toho důvodu, že každá aplikace je individuální řešení, které má individuální požadavky. Nelze tedy obecně říct, že uzavřené cloudově nativní aplikace jsou špatné. Stejně tak nelze říct, že cloudově agnostické jsou vždy tím nejlepším řešením.
Takže vybrat nativní nebo agnostickou?
Toto rozhodnutí je čistě na vás. Je ale potřeba zvážit, jak chcete, aby aplikace fungovala, které parametry jsou pro vás prioritou a jak chcete, aby se aplikace mohla rozvíjet. Protože přesunout později už plně vyvinutou uzavřenou cloudově nativní aplikaci do agnostického kabátu je noční můra.
Každý z těchto přístupů je zaměřený na určitě benefity. Vaším úkolem je najít ten, který svými přínosy přesně odpovídá vašim cílům.
Rozloučíme se s vámi přehlednou tabulkou koonceptů, které jsme v tomto článku zmínili. Jak to tak občas v IT bývá, ne vždy je uzus nad tím, co který termín označuje. Tak ať se neztratíte hned při začátku hledání vhodného přístupu pro vaši novou aplikaci.
Název | Jiný název | Co to obnáší? |
Cloudově nativní | – | Vývoj aplikace pro provoz v cloudu |
Cloudově nativní | Uzavřená cloudově nativní | Aplikace vyvinutá pro provoz na konkrétních proprietární technologii/technologiích |
Cloudově agnostická | Čistě cloudově nativní | Aplikace vyvinutá pro cloud bez ohledu na poskytovatele podvozku |