Uživatelské nástroje

Nástroje pro tento web


monolit

Monolitická architektura (Monolith)

Monolit je architektura, kde jsou všechny funkční moduly aplikace pevně propojeny. I když může být kód uvnitř logicky rozdělen do tříd nebo balíčků, výsledkem kompilace je jeden velký spustitelný soubor (např. .exe, .war nebo .jar).

1. Charakteristické znaky

  • Jedna databáze: Celá aplikace obvykle používá jedno centrální datové úložiště.
  • Sdílená paměť: Různé části aplikace spolu komunikují voláním funkcí přímo v paměti, nikoliv přes síť.
  • Jednotná technologie: Celý monolit je zpravidla napsán v jednom programovacím jazyce a používá jeden framework.
  • Společné nasazení: Jakákoliv změna (i oprava jedné ikony) vyžaduje zastavení a znovunasažení celé aplikace.

2. Výhody monolitu

I přes popularitu mikroslužeb zůstává monolit v mnoha případech lepší volbou:

  • Jednoduchost vývoje: Na začátku projektu je mnohem snazší postavit monolit. Nemusíte řešit síťovou komunikaci mezi službami.
  • Snadné testování: Testování „end-to-end“ je přímočaré, protože vše běží na jednom místě.
  • Výkon: Volání funkcí uvnitř jednoho procesu je řádově rychlejší než posílání dat přes síť (API).
  • Snadný monitoring: Sledujete pouze jednu běžící aplikaci a jeden soubor s logy.

3. Nevýhody a úskalí

Problémy nastávají, když aplikace vyroste do obřích rozměrů:

  • Bariéra pro inovace: Pokud chcete přejít na novější verzi jazyka nebo jinou technologii, musíte přepsat celý monolit najednou.
  • Pomalé nasazování: Sestavení (build) obřího projektu může trvat desítky minut i hodiny.
  • Nízká odolnost: Pokud dojde k úniku paměti v modulu pro tisk faktur, spadne celý e-shop včetně košíku a plateb.
  • Škálování: Nemůžete posílit pouze nejvytíženější část aplikace. Musíte duplikovat celý monolit, což zbytečně plýtvá zdroji.

4. Kdy zvolit monolit?

  • Startupy: V rané fázi (MVP), kdy se požadavky rychle mění a potřebujete co nejrychleji uvést produkt na trh.
  • Malé týmy: Tým o 3 lidech by nezvládl režii spojenou se správou desítek mikroslužeb.
  • Jednoduché aplikace: Pokud aplikace nemá extrémní nároky na škálování nebo komplexitu.

5. Cesta k rozkladu (Refaktoring)

Mnoho firem začíná s monolitem a jakmile narostou, začnou z něj postupně „vykusovat“ jednotlivé moduly a převádět je na mikroslužby. Tomuto přístupu se říká Modular Monolith – mezistupeň, kde je kód čistě oddělen, ale stále běží jako jeden celek.

Zajímavost: Mnoho úspěšných firem (včetně Stack Overflow nebo Basecamp) stále úspěšně provozuje obří monolity. Dokazují tím, že mikroslužby nejsou jedinou cestou k úspěchu a že dobře udržovaný monolit může být efektivnější než špatně navržené mikroslužby (tzv. „distribuovaný monolit“).

Zpět na Rozcestník

monolit.txt · Poslední úprava: autor: admin