Innehållsförteckning
Vad är skalbarhet?Skalbarhet är den önskvärda egenskapen hos ett system, nätverk eller en process, som indikerar dess förmåga att reagera och anpassa sig utan att förlora kvalitet, eller att hantera kontinuerlig arbetstillväxt på ett flytande sätt, att vara beredd att växa sig större utan att förlora kvalitet i de tjänster som erbjuds .
Du kan säga vad som är vårt systems förmåga att stödja en större arbetsbelastning med modifieringar eller tillägg som är rimliga när det gäller kostnad, tid, tid och komplexitet.
Typer av skalbarhet
I allmänhet kan vi tala om vertikal och horisontell skalning eller en kombination av båda.
Vertikal skalning
Det består i princip av att öka kapaciteten för ett eller flera specifika element i vår arkitektur, till exempel att expandera minnet på vår centrala server, eller ersätta processorerna med andra högre hastigheter. Sammanfattningsvis kan du öka serverns kapacitet, något som är mycket vanligt när vi använder virtualisering och vi säger att vid denna tidpunkt kommer servern att ha 30% RAM -minne tillgängligt.
Horisontell skalning
Det är den som vi kommer att beskriva i handledningen, bygger på att öka antalet noder som utför samma uppgif.webpt, med olika typer av planering, till exempel om vi har en mättad webbserver, lägger vi till en annan för att balansera belastningen.
Typer av webbarkitektur baserad på nivåer.
Vi kommer att prata om arkitekturer som kan tillämpas med Linux-system, med hjälp av open source-verktyg går vi från de mest grundläggande till några ganska avancerade som erbjuder horisontell skalbarhet och motstånd mot misslyckanden, alla dessa arkitekturer kan tillämpas i valfri PaaS eller med egen infrastruktur.
1. Arkitektur på en nivå
Det är det mest grundläggande av allt där det bara finns en server med Apache och MySQL som kan nås på distans. Det är mycket vanligt på sidor med liten besöksmarginal eller testmiljöer, det ger ingen toleransmarginal för misslyckanden och det är svårt att använda det för att växa horisontellt.
2. Arkitektur i två nivåer
Den här gången separerade vi databasen från webbservern som erbjuder lite fiktolerans. På detta sätt, om databasen misslyckas, kan webbservern erbjuda innehåll på ett statiskt sätt som inte är beroende av databasen. Och om webbservern misslyckas kan vi fortfarande komma åt informationen genom att höja en ny webbserver igen.Designen erbjuder flera brister eftersom det inte är en mycket skalbar design.
3. Arkitektur i tre nivåer
Den här gången börjar vi använda en lastbalanserare som tar emot alla förfrågningar från användare. Den här gången erbjuder vi en mer skalbar design så att om vår belastning ökar kan vi lägga till fler webbservrar och skala. Vi kan till och med tillämpa autoskalning så att webbservrar läggs till automatiskt vid en viss belastningsnivå eller vid en spetstid. Problemet med denna design är att vi kan mätta vår databas.
4. Arkitektur på fyra nivåer
Nu använder vi en lastbalanserare och en memcachad som gör systemet mer skalbart. Med denna design kan vi lägga till så många databaser och webbservrar som behövs utöver att erbjuda feltolerans. Vi kan dela belastningen mellan databaserna med CASSANDRA erbjuder en implementering av flera noder. Denna design är mycket mer komplex, men jag lägger till mycket större feltolerans och möjligheten att skala alla dess nivåer.
5. Femstegs arkitektur
Innehållet på en webbsida kan delas in i statisk och dynamisk. Till exempel delar vi upp webbskiktet i en Apache -server och en annan med JAVA -applikationer som kör Jetty eller JBoss. Apache tillhandahåller det statiska innehållet medan applikationsservern hanterar det dynamiska eller direkta innehållet. Ett exempel på detta kan vara FAQ -avsnittet på en supportwebbplats, eftersom det bara är statiskt innehåll kan det hanteras av APACHE / NGINX.
FÖRSTORA
6. Sexstegs arkitektur
Vi kan vara lite mer eleganta och lägga till ett innehållsleveransnätverk (CDN), eller vad i AWS är känt som Amazon CloudFront CDNTill exempel har vi en e-learningwebbplats och våra användare laddar ner guiderna i PDF eller videor från vår webbplats. Vi kan spara all den bandbredd som är avsedd för nedladdningar, genom att erbjuda den från ett CDN som tar hand om den, kan resten av webben köras på vår infrastruktur.
FÖRSTORA