fb
IT Systems 4/2022 Cloud a virtualizace IT ITIL – Řízení IT 30. 5. 2022 13:55

Inovační architektura jako cesta k úspěšné digitální transformaci

Motorem obchodního růstu jsou v dnešní době hlavně vyspělé techno­logie, které výrazně ovlivňují schop­nost firem přežít v rychle se mění­cím obchodním prostředí. Exekutivci ale nemohou každý rok financovat další velký transformační projekt. Často se ptají, jestli je jiná cesta k udržitelné architektuře. Odpovědí jsou komponentní architektury založené na mikro-službách nativně pracujících v elastických cloudových prostředích.

Evoluce architektur IT

Během uplynulých dvaceti pěti let jsme prošli několika vlnami IT evolucí. Nejprve jsme zjistili, že na trhu vlastně nejsou potřebné aplikace, jako je třeba CRM. Byznys lídři si nechávali systémy postavit draze a zdlouhavě na míru. Nedlouho poté i k nám dorazila vlna monolitických krabicových řešení, která vyžadují masivní transformační projekty. Ty nás postupně dovedly do stavu, kdy je třeba více než kdy dříve agilně dodávat širší škálu funkčností s lepší ergonomií uživatelských aplikací.

Je zřejmé, že aplikace dnes vyžadují vyšší integrovatelnost, zabezpečení a garantovanou kvalitu dodávek. Staré IT přístupy tak v kontextu dnešní doby a v čase rychle se měnících byznysových požadavků neobstojí. Pomoci může inovační architektura, která stojí na komponentních systémech s vysokou přidanou hodnotou. Komponentní přístup je dnes běžný jak u zákaznického vývoje, tak u nových generací krabicových řešení.

Komponentní řešení mohou využít architektur postavených na mikro-službách, které vyhovují požadavkům na škálovatelnost řešení, rychlost dodávek a poskytují v podstatě neomezené možnosti z hlediska funkčnosti.

Jak se tedy pustit do inovací a jak si poradit s původním aplikačním portfoliem?

Inovační architektura

Měnit staré systémy je obtížné a jejich transformace se neobejde bez investic či diskontinuit. Inovační architektury jsou proto kom­po­nent­ní. Využívají nejnovější technologie a agilní dodávky tak, aby byla hodnota dodávána kontinuálně a v životním cyklu aplikačního ekosystému docházelo k pozvolným, menším a kontrolovaným změnám, nikoliv k těm velkým skokovým. Zkrátka aby byly snadněji naplňovány nové požadavky uživatelů a produktových manažerů.

Nové aplikační platformy dnes využívají výhod cloudové elasticity, nativních cloudových platforem a služeb, které radikálně urychlují vývoj nových funkčností při zachování kvality a bezpečnosti. Inovační architektura klade velký důraz na podporu digitálních kanálů a jejich spolupráci, možnosti integrace sociálních sítí, integrace v rámci obchodního ekosystému, tedy nabídky produktů a služeb třetích stran. Díky ní můžete reagovat na události v reálném čase a využít umělou inteligenci jak v rámci aplikačních procesů, tak v oblasti konverzačních nástrojů a dalších.

Aplikační vzory – Digital Decoupling

Zajímavým vzorem může být například Digital Decoupling, tedy způsob rozdělení původních monolitických systémů na menší komponenty, které pak pracují ve vyšší digitální vrstvě architektury. Nová komponenta se implementuje například formou micro-služby, která má k dispozici vlastní kopii dat z původního systému nebo systémů. Následně je umožněno postupné odstranění funkčností z legacy systémů a jejich vyřazení z provozu. Izolace nové vrstvy a postupné nahrazování funkčnosti umožňuje v přechodné době paralelní využití legacy systémů s rozsáhlou obchodní logikou a velkou účetní hodnotou.

Výběr platforem

