In het vorige onderwerp van onze LFCA-serie, we gaven een inleiding tot cloudcomputing, de verschillende typen en Clouds en cloudservices en hebben u enkele van de voordelen van cloudcomputing uitgelegd.
Als uw bedrijf nog steeds op de traditionele IT-computeromgeving rijdt, wordt het tijd dat u een niveau hoger gaat en overstapt naar de cloud. Naar schatting zal tegen het einde van 2021 meer dan 90% van de totale werklast in de cloud worden afgehandeld.
Een van de belangrijkste voordelen van het omarmen van cloud computing zijn verbeterde prestaties, hoge beschikbaarheid en schaalbaarheid. We hebben deze zelfs over het hoofd gezien als een van de belangrijkste voordelen van het gebruik van cloudtechnologie.
In dit onderwerp richten we ons op de beschikbaarheid, prestaties en schaalbaarheid van de cloud en proberen we te begrijpen hoe deze drie komen samen om aan de eisen van de klant te voldoen en ervoor te zorgen dat gebruikers toegang hebben tot hun gegevens wanneer ze die nodig hebben vanuit elk deel van de wereld.
De IT-applicaties en -services van een organisatie zijn van cruciaal belang en elke onderbreking van de service kan een diepgaand effect hebben op de omzet. De verwachting van klanten is dat diensten op elk moment en vanaf elke locatie 24 uur per dag bereikbaar zijn. En dat is wat Cloud-technologie wil bieden.
Hoge beschikbaarheid is het uiteindelijke doel van cloud computing. Het streeft ernaar de maximaal mogelijke uptime van de services van een bedrijf te bieden, zelfs in het geval van verstoringen die kunnen worden veroorzaakt door een ongekende serverdowntime of verslechtering van het netwerk.
Hoge beschikbaarheid wordt mogelijk gemaakt door redundante en failover-systemen. Dit gebeurt in een clusteromgeving waar meerdere servers of systemen dezelfde taken uitvoeren en dus redundantie bieden.
Wanneer een server uitvalt, kan de rest nog steeds blijven draaien en de services leveren die door de getroffen server worden geleverd. Een perfect voorbeeld van redundantie is gegevensreplicatie over meerdere databaseservers in een cluster. In het geval dat de primaire databaseserver in het cluster een probleem ondervindt, zal een andere databaseserver ondanks de storing nog steeds de gegevens leveren die gebruikers nodig hebben.
Redundantie elimineert een single point of failure en zorgt voor 99,999% beschikbaarheid van services en applicaties. Clustering zorgt ook voor taakverdeling tussen servers en zorgt ervoor dat de werklast eerlijk wordt verdeeld en dat geen enkele server wordt overweldigd.
Een ander kenmerk van cloud computing is schaalbaarheid. Schaalbaarheid is de mogelijkheid om cloudresources aan te passen aan veranderende eisen. Simpel gezegd, u kunt uw resources naadloos verhogen of verlagen wanneer dat nodig is om aan de vraag te voldoen, zonder afbreuk te doen aan de kwaliteit van de services of downtime.
Stel dat u een blog heeft die hits en meer verkeer begint te krijgen. U kunt eenvoudig meer rekenbronnen, zoals opslag, RAM en CPU, aan uw cloudcomputing-instantie toevoegen om de extra werklast aan te kunnen. Omgekeerd kunt u de resources indien nodig verkleinen. Dit zorgt ervoor dat u alleen betaalt voor wat u nodig heeft en dit onderstreept de schaalvoordelen die de cloud biedt.
Schaalbaarheid is tweeledig: verticaal schalen en horizontaal schalen.
Ook wel aangeduid als ‘opschalen’ verticaal schalen omvat het toevoegen van meer bronnen zoals RAM, opslag en CPU aan uw cloudcomputing-instantie om extra werklast op te vangen. Dit komt overeen met het uitschakelen van uw fysieke pc of server om het RAM-geheugen te upgraden of een extra harde schijf of SSD toe te voegen.
Horizontaal schalen, ook wel bekend als ‘uitschalen' omvat het toevoegen van meer servers aan uw pool van reeds bestaande servers om de verdeling van de werklast over meerdere servers te garanderen. Met horizontale schaling bent u niet beperkt tot de capaciteit van een enkele server, in tegenstelling tot verticale schaling. Dit zorgt voor meer schaalbaarheid en minder downtime.
En hier is waarom. Met horizontale schaling, voegt u in feite meer bronnen zoals servers of opslag toe aan uw reeds bestaande pool van bronnen. Hierdoor kunt u de kracht en prestaties van meerdere rekeninstances combineren in één, en zo betere prestaties krijgen in plaats van alleen resources op een enkele server toe te voegen. Extra servers betekenen dat u niet te maken krijgt met een tekort aan resources.
Aanvullend, horizontale schaling biedt redundantie en fouttolerantie op een zodanige manier dat zelfs als één server wordt getroffen, de rest toegang tot de vereiste services blijft bewijzen. Verticale schaling wordt geassocieerd met een single point of failure. Als de rekeninstantie crasht, gaat alles mee.
Horizontaal schalen biedt ook maximale flexibiliteit in tegenstelling tot verticale schaling waar applicaties als één grote eenheid worden gebouwd. Dit maakt het een grotere uitdaging om delen van code te beheren, te upgraden of te wijzigen zonder het hele systeem opnieuw te hoeven opstarten. Uitschalen maakt het ontkoppelen van applicaties mogelijk en zorgt voor een naadloze upgrade met minimale downtime.
Ervoor zorgen dat de applicatieprestaties voldoen aan de eisen van de klant kan een hele opgave zijn, vooral als je meerdere componenten in verschillende omgevingen hebben die constant met elkaar moeten communiceren ander.
Problemen zoals latentie zullen zich waarschijnlijk manifesteren en de prestaties beïnvloeden. Het is ook niet eenvoudig om de prestaties te voorspellen wanneer resources door verschillende entiteiten worden gedeeld. Hoe dan ook, u kunt nog steeds hoge prestaties behalen en het hoofd boven water houden door de volgende maatregelen te implementeren.
Zorg ervoor dat u de juiste cloudinstanties gebruikt met voldoende middelen om de workloads van uw applicaties en services aan te kunnen. Zorg er voor resource-intensieve applicaties voor dat u voldoende RAM, CPU en opslagresources in uw cloudinstantie voorziet om een mogelijk resourcetekort te voorkomen.
Implementeer een load balancer om het netwerkverkeer eerlijk over uw resources te verdelen. Dit zorgt ervoor dat geen van uw toepassingen wordt overspoeld door de vraag. Stel dat uw webserver veel verkeer ontvangt dat vertragingen veroorzaakt en de prestaties beïnvloedt.
Een perfecte oplossing zou zijn om te implementeren horizontale schaling met in totaal 4 webservers achter een load balancer. De load balancer verdeelt het netwerkverkeer over de 4 webservers en zorgt ervoor dat niemand wordt overspoeld door de werklast.
Gebruik caching-oplossingen om de toegang tot bestanden door applicaties te versnellen. Caches slaan vaak gelezen gegevens op en elimineren daardoor constante gegevenszoekacties die de prestaties kunnen beïnvloeden. Ze verminderen de latentie en werklast omdat de gegevens al in de cache zijn opgeslagen, waardoor de responstijden worden verbeterd.
Caching kan op verschillende niveaus worden geïmplementeerd, zoals applicatieniveau, databaseniveau. Populaire caching-tools zijn onder meer: Redis, Geheugencache, en Verniscache.
Zorg er ten slotte voor dat u de prestaties van uw servers en applicaties in de gaten houdt. Cloudproviders bieden native tools waarmee u uw cloudservers vanuit een webbrowser in de gaten kunt houden.
Daarnaast kun je eigen initiatief nemen en installeer gratis en open-source monitoringtools waarmee u uw toepassingen en servers in de gaten kunt houden. Voorbeelden van dergelijke toepassingen zijn: Grafana, Netdata, en Prometheus, om er maar een paar te noemen.
We kunnen niet genoeg benadrukken hoe beschikbaarheid, schaalbaarheid en prestaties cruciaal zijn in de cloud. De drie factoren bepalen de servicekwaliteit die u van uw cloudleverancier krijgt en trekken uiteindelijk de grens tussen het succes of het falen van uw bedrijf.