Tyto alternativy jsou zcela běžně používány „progresivními“ internetovými firmami s vysokými požadavky na dostupnost i výkonnost. Neexistuje tak důvod, proč o nich vážně neuvažovat i v souvislosti s provozováním existujících IT systémů ve firmách.
Základní věcí, kterou zákazník musí udělat, je provést inventuru aplikací. Podívat se, jaké aplikace vlastně má, jak je používá, jaké jsou požadavky na výkonnost a dostupnost. Mnoho aplikací totiž firmy udržují pouze z historických důvodů kvůli compliance (dodržení zákonných požadavků) nebo v nich potřebují jen občas něco najít. U jiných nejsou požadavky na dostupnost nebo výkonnost takové, aby opodstatnily finanční náklady vydávané kvůli provozu na drahých serverech s komerčními databázovými systémy.
Migrace aplikací na modernější architekturu s sebou nese mnohá zjednodušení. Zajistit vysokou dostupnost ve virtualizovaném prostředí je často jen otázkou několika kliknutí na rozdíl od složitých konfigurací různých clusterwarů. Možnosti zálohování virtuálních strojů na úrovni hypervisorů zjednodušují administraci mnoha aplikací, stejně jako možnost automatizace deploymentu nových aplikací nebo databázových serverů.
Archivovat staré (legacy) aplikace, vyřazení z provozu a tím se zbavit špatně spravovatelných a drahých celků
První varianta se týká typicky aplikací, které se aktivně nepoužívají. Staré aplikace jsou často provozovány na starém hardware, operačních systémech i verzích databází. Jejich správa je nákladná finančně i z hlediska lidských zdrojů. Po analýze způsobu používání těchto starých aplikací tak může dojít k rozhodnutí aplikaci „zaarchivovat".
Archivace aplikace znamená migraci dat do nového úložiště (což může být např. jiná SQL databáze, případně podle použití i nějaké NoSQL úložiště) a vytvoření nového rozhraní pro přístup uživatelů. Pro tuto variantu existují na trhu různé aplikace pro analýzu databázového schématu, migraci schématu, případně i přímo pro vytváření náhledů do databáze. Vzhledem k tomu, že přístup k archivovaným datům nebývá příliš častý, je možné i místo použití speciálních archivačních aplikací vytvořit jednoúčelové aplikace pro zjednodušený přístup k archivovaným datům.
Migrace existujících aplikací
Jeden ze způsobů snížení nákladů u existujících aplikací je změna technologie databáze. V současném open source světě je k dispozici několik databázových technologií, které bez problémů splňují požadavky, se kterými se ve firmách setkáváme.
Velmi oblíbenou alternativou ke komerčním databázovým systémům je open-source databáze PostgreSQL. Tento databázový systém má velmi dobrou podporu SQL standardu, mnoho rozšíření pro různé typy aplikací (fulltext, postgis), podporu pro externí datové zdroje, table partitioning, různé typy synchronní a asynchronní replikace, podporu pro online zálohy a point-in-time recovery. V posledních verzích se postupně zlepšuje podpora pro přímou práci s XML a JSON a např. paralelizace zpracování dotazů. PostgreSQL má dobrou podporu pro připojení z většiny operačních systémů a vývojových prostředí (ODBC, JDBC drivery jsou samozřejmostí).
Databázi bohužel nelze vyměnit jako kolo u auta. Výměna databázového systému prakticky vždy vyžaduje v lepším případě práci na migraci schématu a vložených procedur, většinou však také kontrolu a případně změnu dotazů do databáze, ve výjimečných případech i změnu aplikační logiky. U aplikací využívajících různé persistence frameworky může být migrace skutečně jen otázkou přenosu dat a schématu, ale i tam se ve složitějších systémech mohou najít výjimky a důkladné testování by se nemělo podcenit. Pro usnadnění migrace existují různé nástroje - mezi freewarové lze zmínit např. ora2pg, Amazon cloud nabízí AWS Database Migration Services pro migraci mezi databázemi od různých výrobců.
Jakýkoliv zásah do aplikací tvořících jádro firemních činností je vždy riziková záležitost. Při změně databázové technologie může dojít k nečekaným problémům ať už z hlediska funkcionality nebo z hlediska výkonnosti. Na druhou stranu, ne na všechny firemní informační systémy ve firmách jsou kladeny vysoké nároky. Migrace na open-source řešení tak může být obzvláště u méně důležitých systémů i s přihlédnutím rizika finančně velmi zajímavé. Snížení závislosti na jednom produktu je v dnešním dynamickém IT světě bezesporu také důležité.
Vývoj nových aplikací, „cloud native“ aplikace, škálovatelnost, flexibilita
Pro vývoj aplikací je dnes k dispozici velké množství rychle vznikajících (a také rychle zanikajících) technologií. Velcí cloud poskytovatelé dávají k dispozici na výběr obvykle mezi několika komerčními i open-source SQL databázemi, dále poskytují různé škálovatelné NoSQL databáze a nově také škálovatelné SQL databáze (obvykle kompatibilní právě s PostgreSQL).
Síla moderního "cloud" prostředí tkví v jednoduché replikovatelnosti a snadném nasazování nových zdrojů. Dobře připravené prostředí automatizuje velkou většinu správy služeb. Databáze, fronty zpráv, objektová úložiště atd. se vytváří na "kliknutí". Je mnohem jednodušší vyrábět různá testovací a staging prostředí, která vedou k vyšší kvalitě výsledných aplikací. Mnoho aplikací využívá stejné "cloud" služby, vyplatí se tak věnovat energii tomu, aby tyto služby byly kvalitně zabezpečené.
Vývoj nových aplikací lze zaměřit na využití nových technologií. Nové systémy tak mohou snadno získat vlastnosti, které byly dříve drahé z hlediska finančních i lidských zdrojů. Systémy pro orchestraci kontejnerů (např. Kubernetes, AWS Elastic Container Service) umožňují jednoduchým způsobem dosáhnout rychlého zvýšení výkonu aplikace, je-li to potřeba. Výpočetní jednotky (AWS Lambda, Google Cloud Functions) poskytnou snadno škálovatelný výkon pro výpočetně náročné úlohy.
Samostatnou kapitolou je pak využití messaging systémů pro komunikaci mezi aplikacemi (RabbitMQ, Kafka, AWS SQS a další). Tyto systémy jednak usnadní sledování komunikace mezi jednotlivými systémy, ale především mají zabudované robustní mechanismy pro zajištění korektního předání zpráv, ošetření chybových stavů a zajištění vysoké dostupnosti služby.
Nabídky poskytovatelů cloud služeb umožní firmám využívat služby v kvalitě, ve které by to pro ně typicky bylo finančně příliš náročné. Při dostatečné velikosti firmy může být výhodné provozovat vlastní cloud prostředí, u menších firem může být mnohem výhodnější většinu svého IT prostředí přesunout do veřejného cloudu.
Využití moderních open-source technologií pro snížení nákladů firmy
Firmy a organizace s delší historií svých IT systémů řeší problémy s vysokými poplatky spojenými s provozem aplikací - ať už se jedná o poplatky za maintenance HW, licenční poplatky spojené s provozováním SW – OS, komerční databázové systémy atp. Náklady na HW lze většinou snížit cílenou migrací aplikací na levnější HW platformy, využití virtualizace a alokací skutečně potřebného výkonu.
Náklady na SW lze snížit použitím open-source řešení, v případě typicky vysokých nákladů na komerční DB systémy lze použít například databázi PostgreSQL. Některá open-source řešení nabízí plně srovnatelnou funkcionalitu a spolehlivost s komerčními systémy a jsou kompatibilní s mnoha používanými řešeními. Migrace na tyto systémy není složitá a vzhledem k výši licenčních poplatků může mít pro firmu velmi rychlou návratnost.
Vývoj nových systémů by měl brát v úvahu možnosti dnešních cloud technologií a nabídku poskytovatelů cloudových služeb. Při výběru by však měly být zohledněny také možnosti případné změny dodavatele služeb (např. výběrem otevřených řešení, nikoliv uzavřených řešení vybraného cloud poskytovatele). V případě změny podmínek a cen služeb ze strany dodavatele by totiž firmy mohly za pár let řešit velmi podobné problémy.
Ondřej Palkovský
Autor článku je konzultantem společnosti GAPP System.