Samozřejmě platí, že zejména při výběru nových platforem pro komplexní funkčnosti je nutné učinit strategické rozhodnutí, jestli danou funkčnost vyvíjet nebo koupit – ať už jako součást aplikačního balíku „best of suit“, nebo jako sadu komponent „best of breed“, tedy těch nejlepších na trhu.

Rozhodování v podobných situacích může být komplikované a obchodní společnosti investují nemalé částky do výběrových řízení na hotová řešení, ale i pro platformy umožňující vývoj vlastních aplikačních komponent. Obecně platí, že čím je požadovaná funkčnost standardnější, tím efektivnější může být využití hotového řešení a například nasazení SaaS (Software as a Service), typicky cloudového řešení s moderní architekturou vysokým zabezpečením a nízkým nákladem na úvodní konfiguraci a integraci.

Ne vždy jsou ale podobná řešení správnou volbou, a v případě společností, které se chtějí odlišovat, vidíme odklon od hotových řešení směrem k zákaznickému vývoji. K největší míře diferenciací dochází v oblasti digitálních kanálů, ale podobně se chovají i interní uživatelské aplikace pro podporu obchodu, nebo interních procesů. Standardizace nestačí a na trhu vítězí společnosti, které se odlišují a jsou schopné zaujmout, případně nalézt efektivnější přístup k řešení procesů a interakcí.

Život s mikro-službami

Diferenciace a schopnost rychle reagovat na tržní změny je klíčová a musí být podpořena nejen organizací a operačním modelem společnosti, ale také architekturou. Moderní společnosti většinou prosazují agilní metodiky práce tak, aby bylo dosaženo větší rychlosti dodávek.

Podle Conweyova pravidla architektura systémů společnosti odpovídá komunikační struktuře dané společnosti. Agilní organizace se strukturou malých autonomních týmů zodpovědných za rychlé dodávky nebude dobře fungovat s monolitickým systémem a silně provázanými aplikačními subsystémy. Ideální bude distribuovaná architektura s volně provázanými mikro-službami, která odpovídá agilní organizaci týmů a umožňuje rychlé změny.

Přechod na SOA (Service Oriented Architecture), tedy architekturu orientovanou na služby a její implementaci prostřednictvím mikro-služeb, je typický pro technologicky orientované společnosti, startupy včetně hyperscalerů jako je Uber, Amazon nebo Netflix. Jejich obchodní úspěch staví na optimálním propojení organizace s architekturou, které umožňuje kontinuální inovace.

Mikro-služby @(v)kostce

Komponentní architektury postavené na mikro-službách jsou efektivní cestou k řešení rychlosti funkčních dodávek, distribuovaná architektura navíc dobře podporuje paradigma agilní organizace.

Mikro-služby mají širokou škálu využití od jednoduchých uži­va­tel­ských scénářů, kde mohou podporovat webové mikro-frontendy, uživatelské SPA (single page applications) – jednostránkové aplikace, i komplexní aplikační systémy. Funkčně potom pokrývají od jednoduchých datových mediačních funkcí na úrovní doménových entit až po složitou komerční logiku, AI funkce a podobně.

Boom mikro-služeb byl umožněn především rozvojem cloudových ekosystémů, kontejnerových platforem a dalších technologických enablerů. Technologická základna dnes umožňuje jednoduchý vývoj industrilizovaných mikro-služeb, vývojové týmy mohou připravit sadu skeletonů se základní funkcionalitou, která řeší elasticitu (obou­směr­né škálování modulů) v rámci kontajnerové platformy, případě server-less systému, bezpečnost a podobně. Použití skeletonů následně zjednodušuje správu, ale především umožňuje úspory a plné soustředění vývoje na funkční a obchodní logiku dané mikro-služby. Industrializace mikro-služeb vyžaduje rovněž unifikaci přístupu k návrhu API (rozhraní služby), výhodu mohou též pos­kyt­nout IDL (Interface Definition Languages) jazyky pro definici rozhraní.

