Schaalbare webarchitectuur

Wat is schaalbaarheid?
Schaalbaarheid is de gewenste eigenschap van een systeem, netwerk of proces, dat aangeeft dat het in staat is om te reageren en zich aan te passen zonder kwaliteitsverlies, of om op een vloeiende manier om te gaan met continue banengroei, om voorbereid te zijn om groter te worden zonder kwaliteitsverlies in de aangeboden diensten .
Je zou kunnen zeggen wat het vermogen van ons systeem is om een ​​grotere werklast te ondersteunen met aanpassingen of uitbreidingen die redelijk zijn in termen van kosten, tijd, tijd en complexiteit.
Soorten schaalbaarheid
In het algemeen kunnen we spreken van verticale en horizontale schaling of een combinatie van beide.

Verticale schaling


Het bestaat in feite uit het vergroten van de capaciteit van een of meer specifieke elementen van onze architectuur, bijvoorbeeld het uitbreiden van het geheugen van onze centrale server, of het vervangen van de CPU's door andere snellere. Samengevat, verhoog de capaciteit van de server, iets wat heel gebruikelijk is als we virtualisatie gebruiken en we zeggen dat de server op dat moment 30% RAM beschikbaar zal hebben.

Horizontaal schalen


Het is degene die we in de tutorial zullen beschrijven, is gebaseerd op het vergroten van het aantal knooppunten dat dezelfde taak uitvoert, met behulp van verschillende soorten planning, bijvoorbeeld als we een verzadigde webserver hebben, voegen we er nog een toe om de belasting in evenwicht te brengen.
Soorten webarchitectuur op basis van niveaus.
We zullen het hebben over architecturen die kunnen worden toegepast met linux-systemen, met behulp van open-sourcetools zullen we van de meest elementaire naar een behoorlijk geavanceerde gaan die horizontale schaalbaarheid en weerstand tegen falen biedt, al deze architecturen kunnen in elke PaaS of met een eigen infrastructuur.

1. Architectuur op één niveau


Het is de meest elementaire van allemaal waar er slechts één server is met Apache en MySQL die op afstand toegankelijk is. Het is heel gebruikelijk op pagina's met een kleine marge van bezoeken of testomgevingen, het biedt geen enkele tolerantie voor fouten en het is moeilijk om het te gebruiken om horizontaal te groeien.

2. Tweeledige architectuur


Deze keer hebben we de database gescheiden van de webserver, wat een beetje fouttolerantie bood. Op deze manier kan de webserver, als de database faalt, inhoud aanbieden op een statische manier die niet afhankelijk is van de database. En in het geval dat de webserver uitvalt, kunnen we nog steeds toegang krijgen tot de informatie door opnieuw een nieuwe webserver op te zetten. Het ontwerp biedt verschillende gebreken omdat het niet erg schaalbaar is.

3. Architectuur met drie niveaus


Deze keer gaan we een load balancer gebruiken die alle verzoeken van gebruikers zal ontvangen. Deze keer bieden we een meer schaalbaar ontwerp, zodat als onze belasting toeneemt, we meer webservers kunnen toevoegen en kunnen schalen. We kunnen zelfs autoscaling toepassen zodat webservers automatisch worden toegevoegd bij een bepaald belastingsniveau, of op een piekuur. Het probleem met dit ontwerp is dat we onze database kunnen verzadigen.

4. Architectuur met vier lagen


Nu maken we gebruik van een load balancer en een memcached waardoor het systeem schaalbaarder wordt. Met dit ontwerp kunnen we naast fouttolerantie zoveel databases en webservers toevoegen als nodig is. We kunnen de belasting over de databases verdelen met: CASSANDRA het aanbieden van een multi-node implementatie. Dit ontwerp is veel complexer, maar ik voeg een veel grotere fouttolerantie toe en de mogelijkheid om alle niveaus te schalen.

5. Architectuur met vijf niveaus


De inhoud van een webpagina kan worden onderverdeeld in statisch en dynamisch. We verdelen de weblaag bijvoorbeeld in een Apache-server en een andere met JAVA-applicaties die Jetty of JBoss draaien. Apache levert de statische inhoud, terwijl de applicatieserver de dynamische of on-the-fly inhoud afhandelt. Een voorbeeld hiervan kan de FAQ-sectie van een ondersteuningswebsite zijn, aangezien het louter statische inhoud is, kan het worden afgehandeld door APACHE / NGINX.

VERGROTEN

6. Architectuur met zes lagen


We kunnen wat eleganter zijn en een content delivery network (CDN) toevoegen, of wat in AWS bekend staat als Amazon CloudFront CDNWe hebben bijvoorbeeld een e-learningwebsite en onze gebruikers downloaden de handleidingen in pdf of video's van onze website. We kunnen al die bandbreedte voor downloads besparen. Door het aan te bieden vanaf een CDN die ervoor zorgt, kan de rest van het internet op onze infrastructuur draaien.

VERGROTEN

conclusiesWe hebben meerlaagse architecturen gezien die kunnen worden toegepast, afhankelijk van het webverkeer. Het is aan te raden om architecturen te creëren die nadenken over de toekomst, die kunnen schalen en fouttolerantie kunnen behouden, waarbij instortingen op het web worden voorkomen door een gebrek aan middelen of het uitvallen van een onmisbaar knooppunt. Door een aantal van deze ontwerpen samen met andere aanbevelingen zoals back-ups en automatische implementaties te maken, kunnen we een website aanbieden met 99,9 fouttolerante uptime.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave