Omezení výkonu monolitické aplikace

Dokončeno

Existuje řada důvodů, proč se můžete rozhodnout pro změnu architektury systému. Provozní flexibilita, náklady, škálovatelnost a výkon jsou jenom některými faktory, které hrají roli při určování architektury systému. V našem příkladu se podrobněji podíváme na to, jak se výkon stane faktorem pro systém doručování dronů.

S rostoucím růstem firmy pro doručování dronů Fabrikam se zvyšuje zatížení systému. Aktuální architektura je nadměrně zatěžována. Společnost Fabrikam chce být při škálování aplikace schopna zajistit lepší flexibilitu, která v aktuální monolitické architektuře není k dispozici. Vylepšení škálovatelnosti aplikace je jedním z faktorů, které společnost Fabrikam přiměly k tomu, aby se začala zabývat převodem své aplikace na architekturu mikroslužeb.

Škálování monolitické vs. mikroslužeb

Jednou z hlavních výhod architektury mikroslužeb jsou lepší možnosti škálování. Vzhledem k tomu, že jsou služby oddělené, je jednodušší škálovat jednotlivé služby jednotlivě při nárůstu zatížení.

Tento rozdíl můžeme vidět u možností v systému doručování pomocí dronů. V monolitické architektuře se všechny služby nacházejí v jediné instanci aplikace. Zpřístupňují rozhraní API zákazníkům, kteří takto můžou odesílat a spravovat žádosti o doručení. Při zvýšení počtu žádostí zákazníků se zvýší i zatížení systému. Aby se zabránilo negativnímu ovlivnění uživatelského prostředí, je potřeba přidělit systému více prostředků.

V monolitické architektuře škálování této služby jednotlivě vyžaduje také škálování prostředků pro ostatní služby, protože se nacházejí v instanci každé aplikace. Toto uspořádání je neefektivní, protože zatížení ostatních služeb může být minimální a nevyžaduje dodatečné využití prostředků.

V architektuře mikroslužeb je každá služba oddělená, a proto můžeme rozhraní API škálovat nezávisle na ostatních službách. Toto uspořádání zvyšuje efektivitu, protože není nutné využívat prostředky pro nepotřebné služby.

Problémy s monolitickou architekturou doručování pomocí dronů, které je potřeba řešit

Služba balíčků, která byla původně součástí monolitické architektury, byla identifikována jako kritická část podnikání. Zákazníci se na něj výrazně spoléhají a při nárůstu tohoto zatížení je negativně ovlivněn výkon. Pro řešení této situace společnost Fabrikam věnovala vývojový tým s plnou kontrolou nad touto částí firmy. Tým plánuje vyvinout a iterovat tuto službu a být výhradně zodpovědný za všechny aspekty služby balíčků.

Služba balíčků má monolitickou architekturu, a proto tento tým nemůže pracovat samostatně. Tým je závislý na využívání sdílených dat a datových struktur. Nemůže ani provádět iterace tak rychle, jak potřebuje. Kromě uvedených problémů s výkonem a škálovatelností je tato služba rovněž identifikována jako hlavní kandidát pro mikroslužbu.

Podívejme se podrobněji, jak může společnost Fabrikam analyzovat svoji aplikaci a rozložit ji tak, aby využívala výhod architektury mikroslužeb.