Škálovatelná webová architektura

Co je škálovatelnost?
Škálovatelnost je žádoucí vlastností systému, sítě nebo procesu, který ukazuje na jeho schopnost reagovat a přizpůsobovat se, aniž by došlo ke ztrátě kvality, nebo plynule zvládat nepřetržitý růst pracovních míst, být připraven na růst a neztrácet kvalitu nabízených služeb .
Dalo by se říci, jaká je schopnost našeho systému podporovat větší pracovní zátěž pomocí úprav nebo rozšíření, které jsou přiměřené z hlediska nákladů, času, času a složitosti.
Typy škálovatelnosti
Obecně můžeme hovořit o vertikálním a horizontálním škálování nebo o kombinaci obou.

Vertikální škálování


V zásadě spočívá ve zvýšení kapacity jednoho nebo více konkrétních prvků naší architektury, například v rozšíření paměti našeho centrálního serveru nebo v nahrazení CPU jinými vyššími rychlostmi. Stručně řečeno, zvyšte kapacity serveru, což je něco velmi běžného, ​​když používáme virtualizaci, a říkáme, že v té době bude mít server k dispozici 30% RAM.

Horizontální škálování


Je to ten, který podrobně rozvedeme v tutoriálu, je založen na zvýšení počtu uzlů, které provádějí stejný úkol, pomocí různých typů plánování, například pokud máme nasycený webový server, přidáme další, abychom vyrovnali zátěž.
Typy webové architektury založené na úrovních.
Budeme hovořit o architekturách, které lze použít s linuxovými systémy, pomocí open-source nástrojů přejdeme od nejzákladnějších k některým docela pokročilým nabízejícím horizontální škálovatelnost a odolnost proti selhání, všechny tyto architektury lze použít v libovolném PaaS nebo s vlastní infrastrukturou.

1. Jednostupňová architektura


Je to nejzákladnější ze všech, kde existuje pouze jeden server s Apache a MySQL, ke kterému je možné přistupovat vzdáleně. Je velmi běžný na stránkách s malým okrajem návštěv nebo testovacích prostředí, nenabízí žádnou toleranci k selhání a je obtížné jej použít k horizontálnímu růstu.

2. Dvoupatrová architektura


Tentokrát jsme oddělili databázi od webového serveru, který nabízí trochu odolnosti proti chybám. Tímto způsobem, pokud databáze selže, může webový server nabízet obsah statickým způsobem, který nezávisí na databázi. A v případě, že webový server selže, můžeme k informacím přistupovat opětovným spuštěním nového webového serveru. Design nabízí několik nedostatků, protože se nejedná o příliš škálovatelný design.

3. Tříúrovňová architektura


Tentokrát začneme používat nástroj pro vyrovnávání zatížení, který bude přijímat všechny požadavky od uživatelů. Tentokrát nabízíme škálovatelnější design, takže pokud se naše zátěž zvýší, můžeme přidat další webové servery a škálovat. Můžeme dokonce použít automatické škálování, takže webové servery se přidávají automaticky při určité úrovni zatížení nebo ve špičce. Problém tohoto návrhu spočívá v tom, že můžeme nasytit naši databázi.

4. Čtyřstupňová architektura


Nyní používáme nástroj pro vyrovnávání zatížení a memcached, aby byl systém škálovatelnější. Díky tomuto designu můžeme kromě odolnosti vůči chybám přidat tolik databází a webových serverů, kolik je potřeba. Můžeme rozdělit zátěž mezi databáze pomocí CASSANDRA nabízí implementaci více uzlů. Tento design je mnohem složitější, ale přidávám mnohem větší odolnost proti chybám a schopnost škálovat všechny jeho úrovně.

5. Pětistupňová architektura


Obsah webové stránky lze rozdělit na statický a dynamický. Webovou vrstvu například rozdělíme na server Apache a další s aplikacemi JAVA se systémem Jetty nebo JBoss. Apache poskytuje statický obsah, zatímco aplikační server zpracovává dynamický obsah nebo obsah za běhu. Příkladem toho může být sekce FAQ na webových stránkách podpory, protože se jedná pouze o statický obsah, lze jej zpracovat pomocí APACHE / NGINX.

ZVĚTŠIT

6. Šestistupňová architektura


Můžeme být trochu elegantnější a přidat síť pro doručování obsahu (CDN) nebo něco, co je v AWS známé jako Amazon CloudFront CDNMáme například webovou stránku E-learning a naši uživatelé si z našeho webu stahují příručky ve formátu PDF nebo videa. Můžeme ušetřit veškerou šířku pásma vyhrazenou pro stahování. Tím, že ji nabízíme z CDN, která se o ni stará, může zbytek webu běžet na naší infrastruktuře.

ZVĚTŠIT

ZávěryViděli jsme víceúrovňové architektury, které lze použít v závislosti na provozu webu. Doporučuje se vytvářet architektury přemýšlející o budoucnosti, které mohou škálovat a udržovat odolnost vůči chybám, aby se předešlo kolapsům na webu kvůli nedostatku zdrojů nebo selhání nepostradatelného uzlu. Vytvořením některých z těchto návrhů společně s dalšími doporučeními, jako jsou zálohy a automatické nasazení, můžeme nabídnout web s dobou provozu 99,9 odolnou proti chybám.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave