Rearchitektúra aplikácií (Application Rearchitecture)

Aktualizované 30. 9. 2026

Rearchitektúra aplikácií je zmena zásadných štrukturálnych rozhodnutí existujúceho systému, vrátane hraníc komponentov, zodpovedností, vlastníctva dát alebo komunikačných vzorcov. Pri modernizácii starších systémov sa používa vtedy, keď súčasná architektúra blokuje požadované zmeny a toto obmedzenie nemožno vyriešiť rehostingom, replatformingom ani samotným lokálnym refaktoringom.

Rearchitektúra aplikácií mení štruktúru, ktorá určuje, ako je systém rozdelený a ako jeho časti spolupracujú. Presahuje vyčistenie kódu v rámci existujúcej hranice. Práca môže zahŕňať oddelenie zodpovedností, presun vlastníctva dát, zavedenie nových rozhraní alebo nahradenie synchrónnych závislostí iným modelom interakcie.

Keď je obmedzením architektúra

Starší systém môže bežať na podporovanej infraštruktúre, a napriek tomu môže byť náročné ho meniť. Funkcie môžu zdieľať dáta bez jasného vlastníctva, vydania verzií môžu vyžadovať spoločné nasadenie nesúvisiacich modulov alebo sa jedno zlyhanie môže šíriť cez úzko prepojené volania. Ide o štrukturálne vlastnosti. Presun rovnakého dizajnu na nového hostiteľa ich neodstráni.

Audit staršieho codebase sleduje tieto obmedzenia až ku konkrétnemu správaniu a závislostiam. Cieľom je identifikovať, ktoré architektonické rozhodnutie bráni požadovanému výsledku, namiesto toho, aby sa vyberal módny cieľový stav.

ObmedzeniePrejav v súčasnom systémeMožná štrukturálna zmena
Spoločná hranica vydávaniaNesúvisiace zmeny sa musia nasadzovať spoločneOddelenie modulov alebo jednotiek nasadenia
Zdieľané vlastníctvo dátViacero komponentov zapisuje do rovnakých záznamovPriradenie jedného vlastníka a explicitných rozhraní
Kaskádové zlyhanieZlyhanie závislosti blokuje viacero workflowovPridanie izolácie alebo asynchrónnych hraníc
Skrytá hranica doményBiznis pravidlá sú duplikované naprieč modulmiZoskupenie pravidiel v rámci ohraničeného kontextu (bounded context)

Čo musí zmena architektúry definovať

Prehodnotenie hraníc vytvára migračnú prácu na oboch stranách každej z nich. Súčasný systém má volajúcich, dáta, prevádzkové úlohy a chybové stavy, ktoré musia naďalej fungovať, kým sa presúvajú zodpovednosti.

Plán by mal definovať:

  1. Obmedzenie: Pomenujte súčasnú štruktúru, ktorá blokuje požadovanú zmenu.
  2. Novú zodpovednosť: Uveďte, ktorý komponent bude následne vlastniť správanie a dáta.
  3. Prechodnú hranicu: Vysvetlite, ako staré a nové časti komunikujú počas migrácie.
  4. Metódu overenia: Porovnajte biznisové výsledky, vplyv na dáta a prevádzkové správanie.
  5. Podmienku vyradenia: Uveďte zoznam závislostí, ktoré musia zaniknúť pred odstránením starého kódu.

Pomôcť identifikovať ucelené zodpovednosti môže ohraničený kontext (bounded context), ale implementovaná hranica musí stále odrážať reálne workflowy a dáta.

Ako sa rearchitektúra líši od presunu platformy

Rehosting aplikácií mení miesto, kde aplikácia beží. Replatforming aplikácií vykonáva ohraničené úpravy s cieľom použiť inú platformu. Rearchitektúra mení hlavné interné alebo distribuované vzťahy v systéme.

Program ich môže kombinovať, ale oddelenie týchto rozhodnutí zlepšuje plánovanie. Infraštruktúrne úlohy, úpravy kompatibility a štrukturálna migrácia majú odlišné riziká a dôkazy. Ich spojenie pod jedno označenie sťažuje identifikáciu toho, ktorá zmena spôsobila zlyhanie alebo zdržanie.

Zachovanie prevádzkyschopnosti počas prechodu

K zmene architektúry zvyčajne dochádza za plného behu, kým je existujúci systém zodpovedný za reálnu prevádzku. Prechodné stavy preto potrebujú jasné pravidlá smerovania, autority dát, monitorovania a vrátenia zmien. Diagram cieľového stavu je neúplný bez postupnosti krokov, ktoré k nemu vedú.

Inkrementálne techniky, ako napríklad vyčlenenie služby (service extraction) alebo izolačná vrstva medzi systémami (Anti-Corruption Layer), môžu podporiť túto postupnosť, ak súčasný systém umožňuje stabilnú hranicu. Praktickým testom je, či každá fáza dokáže bežať, byť monitorovaná a v prípade potreby vrátená späť. To mení rearchitektúru na sériu riadených presunov zodpovednosti v rámci širšej práce spojenej s migráciou staršieho kódu.