Vertragingen dienstverlening X-Guard

Terugblik

Storing X-Guard 28 juni 2023

Op 28 juni 2023 heeft er vanaf 08:40 (Nederlandse zomertijd) een storing plaatsgevonden in het volledige X-Guard-systeem.

In februari van dit jaar is X-Guard overgestapt naar software in volledig eigen beheer. Tijdens de migratie naar ons nieuwe platform zijn geen verstoringen geweest.

Nu het systeem enkele maanden foutloos operationeel heeft gedraaid werd het IT-team van X-Guard vandaag geconfronteerd met vertragingen en uitval van meerdere systemen. Een dergelijke uitval was niet eerder geconstateerd dan wel geanticipeerd.

Wat is er gebeurd?

Rond 08:40 werd het IT-team gealarmeerd over vertragingen in de wachtrijen van onze systemen (“Message queues”). Deze wachtrijen zijn verantwoordelijk voor het verwerken van alles wat er in ons systeem gebeurd op een manier waarbij we zeker weten dat er geen berichten kwijt kunnen raken vanaf het moment dat ze ons systeem ingekomen zijn.

De X-Guard Alarm-app (en een hoop andere systemen en devices) stuurt continu berichten naar deze wachtrijen ter afhandeling. Bij de afhandeling van een bericht van de app wordt er op de achtergrond een hoop werk gedaan om uw veiligheid te garanderen.

Bij het waarnemen van de vertragingen werd al snel duidelijk dat ons centrale systeem (“Main API”) onbereikbaar of traag bereikbaar was. Alle diensten van X-Guard draaien in een structuur waarbij automatisch meer servers beschikbaar worden gemaakt bij drukte op het platform (“High availability, auto scaling microservice architecture”). Door de setup van ons platform wees alles er op dat de bottleneck die we waarnamen slechts van 1 plek kon komen: de centrale database.

De database

X-Guard gebruikt meerdere databases en meerdere databasetechnieken voor het draaien van haar dienstverlening. De database is net als onze overige dienstverlening hoog schaalbaar.

Bij analyse van de database werd waargenomen dat deze inderdaad op volledige rekencapaciteit draaide (“100% CPU”). Normaliter had alvorens dit stadium wordt bereikt de database automatisch moeten opschalen naar een server met hogere capaciteit. De parameters die bepalen of dit mag gebeuren stonden onvoldoende adequaat ingesteld.

Doordat onze hoofddatabase de verzoeken van ons systeem niet op tijd kon verwerken raakte de systemen die hierop vertrouwen overbelast.

Hoe hebben we dit hersteld?

We hebben in korte periode handmatig onze dienstverlening en database ruim opgeschaald. We hebben hier gekozen om direct radicaal op te schalen, hoger dan het automatisch schalen volgens de ingestelde configuraties automatisch mag uitvoeren.

Het schalen van de database is helaas een langzaam proces. Op het moment dat dit effect had, zagen we dat in combinatie met het opschalen van onze eigen dienstverlening de wachtrijen begonnen terug te lopen.

De wachtrijen waren op het hoogste punt meer dan 70 minuten. Dit betekent dat op het moment dat een alarm gemaakt werd, dit mogelijk tot 70 minuten kon duren voordat deze aan kwam bij de mensen die moesten komen helpen.

Tijdens de verstoringen werden er enkele kleinere problemen waargenomen. Zo werden notificaties, telefoontjes en sms’jes die wel verstuurd werden mogelijk meerdere keren afgeleverd. Dit probleem is opgelost om 09:40 door een wijziging in de code door te voeren.

Tijdlijn

  • 08:40 - Eerste vertragingen waargenomen
  • 08:50 - Centraal systeem van X-Guard grotendeels onbereikbaar
  • 09:05 - Start handmatig schalen dienstverlening
  • 09:15 - Start handmatig schalen database
  • 09:40 - Implementatie wijziging t.b.v. voorkomen dubbele alarmmeldingen
  • 09:50 - Piek van vertraging bereikt, eerste afname waargenomen (70 minuten)
  • 09:57 - Wachtrijen volledig genormaliseerd
  • 10:00 - Alarmeren via de app hersteld
  • 10:05 - Waarneming niet-functioneren van Lora-knoppen
  • 10:10 - Herstel Lora-knoppen na handmatige acties
  • 10:10 - Volledig serviceherstel

