Hur jag var praktikant som SRE-ingenjör i en vecka. Vakt sett genom en mjukvaruingenjörs ögon

Hur jag var praktikant som SRE-ingenjör i en vecka. Vakt sett genom en mjukvaruingenjörs ögon

SRE-ingenjör - praktikant

Först, låt mig få presentera mig. Jag är @tristan.read, frontend-ingenjör i gruppen Monitor::Health från GitLab. Förra veckan fick jag äran att vara praktikant hos en av våra jour-SRE-ingenjörer. Målet var daglig observation av hur jour-ingenjören reagerar på incidenter och att få verklig arbetslivserfarenhet. Vi vill att våra ingenjörer ska förstå användarnas behov bättre. funktioner Monitor::Health.

Jag skulle under en vecka följa SRE-ingenjören överallt. Det innebar att jag var med vid överlämnandet av jouren, observerade samma varningskanaler och reagerade på incidenter, om och när de inträffade.

Incidenter

Under veckan inträffade 2 incidenter.

1. Kryptovaluta-gruvdrift

På onsdag registrerade vi ett hopp i användningen på GitLab.com GitLab Runnerorsakat av försök att använda minutrar från runnern för kryptovaluta-gruvdrift. Incidenten hanterades med hjälp av vårt eget överträdelse-neutraliseringsverktyg som stoppar runner-uppgifter och tar bort relaterade projekt och konton.

Om detta händelse inte hade uppmärksammats, skulle en automatiserad lösning ha fångat det, men i detta fall var det SRE-ingenjören som först upptäckte överträdelsen. En incidentuppgift skapades, men informationen om den är stängd.

2. Prestandanedgång i applikationerna Canary och Main

Incidenten orsakades av förseningar och en ökad frekvens av fel i canary och main webbapplikationerna på GitLab.com. Flera Apdex-värden påverkades.

Öppen incidentuppgift: https://gitlab.com/gitlab-com/gl-infra/production/issues/1442

Nyckelinsikter

Här är några punkter som jag har lärt mig under veckan på jour.

1. Varningar är mest användbara när de fångar avvikelser från normen.

Varningar kan delas in i flera typer:

  • Varningar baserade på ett visst tröskelvärde, som "10 5xx-fel inträffade per sekund".
  • Varningar där tröskeln är en procentandel, som "frekvensen av 5xx-fel på 10% av den totala begäran under en angiven tidsperiod".
  • Varningar baserade på historiskt genomsnitt, som "5xx-fel i 90:e percentilen".

Generellt sett är typ 2 och 3 mer användbara för jour-SRE:er eftersom de avtäcker avvikelser från det normala i processen.

2. Många varningar eskaleras aldrig till incidenter

SRE-ingenjörer hanterar ett konstant flöde av varningar, varav många faktiskt inte är kritiska.

Så varför inte begränsa aviseringar till endast de som verkligen är viktiga? Med en sådan strategi riskerar man dock att inte känna igen tidiga symptom som kan eskalera till ett verkligt problem som hotar att orsaka stora skador.

Uppgiften för on-call SRE är att avgöra vilka aviseringar som verkligen indikerar något allvarligt och om de måste eskaleras och börja utredas. Jag misstänker att detta också beror på rigiditeten i aviseringarna: det skulle vara bättre om det fanns flera nivåer eller "intelligenta" sätt att konfigurera aviseringar baserat på den situation som beskrivits ovan.

Förslag på funktion: https://gitlab.com/gitlab-org/gitlab/issues/42633

3. Våra on-call SRE använder många verktyg

Interna:

  • GitLab infra-projekt: här bor Runbooks, överlämningar för skift/vecka, och uppgifter för incidenthantering.
  • GitLab-ärenden: utredningar, genomgångar och underhåll spåras också i ärendena.
  • GitLab-etiketter: automatiseringsuppgifter startar baserat på vissa etiketter, vilket bots spårar aktiviteten för.

Externa:

  • PagerDuty: aviseringar
  • Slack: här dirigeras flödet av meddelanden från PagerDuty/AlertManager. Integration med slash-kommandon för olika uppgifter, som att stänga en avisering eller eskalera till en incident.
  • Grafana: visualisering av metrik med fokus på långsiktiga trender.
  • Kibana: ger visualisering/sökning i loggar, möjlighet att gräva djupare i vissa händelser.
  • Zoom: det finns ett ständigt aktivt "diskussionsrum" i Zoom. Detta gör att SRE-ingenjörer snabbt kan diskutera händelser utan att förlora värdefull tid på att skapa ett rum och länka deltagarna.

Och mycket, mycket mer.

4. Övervakning av GitLab.com med hjälp av GitLab är en enda punkt av fel

Om en stor tjänstefel skulle inträffa på GitLab.com skulle vi inte vilja att det påverkar vår förmåga att lösa problemet. Det kan avbrytas genom att starta en andra instans av GitLab för att hantera GitLab.com. Faktum är att det redan fungerar för oss: https://ops.gitlab.net/.

5. Flera funktioner att överväga att lägga till i GitLab

  • Flera användares redigering av uppgifter, liknande Google Docs. Det skulle hjälpa till med uppgifter relaterade till incidenter under händelsen, samt i genomgångsuppgifter. I båda fallen kan flera deltagare behöva lägga till något i realtid.
  • Flera webhooks för uppgifter. Möjligheten att starta olika steg i GitLab-arbetsflödet inifrån kommer att minska beroendet av Slack-integrationer. Till exempel möjligheten att skicka aviseringar till PagerDuty via en slash-kommando i en GitLab-uppgift.
    Slutsats

SRE-injenjörer har det tufft med många komplexiteter. Det skulle vara bra att se fler GitLab-produkter som löser dessa problem. Vi arbetar redan på vissa tillägg till produkten som kommer att underlätta de arbetsflöden som nämns ovan. Mer information finns i avsnittet Ops Product Vision.

År 2020 utökar vi teamet för att samla alla dessa fantastiska funktioner. Om du är intresserad, vänligen kolla in lediga tjänster, och tveka inte att kontakta någon i vårt team med eventuella frågor.

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster