Hoe schaalbare webapplicaties te bouwen

Hoe schaalbare webapplicaties te bouwen


Een schaalbare webapplicatie wordt zo genoemd omdat zij lineair meer verzoeken kan verwerken op een elegantere manier. Naarmate meer hardware wordt toegevoegd, zal de website veel aanvragen tegelijk kunnen verwerken. Zeggen dat een website schaalbaar is, betekent gewoon dat naarmate het aantal gebruikers toeneemt en de aanvragen overlopen, de website ze allemaal even goed kan verwerken.

Voorbeeld van een populaire website die met succes is geschaald.

Als we kijken naar de groei van Facebook, zou het verbazingwekkend zijn om te zien hoe het in de loop der jaren is gegroeid. Zelfs als u geen regelmatige Facebook-gebruiker bent, kunt u moeilijk voorbijgaan aan de impact die het sociale mediakanaal heeft op ondernemingen en bedrijven. Volgens een statistiek zijn er meer dan
1,94 miljard actieve Facebook-gebruikers voor maart 2017
, die elk jaar een stijging van meer dan 18% registreren. Wat de dagelijkse mobiele actieve gebruikers betreft, zijn de cijfers verbluffend: 1,15 miljard gebruikers.

Facebook is geschreven in PHP, en hun enorme succes ligt in het vermogen om op te schalen naar een miljoen gebruikers, dankzij een enorme applicatie-architectuur. De architectuur vermijdt knelpunten en is daardoor schaalbaar in elke taal. De vorm van de curve (verhouding tussen kosten en gebruik) is bepalend voor de architectuur van de toepassing. Wanneer een toepassing schaalbaar is, zal de curve meer diagonaal zijn, maar wanneer zij geconfronteerd wordt met knelpunten, zal zij bijna verticaal worden.

De gebruikte taal, database of compiler is ook belangrijk voor de vorm van de niet-lineaire curve. Als er een onderliggende ontwerpfout is (meer dan het uitvoeringsdetail), dan zal de curve snel omhoog schieten. De steeds evoluerende architectuur van Facebook wordt verzorgd door enkele van de beste ingenieurs in de industrie. Facebook heeft zijn eigen versie van geoptimaliseerd PHP en heeft totaal nieuwe software ontwikkeld zoals Apache Cassandra.

Nu komt de miljoen dollar vraag – Hoe bouw je schaalbare webapplicaties?

Hier zijn enkele eenvoudige opties om uw webapplicaties te schalen:

1. Opschaling

Zodra de belasting van de back-end banden te zwaar wordt, kan de website niet meer functioneren. Een haalbare, maar waarschijnlijk zeer dure optie zou zijn om de middelen per entiteit op te schalen. Schaal dit ook op andere dimensies zoals netwerksnelheid, IOP’s, opslagcapaciteit en geheugen. De reden waarom dit duur wordt, is dat het geen ingebouwde elasticiteit biedt, zodat dit duur kan worden wanneer de belasting laag is.

Het is echter belangrijk op te merken dat een uit te schalen architectuur een load balancer nodig heeft (verzoeken van eindgebruikers, grens tussen externe en internationale netwerken.) zodat het verbindingen van een bepaald type en een scangroep (voor het bijhouden van de systeembelasting, het spawnen van nieuwe CPU-instanties en het bijhouden van de inventaris van actieve instanties) kan streamen.

2. Caching

De behoefte aan schaalvergroting heeft geleid tot de vraag naar en de inzet van grootschalige schaalvergroting. Caching kan de prestaties verbeteren en het verbruik van middelen verminderen. Het gebruik van middelen omvat CPU, S3-kosten, kosten voor gegevensopslag, extern API-gebruik en database. Om te bepalen waar caching kan worden toegepast, moet u een gegevensanalyse uitvoeren om inzicht te krijgen in de verdeling van verzoeken en gegevensgroottes, met inbegrip van de verhouding tussen lezen en schrijven.

3. Het soort partities dat moet worden gedaan

Het doel van schaalvergroting is natuurlijk om capaciteit toe te voegen. Dat kan op twee manieren – verticaal of horizontaal. Bij verticale schaling voegt u meer middelen toe, bijvoorbeeld grotere of hardere schijven aan een enkele server. De rekenoperatie is groter, met beter geheugen en snellere CPU. Bij verticale schaalvergroting neemt u een enkele bron en verhoogt u de verwerkingscapaciteit. Bij horizontale schaling kunt u meer knooppunten toevoegen. De meest gebruikelijke manier om horizontaal te schalen is door diensten op te delen in partities of shards. Deze scherven zouden worden toegewezen voor specifieke functies (bijvoorbeeld voor de belangen van verschillende soorten gebruikers). Het voordeel van shards is dat zij voor opslag van extra capaciteit kunnen zorgen. Het addertje onder het gras is echter dat uw eerste ontwerp voorzieningen moet hebben voor horizontale schaalvergroting, omdat het later wel eens heel moeilijk zou kunnen worden dit toe te voegen.

Dingen om te onthouden tijdens het schalen van toepassingen, Noteer deze punten tijdens de taak

1. Geen concessies aan de up-time van de website

De website moet te allen tijde beschikbaar zijn voor gebruikers. Stel je voor dat je een e-commence store hebt en dat de server bij elke piek in aanvragen uitvalt. Up-time van een website is dus heel belangrijk, en schaal uw webapplicatie zo dat ze altijd beschikbaar is, ongeacht systeemstoringen en onderbrekingen.

2. Ophaaloptie

Gebruikers kunnen terugkomen om dezelfde gegevens te bekijken, dus ze moeten direct toegang hebben tot het gezonde. Tenzij je natuurlijk de gegevens laat bijwerken. U kunt het vertrouwen van de gebruikers winnen als zij weten dat zij te allen tijde toegang kunnen krijgen tot websitegegevens.

3. Prestaties

Het belangrijkste doel van het schalen van de toepassing is te zorgen voor uitstekende prestaties. Een snelle reactie met onmiddellijke opvraagbaarheid gevolgd door een lage latentie is uiterst belangrijk.

4. Beheersbaarheid

Na het opschalen van de website is het heel belangrijk om te controleren of de website beheersbaar is, zodat hij gemakkelijk te bedienen, te onderhouden en bij te werken is.

Conclusie

Er bestaat een misvatting dat PHP niet schaalbaar is. Hoe zou dan andere grootschalige sites PHP draaien? Schaalbaarheid heeft meer te maken met toepassingsarchitectuur dan met taal. De tijd die nodig is om schaalbare webapplicaties te ontwikkelen hangt af van de complexiteit van de applicatie en het gebruikte framework. Er zijn twee verschillende programmeerlagen in een schaalbare app: Front end en Back end. Zoals de naam al aangeeft, is de voorkant iets waarmee de gebruiker interageert en de interface kan van alles zijn, van Android tot iOS. De back-end bestaat uit ongeveer 80% van het totale werk, maar de gebruiker is zich niet bewust van dit deel van zijn webapplicatie. Functionaliteit speelt een grote rol bij schaalbaarheid. Een gebruiker wil misschien afbeeldingen laden, dus moet de schaalbaarheid van de opslag in aanmerking worden genomen omdat hij die op elk moment moet opvragen. Voor betere beelddownloads en -aanvragen is een lage latentie erg belangrijk.

Hier staan enkele interessante artikelen over dit onderwerp:
7 Stadia van het schalen van webapplicaties, Strategieën voor architecten.
Hoe bouw je schaalbare webapplicaties?
Schaalbare applicaties bouwen op google cloud platform.

Flickr.com/ klarititemplateshop.com/ Blogtrepreneur


Over de auteur: Deepak is hoofd van PHPBabu en werkt ook bij het moederbedrijf YUHIRO Technologies Private Limited als office manager.

Plaats een reactie