Hoe voorkomen we dit in de toekomst?

Wij nemen de stabiliteit van ons platform uiterst serieus. Een verstoring zoals we deze vanochtend hebben waargenomen is onacceptabel.

X-Guard doet er alles aan om problemen in haar software te voorkomen. Op basis van het bovenstaande zijn er een aantal wijzigingen ingepland of direct doorgevoerd:

  1. De parameters waar onze database naar luistert om te bepalen of hij mag opschalen worden aangepast
  2. Verschillende optimalisaties in de code worden doorgevoerd zodat onze database efficiënter gebruikt wordt
  3. De snelheden en limieten van de wachtrijen zijn bijgewerkt op basis van de ervaring die we hebben opgedaan tijdens dit incident
  4. Er wordt een onderzoek gestart naar de benodigde handmatige reset van de Lora-servers. Deze zou in theorie niet nodig moeten zijn.
  5. Monitoringsparamaters worden bijgewerkt zodat een vertraging voordat deze tot grote problemen leidt kan worden geconstateerd. Terugkijkend in de grafieken waren er eerder signaleren dat de database aan haar limieten liep.
  6. Interne documentatie wordt bijgewerkt op basis van onze ervaringen van vandaag

Slotwoord

We hebben er vertrouwen in dat we soortgelijke problemen in de toekomst kunnen voorkomen.

Hoewel we natuurlijk niet op elk toekomstig probleem kunnen anticiperen zijn we er zeker van dat het X-Guard-platform robuust en stabiel is. Het incident dat zich vandaag heeft voortgedaan is een uitzondering waar wij onze lering uit trekken.

We bieden ons welgemeende excuses aan het niet bieden van de dienstverlening die u van ons mag verwachten. Het X-Guard-team staat 24 uur per dag, 7 dagen per week voor u klaar om de stabiliteit van ons platform en uw veiligheid te waarborgen.

Heeft u vragen over deze verstoringen? Dan kunt u mij direct mailen op degger@x-guard.nl. Ik sta u graag persoonlijk te woord.

Jesse Degger

Directeur / Hoofd IT

X-Guard B.V.

Opgelost

De problemen zijn volledig opgelost.

De oorspronkelijke oorzaak van het issue is nog niet bekend, deze wordt in de komende uren verder onderzocht.

Tijdens deze storing konden berichten verlaat of niet verwerkt worden. Dit heeft impact gehad op uw veiligheid.

We bieden ons excuses aan voor deze verstoring en werken met de grootst mogelijke zorg aan het vervolgonderzoek. Op status.x-guard.nl wordt z.s.m. een update geplaatst over deze storing en de oorzaak.

Voor vragen kunt u ons mailen op info@x-guard.nl. Telefonisch kan onze eerste lijn support u helaas geen inhoudelijke mededelingen doen over de storing.

Controle

We zien momenteel GEEN vertragingen meer en alles werkt naar behoren.

We monitoren de situatie.

Controle

We zien serviceherstel en monitoren de situatie, nog niet alles is nog gevalideerd.

Bijgewerkt

Er zijn verschillende oplossingen geïmplementeerd: het is nog niet duidelijk of deze een positieve uitwerking gaan hebben. Momenteel is de vertraging bij het maken van een alarm meer dan 30 minuten.

Veel acties, zoals het laden van onze dashboards en apps, werken niet naar behoren.

Bijgewerkt

Momenteel is er nog geen hervatting van de dienstverlening. Er wordt hard doorgewerkt aan een oplossing.

Vastgesteld

We ervaren momenteel, voor onbekende reden, vertragingen op het X-Guard-platform.

Er wordt naar een oorzaak en oplossing gezocht. Via deze pagina volgt meer informatie.

2 Getroffen Diensten: