Skalerbar webarkitektur

Hva er skalerbarhet?
Skalerbarhet er den ønskelige egenskapen til et system, nettverk eller prosess, som indikerer dets evne til å reagere og tilpasse seg uten å miste kvalitet, eller for å håndtere kontinuerlig jobbvekst på en flytende måte, å være forberedt på å vokse seg større uten å miste kvalitet i tjenestene som tilbys. .
Du kan si hva som er systemets evne til å støtte en større arbeidsbelastning med modifikasjoner eller utvidelser som er rimelige når det gjelder kostnad, tid, tid og kompleksitet.
Typer skalerbarhet
Generelt kan vi snakke om vertikal og horisontal skalering eller en kombinasjon av begge.

Vertikal skalering


Den består i utgangspunktet av å øke kapasiteten til ett eller flere spesifikke elementer i arkitekturen vår, for eksempel utvide minnet til vår sentrale server, eller erstatte CPU -ene med andre høyere hastigheter. Oppsummert, øk kapasiteten til serveren, noe som er veldig vanlig når vi bruker virtualisering, og vi sier at serveren på dette tidspunktet vil ha 30% RAM tilgjengelig.

Horisontal skalering


Det er den vi vil detaljere i opplæringen, er basert på å øke antall noder som utfører den samme oppgaven, ved å bruke forskjellige typer planlegging, for eksempel hvis vi har en mettet webserver, legger vi til en annen for å balansere belastningen.
Typer nettarkitektur basert på nivåer.
Vi vil snakke om arkitekturer som kan brukes med linux-systemer, ved hjelp av åpen kildekode-verktøy vil vi gå fra de mest grunnleggende til noen ganske avanserte som tilbyr horisontal skalerbarhet og motstand mot feil, alle disse arkitekturer kan brukes i alle PaaS eller med egen infrastruktur.

1. Arkitektur på ett nivå


Det er det mest grunnleggende av alt der det bare er én server med Apache og MySQL som kan nås eksternt. Det er veldig vanlig på sider med liten besøksmargin eller testmiljøer, det gir ingen toleranse for feil, og det er vanskelig å bruke det til å vokse horisontalt.

2. To-lags arkitektur


Denne gangen skilte vi databasen fra webserveren som tilbyr litt feiltoleranse. På denne måten, hvis databasen mislykkes, kan webserveren tilby innhold på en statisk måte som ikke er avhengig av databasen. Og i tilfelle webserveren mislykkes, kan vi fremdeles få tilgang til informasjonen ved å heve en ny webserver igjen.Designet gir flere feil da det ikke er en veldig skalerbar design.

3. Trelags arkitektur


Denne gangen begynner vi å bruke en lastbalanser som vil motta alle forespørsler fra brukere. Denne gangen tilbyr vi en mer skalerbar design, slik at hvis belastningen øker, kan vi legge til flere webservere og skala. Vi kan til og med bruke autoskaling slik at webservere legges til automatisk ved et visst lastnivå, eller i en topptime. Problemet med dette designet er at vi kan mette databasen vår.

4. Fire-lags arkitektur


Nå bruker vi en lastbalanser og en memcachet, noe som gjør systemet mer skalerbart. Med dette designet kan vi legge til så mange databaser og webservere som nødvendig i tillegg til å tilby feiltoleranse. Vi kan dele belastningen mellom databasene med CASSANDRA tilbyr en implementering av flere noder. Denne designen er mye mer kompleks, men jeg legger til mye større feiltoleranse og muligheten til å skalere alle nivåene.

5. Fem-lags arkitektur


Innholdet på en webside kan deles inn i statisk og dynamisk. For eksempel deler vi nettlaget i en Apache -server og en annen med JAVA -applikasjoner som kjører Jetty eller JBoss. Apache gir det statiske innholdet mens applikasjonsserveren håndterer det dynamiske eller on-the-fly-innholdet. Et eksempel på dette kan være FAQ -delen på et støttenettsted, ettersom det bare er statisk innhold, kan det håndteres av APACHE / NGINX.

FORSTØRRE

6. Seks-lags arkitektur


Vi kan være litt mer elegante og legge til et innholdsleveringsnettverk (CDN), eller det som i AWS er ​​kjent som Amazon CloudFront CDNFor eksempel har vi et e-læringsnettsted, og brukerne våre laster ned veiledningene i PDF eller videoer fra nettstedet vårt. Vi kan lagre all den båndbredden som er dedikert til nedlastinger, Ved å tilby den fra et CDN som tar seg av det, kan resten av nettet kjøre på vår infrastruktur.

FORSTØRRE

KonklusjonerVi har sett arkitekturer på flere nivåer som kan brukes, avhengig av webtrafikken. Det er lurt å lage arkitekturer som tenker på fremtiden, som kan skalere og opprettholde feiltoleranse, unngå kollaps på nettet på grunn av mangel på ressurser eller svikt i en uunnværlig node. Ved å lage noen av disse designene sammen med andre anbefalinger som sikkerhetskopiering og automatisk distribusjon kan vi tilby et nettsted med 99,9 feiltolerante oppetid.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave