co je monolitická aplikace?

první krok na cestě k pohybu monolitické aplikace na Kubernetes

Kris Nova
Feb 2, 2018 · 4 min číst

Během své kariéry softwarového inženýrství jedním z nejcennějších otázky, naučila jsem se požádat kolegu, je „Co je to za něco, co pro vás znamená?“. Nutí druhého inženýra, aby vyhodnotil jejich důsledky používání určitého slova. V návaznosti na první pohyblivé monolitické aplikace na volání Kubernetes, chtěl jsem strávit pár minut mluvením o tom, co je monolitická aplikace. Nebo alespoň, co to pro mě znamená.

Jedná se o zajímavý prostor, který vyžaduje určitou pozornost. Zatímco provoz mikroprocesoru bez státní příslušnosti na Kubernetes je relativně snadný, provoz velké stavové aplikace má ještě dlouhou cestu. Pochopení toho, co je monolitická aplikace, bude prvním krokem k usnadnění procesu migrace.

abychom mohli definovat monolitickou aplikaci, musíme nejprve pochopit součásti aplikace, na které nám záleží. Tři komponenty, které nás zajímají, budou uživatelské rozhraní, vrstva pro přístup k datům a úložiště dat.

uživatelské rozhraní je vstupní bod aplikace, a je také bodem programu že uživatel bude komunikovat. To by mohlo být hlavní () funkce, webové stránky, webové služby, nebo různé jiné vstupní body.

dat přístup vrstva je vrstvou program, který bude zabalit data store. Typicky se vrstva pro přístup k datům bude zabývat problémy, jako je ověřování pomocí úložiště dat a dezinfekce dat před tím, než budou v úložišti dat přetrvávat.

úložiště dat je nejvíce základní část systému, a je zodpovědný za ukládání libovolných informací (údajů) a načítání ji. Tato komponenta je obvykle jen databáze.

Tyto tři komponenty tvoří velmi běžný typ aplikace se nazývá stavová aplikace. Což znamená, že aplikace ukládá a manipuluje s daty v průběhu času. Proto říkáme, že aplikace má stát. Ještě důležitější je, že stav aplikace se může časem měnit.

v případě monolitické aplikace běžně pozorujeme více vrstev aplikace těsně spojených dohromady. V níže uvedeném příkladu vidíme, že uživatelské rozhraní a vrstva pro přístup k datům jsou seskupeny dohromady. To se obvykle provádí pomocí velkého úložiště kódu a obě tyto vrstvy budou pravděpodobně záviset na tom, aby druhá byla zavedena, aby mohla být spuštěna. Uživatelské rozhraní a vrstvy pro přístup k datům jsou navíc obvykle spojeny do stejného procesu za běhu. To znamená, že komunikují na stejném systému pomocí systémových prostředků (paměti a výpočetních cyklů) k interakci s ostatními částmi systému.

naopak, microservice založené aplikace by byl složen z malých modulárních komponent, které lze snadno přepnout. To nabízí koncept skládatelnosti pro operátora a je znamením, že pracujete s mikroslužbami místo monolitické aplikace. Níže uvedený příklad ukazuje flexibilní a modulární aplikaci. Všimněte si, že v tomto modelu můžeme menší komponenty spouštět samostatně a pomocí sítě propojit náš systém dohromady. Tento přístup je mnohem škálovatelnější.

Takže to, co je monolitické aplikace? Jedná se o jednostupňovou softwarovou aplikaci, ve které jsou uživatelské rozhraní a přístupový kód pro data kombinovány do jednoho programu na jedné platformě. Je to také aplikace, která spouští více komponent ve stejném procesu, ve stejném systému.

kupředu a snažíme se pochopit nuance přechodu monolitické aplikace na Kubernetes, a doufám, že to je cenné první krok v naší cestě. Vzhledem k tomu, že proces je relativně nezdokumentovaný, plánujeme sdílet získané poznatky, takže každý může mít prospěch.



+