Další možností distribuovaných architektur je využití tzv. polyglot přístupu pro vývoj mikro-služeb. Tedy každá služba může využít jiného programovacího jazyka, který nejlépe vyhovuje specifické funkci služby – například komplexní logika pro uživatelský interface může být vyvinuta jinak než analytická back-end funkce. Polyglot přístup je rovněž jednodušší s využitím kontejnerových platforem, které kromě zásadního zjednodušení přístupu k nasazování a řízení škálování služeb poskytují možnost jejich izolace. Samozřejmě pro každý jazyk služby je nutné podpořit, případně harmonizovat odolnost, monitoring, zabezpečení, tak aby bylo dosaženo stejné kvality služeb v rámci systému.

Specifickou kategorií jsou komplexní systémy se stovkami mikro-služeb, typicky v rámci EDA (event driven architecture) událostmi řízené architektury. Puristická implementace SAGA patternu, tedy vykonání sekvence lokálních transakcí prostřednictvím jedné nebo několika mikro-služeb, by v rámci tzv. auto orchestrace měla být řízena přímo jednotlivými službami. Tento přístup se také referuje jako choreografie mikro-služeb v případě, kdy neexistuje „orchestrátor“. Tento přístup je ovšem v případě velkého počtu služeb problematický a největší hráči jako Netflix se od něj odklonili a začali využívat centrálního orchestrátoru, který řídí práci mikro-služeb a významně přispívá k operabilitě komplexních řešení.

Výhody a nevýhody

I velmi komplexní aplikace mohou být vystaveny formou lega služeb na platformách, které umožňují dynamickou škálovatelnost, vysokou dostupnost a zavádění nových funkčností rychlostí, která byla u monolitických systémů nedosažitelná. To vše je podpořeno silnými operačními DevOps nástroji pro řízení vývoje a nasazování (CI/CD) s plným pokrytím automatickými funkčními testy, včetně testů security a A-B testy verzovaných služeb s možností nasazení na vybrané skupiny uživatelů: tedy vyšší rychlost, nižší náklady na operativu a technologické zdroje, vyšší kvalita, nižší chybovost, vyšší zabezpečení. Kde je háček?

Micro-služby jsou moderním a elegantním řešením pro širokou škálu aplikací, komplexní distribuované systémy nicméně vyžadují vysokou míru architekturní governance. Je nutné služby stavět co nejjednodušší a udržovat vysoký operační standard. U některých typů nasazení/komerčních modelů mikro-služeb je nezbytné dobře kalkulovat transakční náklady. Další nevýhodou je nutnost nasazení seniornějších vývojových týmů a investice do metodiky vývoje a nástrojů pro správu a automatizaci vývojových procesů.

Na závěr

Hodnoty moderních technologických platforem a funkční možnosti inovačních komponentních architektur jsou dnes již neod­dis­ku­to­va­tel­né. Nasazení mikro-služeb na kontejnerových platformách v privátních nebo public cloudech je dnes standardem a řada společností prosazuje agilní vývoj s distribuovanými platformami a mikro-službami.

S pomocí vyspělých podpůrných platforem a se správnou mírou architekturní kontroly, lze s minimálním rizikem nastoupit cestu ke komponentní architektuře, která dnes více než kdy jindy poskytuje možnosti k instantním inovacím. Chcete-li se na trhu odlišit, pak je ideální čas začít s transformací vašich monolitických legacy systémů.

Jaroslav Blažek Jaroslav Blažek
Autor je regionálním ředitelem pro technologickou strategii a poradenství ve společnosti Accenture.

Kalendář akcí
Konference - Semináře - Školení
Časopis IT Systems/Speciál
Aktuální číslo časopisu IT Systems Aktuální číslo časopisu příloha #1
Archív časopisu IT Systems
IT Systems 10 IT Systems 9 IT Systems 7-8 IT Systems 6
Archív časopisu IT Systems Special
Aktuální číslo časopisu příloha #1 Aktuální číslo časopisu příloha #1 Aktuální číslo časopisu příloha #1 Aktuální číslo časopisu příloha #1