Vícevrstvá architektura: výhody a nevýhody

V minulém díle jsme si popsali jednotlivé vrstvy vícevrstvé architektury, nyní je na čase se zamyslet nad výhodami a nevýhodami vícevrstvé architektury vůbec.

Výhody vícevrstvé architektury

Důsledné oddělení jednotlivých vrstev a volné vazby mezi vrstvami přináší mnoho výhod.  Především, že kterákoliv vrstva může být vyměněna nebo upravena, aniž by to mělo vliv na funkčnost aplikace jako celku.

Logika aplikace tak může být kompletně předělána a klient to nepozná, protože vzhled aplikace se vůbec nezmění. A platí to i obráceně, může být kompletně změněno uživatelské rozhraní a business logika může být zachována naprosto stejná. Stejně tak může být beze změny logiky aplikace nahrazena jedna databáze za jinou, např. můžeme přejít z MySQL na Microsoft SQL nebo ORACLE.

Některé změny lze dokonce provést za chodu, aniž by uživatel zaznamenal výpadek. Je to v celku prosté, např. všichni uživatelé budou směrováni na primární server, zatímco na sekundárním provedete deployment nového designu webu. Poté budete všechny nové uživatele směrovat na sekundární server a v okamžiku, kdy se od starého serveru odpojí poslední uživatel, provedete deployment nové verze i tam.

Také vývoj vícevrstvé aplikace je rychlejší, neboť práci je možno rozdělit mezi několik vývojářů, nebo vývojářských týmů, z nichž každý bude zodpovědný jen za svou vrstvu. Stejná business logika, design nebo databáze může být použita i jinou aplikací.

Nevýhody vícevrstvé architektury

Umístění jednotlivých vrstev do několika tiers je zároveň i nevýhodou. Tímto způsobem můžeme vybudovat velice heterogenní prostředí, kde bude použit HW od různých výrobců. Také operační systémy, které na těchto serverech poběží, mohou být v různých verzích a od různých dodavatelů.

To znamená, že budete muset provádět monitoring a údržbu několik různých serverů, operačních systémů a aplikací. Budete muset provádět upgrade HW a SW, spočívající minimálně v nasazení nejrůznějších nových verzí firmwarů, driverů a patchů. To lze částečně eliminovat nasazením virtualizační technologie a používáním stejné verze OS na všech serverech.

Ale ani ve virtuálním prostředí se nevyhnete, pokud neakceptujete riziko možného pádu nebo nefunkčnosti aplikace, občasnému nasazení patche pro webový, aplikační nebo databázový server. A tím nekončíme, ona totiž nejspíš i ta vlastní aplikace bude modulární, což znamená, že bude mít své jádro a k němu budete mít připojeno pravděpodobně několik modulů, které mohou být též od různých výrobců.

V praxi to tedy znamená mít vybudované integrační prostředí a v něm provádět po každé instalaci jakéhokoliv patche důkladné testy.

Základní pravidla

Abychom maximálně využili výhod a potlačili nevýhody, měli bychom se při vývoji vícevrstvých aplikací držet následujících pravidel:

  • Každá vrstva by měla komunikovat vždy jen s nejbližší vrstvou.
  • Vazby mezi vrstvami by měly být co nejvolnější, aby bylo možné danou vrstvu kdykoliv bez problémů vyměnit.
  • Vrstvy by měly spolu komunikovat prostřednictvím zpráv a to co nejméně, nikdy nevíme, kdy bude potřeba je rozdělit a umístit do jiných tiers.
  • Vytvářet další tiers, jen když je to opravdu potřeba.
  • Jednotlivé vrstvy provozovat na stejných verzích OS.

Napadají vás ještě nějaká další pravidla, která by se měla při vývoji a provozu vícevrstvých aplikací dodržovat?

Pokud vás tento článek zaujal, můžete odkaz na něj sdílet.

Štítky:


K článku “Vícevrstvá architektura: výhody a nevýhody” se zde nenachází žádný komentář - buďte první.

Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.

Přihlášeným uživatelům se tento formulář nezobrazuje - zaregistrujte se.

Jméno:(požadováno)
E-mail:(požadováno - nebude zobrazen)
Web:

Text vaší reakce: