Antwoorden>Meer informatie over betrouwbaarheid en uptime>Wat is failover?
Wat is failover?
// Tags
failoverautomatische failover
TL;DR: Failover is het automatische proces waarbij zonder onderbreking van de dienstverlening wordt overgeschakeld van een defecte component naar een werkende back-up. In een blockchain-infrastructuur zorgt failover ervoor dat, wanneer een node, server of datacenter uitvalt, de RPC-verzoeken van je applicatie naadloos worden omgeleid naar endpoint ander werkend endpoint.
Het basisconcept
Stel je voor dat je op een snelweg rijdt en de hoofdrijstrook plotseling geblokkeerd raakt. Als er geen alternatieve route is, zit je vast. Maar als het snelwegnetwerk je automatisch omleidt naar een parallelle rijstrook zonder dat je het zelfs maar merkt, dan is dat een voorbeeld van failover in de praktijk.
Op het gebied van infrastructuur is failover het mechanisme dat detecteert wanneer er iets defect raakt en het verkeer onmiddellijk omleidt naar een back-up. Het doel is nul (of near ) onderbreking. Uw applicatie blijft verzoeken versturen, antwoorden ontvangen en normaal functioneren, ook al is de component die deze verzoeken afhandelt achter de schermen zojuist gewisseld.
Hoe failover werkt in blockchain-infrastructuur
Blockchain-infrastructuur bestaat uit een aantal specifieke onderdelen die defect kunnen raken. De meest voorkomende zijn afzonderlijke knooppunten, hele regio’s of datacenters, en specifieke implementaties van blockchain-clients. Een goed failover-systeem biedt ondersteuning voor alle drie.
Op knooppuntniveau verloopt de failover relatief eenvoudig. Een load balancer houdt continu de status van elk knooppunt in de pool in de gaten en controleert daarbij de responstijden, foutpercentages en blokhoogte. Als een knooppunt fouten begint te retourneren of achterop raakt bij de synchronisatie, stopt de load balancer met het doorsturen van verkeer naar dat knooppunt en verdeelt hij de verzoeken over de overige, goed functionerende knooppunten.
Op regionaal niveau wordt het interessanter. Als een heel datacenter of een cloud-beschikbaarheidszone uitvalt, treedt de op DNS gebaseerde failover in werking. Verzoeken die normaal gesproken naar die regio zouden worden gerouteerd, worden automatisch omgeleid naar de dichtstbijzijnde regio die nog wel functioneert. Daarom is geografische spreiding zo belangrijk. Een provider die knooppunten in slechts één regio exploiteert, heeft geen uitwijkmogelijkheid wanneer die regio uitvalt.
Op clientniveau draaien sommige providers meerdere blockchain-clientimplementaties (bijvoorbeeld zowel Geth als Erigon voor Ethereum). Als één clientimplementatie een bug of een prestatieprobleem vertoont, kan het verkeer worden omgeleid naar knooppunten waarop de alternatieve client draait. Deze vorm van redundantie komt minder vaak voor, maar wordt steeds belangrijker.
Actieve versus passieve failover
Er zijn twee algemene benaderingen van failover, en dit onderscheid is van belang voor de prestaties.
In actieve-actieve configuraties zijn alle back-upcomponenten al actief en verwerken ze verkeer. Wanneer er één uitvalt, nemen de andere gewoon het aandeel van de belasting over. Er is geen vertraging door een ‘koude start’, omdat alles al op temperatuur is. Dit is het voorkeursmodel voor blockchain-infrastructuur, omdat knooppunten gesynchroniseerd moeten blijven met de keten. Een knooppunt dat niet actief blokken verwerkt, loopt achter op de blokhoogte en is onbruikbaar totdat het zijn achterstand heeft ingehaald.
Bij actieve-passieve configuraties blijven back-upcomponenten inactief totdat ze nodig zijn. Wanneer de primaire component uitvalt, wordt de passieve back-up geactiveerd en neemt deze de taken over. Dit is goedkoper in het gebruik, maar zorgt wel voor een vertraging. Voor blockchain-knooppunten kan deze vertraging aanzienlijk zijn, omdat het passieve knooppunt mogelijk eerst blokken moet synchroniseren voordat het nauwkeurige gegevens kan leveren.
De meeste blockchain-infrastructuren in productie maken juist om deze reden gebruik van ‘active-active’ failover. Je kunt het je niet veroorloven om te wachten tot een ‘cold node’ zijn achterstand heeft ingehaald wanneer je DeFi-protocol gegevensnauwkeurigheid binnen een fractie van een seconde vereist.
In de onderstaande tabel wordt weergegeven hoe de twee failover-modellen zich tot elkaar verhouden voor blockchain-workloads:
Aspect
Actief-Actief
Actief-Passief
Back-upstatus
Alle knooppunten zijn actief en verwerken verkeer
Stand-by-knooppunten blijven inactief totdat ze nodig zijn
Failover-vertraging
Near , geen koude start
Let op: de back-up moet eerst opstarten en synchroniseren
Exploitatiekosten
Hoger: je betaalt voor de volledige capaciteit
In de stand-bymodus worden minder bronnen verbruikt
Synchronisatie van blokhoogte
Altijd actueel
Kan achterblijven en moet dan een inhaalslag maken
Het meest geschikt voor
Productie-RPC en realtimegegevens
Kostengevoelige of niet-kritieke werklasten
Waarom failover onontbeerlijk is voor blockchain-apps
Traditionele webapplicaties kunnen vaak korte onderbrekingen wel aan. De gebruiker vernieuwt de pagina en alles werkt weer. Blockchain-applicaties hebben die luxe om verschillende redenen niet.
Transacties zijn tijdgevoelig. Als je applicatie een transactie indient en het endpoint halverwege het verzoek endpoint , kan die transactie verloren gaan of dubbel worden ingediend. Verouderde gegevens zijn gevaarlijk. Een node die achterloopt op de blokhoogte, retourneert verouderde informatie. Als uw applicatie een verouderd saldo leest en daarop reageert, kan dit financiële gevolgen hebben. Gebeurtenissen zijn onomkeerbaar. In tegenstelling tot traditionele systemen waar u een poging kunt herhalen of terugdraaien, zijn acties op de blockchain permanent. Het overmaken van geld op basis van onjuiste gegevens van een defecte node is niet iets wat u ongedaan kunt maken.
Daarom is failover geen functie die je gewoon ‘leuk’ zou vinden om te hebben. Het is een fundamentele vereiste voor elke applicatie die in een productieomgeving met een blockchain communiceert.
Hoe Quicknode failover
De infrastructuur Quicknode maakt gebruik van ‘active-active’ failover, verspreid over meer dan 14 regio’s en meerdere cloudproviders. Elk verzoek wordt doorgestuurd via een wereldwijde load-balancing-laag die continu de status van de nodes evalueert, waaronder de synchronisatiestatus van de blokhoogte, de responstijd en de foutpercentages. Als de prestaties van een node of regio achteruitgaan, wordt het verkeer automatisch omgeleid naar de op één na beste optie, zonder dat de ontwikkelaar hiervoor iets hoeft te doen.
Voor teams die de sterkste garanties nodig hebben, clusters speciale clusters een geïsoleerde infrastructuur met op maat gemaakte failover-configuraties en SLA’s met gegarandeerde beschikbaarheid.
Wat is het verschil tussen failover en load balancing?
Failover en load balancing hangen nauw met elkaar samen, maar bieden een oplossing voor verschillende problemen. Load balancing verdeelt inkomende verzoeken over een pool van goed functionerende knooppunten, zodat geen enkel knooppunt overbelast raakt. Failover treedt in werking wanneer een van die knooppunten niet langer goed functioneert: het verkeer wordt dan weggehaald bij het defecte knooppunt en herverdeeld over de overige knooppunten. In de praktijk werken beide mechanismen samen, en voor een robuuste opstelling met hoge beschikbaarheid is het noodzakelijk dat ze naast elkaar worden ingezet.
Capaciteit
Lastverdeling
Failover
Hoofdfunctie
Het verkeer gelijkmatig verdelen
Verkeer omleiden om storingen te vermijden
Wanneer het in werking treedt
Voortdurend, bij elk verzoek
Alleen wanneer een onderdeel verslijt of defect raakt
Hoofddoel
Prestaties en gelijkmatige benutting
Continuïteit en beschikbaarheid
Trigger
Aantal aanvragen
Fout bij gezondheidscontrole
Wat wordt beschouwd als een enkel storingspunt?
Een ‘single point of failure’ is elk onderdeel dat het hele systeem platlegt wanneer het uitvalt. Een enkel knooppunt, een enkele cloudregio of één clientimplementatie kan elk een ‘single point of failure’ vormen. Failover neemt deze zwakke schakels weg door altijd een goed functionerend alternatief paraat te houden dat het kan overnemen. Het doornemen van de veelvoorkomende storingspatronen bij blockchains is de snelste manier om de ‘single points of failure’ te vinden die in je stack verborgen zitten.
Hoe controleer je of de failover goed werkt?
Je meet de failover aan de hand van een aantal concrete indicatoren. De uptime geeft aan hoe vaak de dienst bereikbaar was, de hersteltijd laat zien hoe lang het duurde voordat het verkeer na een storing werd omgeleid, en het foutenpercentage tijdens een incident geeft aan hoeveel verzoeken werden beïnvloed voordat de omschakeling was voltooid. Door je blockchain-infrastructuur continu te monitoren, komen deze cijfers naar voren, zodat je kunt controleren of de failover naar behoren functioneert.
Hoe kun je de failover testen voordat er daadwerkelijk een storing optreedt?
De enige manier om erop te vertrouwen dat de failover goed werkt, is door deze te oefenen. Teams halen bewust een node of regio binnen een gecontroleerd tijdsbestek offline en controleren of het verkeer foutloos wordt omgeleid; deze aanpak wordt vaak ‘chaostesten’ genoemd. Als je je eigen nodes beheert, kun je een proces stoppen en kijken waar de verzoeken naartoe gaan. Als je gebruikmaakt van een beheerde provider zoals de Quicknode Core API, wordt de failover voor je afgehandeld, hoewel je deze nog steeds kunt controleren met regio-overschrijdende belastingstests.
Veelgestelde vragen
Wat is failover in eenvoudige bewoordingen?
Failover is de automatische omschakeling van een defecte component naar een werkende back-up, zodat een dienst blijft draaien. Meestal merkt de gebruiker niet eens dat de omschakeling heeft plaatsgevonden.
Is failover hetzelfde als redundantie?
Nee. Redundantie houdt in dat er reservecomponenten klaarstaan, terwijl failover het proces is waarbij het verkeer naar die reservecomponenten wordt omgeleid wanneer er iets uitvalt. Er moet infrastructuurredundantie aanwezig zijn om failover te laten werken.
Hoe lang duurt de failover?
Bij actief-actieve systemen verloopt de failover vaak near , omdat de back-ups het verkeer al verwerken. Bij actief-passieve systemen kan dit enkele seconden tot enkele minuten duren, terwijl de stand-by-server opstart en synchroniseert.
Voorkomt failover alle uitval?
Failover zorgt voor een drastische vermindering van de uitvaltijd, maar kan niet in elke situatie een volledige onderbrekingsvrijheid garanderen. Een goed ontworpen active-active-infrastructuur die over meerdere regio’s is verspreid, komt daar wel heel dicht bij in de buurt; daarom is dit de standaard voor blockchain-apps in productieomgevingen.
Waarom is failover zo belangrijk voor blockchain-apps?
Blockchain-transacties zijn tijdgevoelig en vaak onomkeerbaar, waardoor een defecte endpoint een transactie endpoint verliezen of verouderde gegevens endpoint terugsturen. Automatische failover waarborgt zowel de betrouwbaarheid als het geld van de gebruikers, wat van cruciaal belang is voor diensten die zijn gebaseerd op realtime streams.