Sobes.tech
Middle

Jaké typy architektur webových služeb existují?

sobes.tech AI

Odpověď od AI

  1. Monolitická architektura:

    • Jednotný, samostatný kód, který spojuje všechny komponenty (UI, obchodní logika, přístup k datům).
    • Jednoduchý vývoj a nasazení v počátečních fázích.
    • Potíže s škálovatelností, údržbou a implementací změn s růstem projektu.
  2. Mikroslužbová architektura:

    • Aplikace je rozdělena na sadu malých, nezávislých služeb, které komunikují přes síť (často přes API).
    • Každá služba odpovídá za specifickou funkci a může být nezávisle vyvíjena, testována a nasazena.
    • Lepší škálovatelnost, odolnost vůči chybám (selhání jedné služby neovlivní ostatní), možnost použití různých technologií.
    • Složitost správy velkého počtu služeb, potřeba distribuovaného logování a monitorování.
  3. Službami orientovaná architektura (SOA):

    • Skládá se ze služeb, které komunikují přes podnikový bus (ESB - Enterprise Service Bus).
    • Služby mohou být velké a používat různé protokoly.
    • Cíl: zvýšení flexibility a opětovného využití služeb v rámci organizace.
    • Rozdíly od mikroslužeb: větší služby, centrální komunikační bus.
  4. Serverless architektura:

    • Vývojář se zaměřuje na psaní kódu, zatímco správa serverů a infrastruktury je svěřena poskytovateli cloudových služeb (například AWS Lambda, Azure Functions).
    • Platba podle využití, automatické škálování.
    • Snížení provozních nákladů a úsilí o správu.
    • Omezení v době běhu a zdrojích, závislost na poskytovateli cloudových služeb.
  5. N-úrovňová architektura:

    • Aplikace je rozdělena na logické vrstvy nebo úrovně, z nichž každá plní určitou roli a komunikuje pouze s přilehlými vrstvami.
    • Typické vrstvy: prezentační vrstva (UI), obchodní logika, přístup k datům.
    • Zvyšuje modularitu a usnadňuje rozdělení odpovědností.
graph TD
    A[Uživatel] --> B{Webová služba};
    B --> C[Architektura];
    C --> D[Monolitická];
    C --> E[Mikroslužby];
    C --> F[SOA];
    C --> G[Serverless];
    C --> H[N-úrovňová];