Hoe ik een week stagiair was als SRE-engineer. Diensten vanuit het oogpunt van een software-engineer

Hoe ik een week stagiair was als SRE-engineer. Diensten vanuit het oogpunt van een software-engineer

SRE-engineer – stagiair

Laat me eerst voorstellen. Ik ben @tristan.read, frontend engineer in de groep Monitor::Health van GitLab. Afgelopen week had ik de eer om stagiaire te zijn bij een van onze SRE-engineers in dienst. Het doel was om dagelijks te observeren hoe de wachtende engineer reageert op incidenten en om echte werkervaring op te doen. We willen dat onze engineers de behoeften van de gebruikers beter begrijpen. functies Monitor::Health.

Tijdens de week volgde ik de SRE-engineer overal. Dat betekende dat ik aanwezig was tijdens de overdracht van de dienst, de waarschuwingskanalen volgde en reageerde op incidenten, als en wanneer deze zich voordeden.

Incidenten

In de loop van de week vond er 2 incidenten plaats.

1. Cryptominer

Woensdag werd er een piek in het gebruik van GitLab.com geregistreerd, veroorzaakt door pogingen om runner-minuten te gebruiken voor het minen van cryptocurrencies. Het incident werd aangepakt met behulp van onze eigen tool voor het neutraliseren van schendingen, die taken van de runner stopt en het gerelateerde project en account verwijdert. GitLab RunnerAls dit evenement niet was opgemerkt, zou een geautomatiseerde tool het hebben opgevangen, maar in dit geval merkte de SRE-engineer de overtreding als eerste op. Er werd een incidenttaak aangemaakt, maar de informatie hierover is gesloten.

2. Prestatieafname van de Canary- en Main-applicaties

Het incident werd veroorzaakt door vertragingen en een verhoogde foutfrequentie in de canary- en main-webapplicaties op GitLab.com. Verscheidene Apdex-waarden werden overschreden.

Open incidenttaak:

Belangrijkste conclusies https://gitlab.com/gitlab-com/gl-infra/production/issues/1442

Hier zijn een paar punten die ik heb begrepen tijdens mijn week in de wacht.

1. Alerts zijn het meest nuttig wanneer ze afwijkingen van de norm detecteren.

Alerts kunnen in verschillende typen worden verdeeld:

Alerts gebaseerd op een bepaalde drempelwaarde, zoals 'er zijn 10 5xx-fouten per seconde voorgevallen'.

  • Alerts waarbij de drempel een percentage is, zoals 'frequentie van 5xx-fouten is 10% van het totale aantal verzoeken in een bepaalde periode'.
  • Alerts gebaseerd op historische gemiddelde waarden zoals '5xx-fouten in de 90e percentiel'.
  • Over het algemeen zijn de 2de en 3de types nuttiger voor SRE-wachters, omdat ze afwijkingen van de norm in het proces onthullen.

2. Veel alerts escaleren nooit naar incidenten

SRE-engineers hebben te maken met een constante stroom van alerts, waarvan veel eigenlijk niet kritisch zijn.

SR-engineers hebben te maken met een constante stroom van meldingen, waarvan vele in feite niet kritisch zijn.

Waarom de meldingen niet beperken tot alleen de echt belangrijke? Met deze aanpak kunnen echter vroege symptomen die zich kunnen ontwikkelen tot een echt probleem, dat aanzienlijke schade kan veroorzaken, niet worden herkend.

De taak van de SRE-dienstdoende is om te bepalen welke meldingen werkelijk iets serieus aangeven en of ze geëscaleerd moeten worden en een nadere beoordeling vereisen. Ik vermoed dat dit ook te maken heeft met de inflexibiliteit van meldingen: het zou beter zijn als er verschillende niveaus of 'slimme' manieren zouden worden geïntroduceerd om meldingen in overeenstemming met de eerder beschreven situatie aan te passen.

Functiesuggestie: https://gitlab.com/gitlab-org/gitlab/issues/42633

3. Onze SRE-dienstdoenden gebruiken veel tools

Intern:

  • GitLab-infra-project: hier bevinden zich Runbooks, overdrachten van dienstdoende naar schift/week, taken voor het reageren op incidenten.
  • GitLab-issues: onderzoeken, reviews en onderhoud worden ook gevolgd in taken.
  • GitLab-labels: automatiseringstaken worden gestart op basis van specifieke labels, waarop bots de activiteit van taken volgen.

Extern:

  • PagerDuty: meldingen
  • Slack: hier komt de stroom van berichten van PagerDuty/AlertManager binnen. Integratie met slash-commando's om verschillende taken uit te voeren, zoals: melding sluiten of escaleren naar een incident.
  • Grafana: visualisatie van statistieken met een focus op langdurige trends.
  • Kibana: biedt visualisatie/zoekfunctie in logboeken, met de mogelijkheid om dieper in specifieke evenementen te graven.
  • Zoom: er is een continu werkende 'discussiekamer' in Zoom. Dit stelt SRE-engineers in staat om snel gebeurtenissen te bespreken zonder kostbare tijd te verspillen aan het creĆ«ren van een kamer en het delen van links met deelnemers.

En nog veel meer.

4. Monitoring van GitLab.com met GitLab is een single point of failure.

Als er een grote storing van diensten op GitLab.com optreedt, willen we niet dat dit onze mogelijkheid om het probleem op te lossen beĆÆnvloedt. Het kan worden aangepakt door een tweede instantie van GitLab te starten voor het beheer van GitLab.com. Dit werkt al voor ons: https://ops.gitlab.net/.

5. Enkele functies om te overwegen voor toevoeging aan GitLab

  • Multi-user taakbewerking, vergelijkbaar met Google Docs. Dit zou helpen bij taken rond incidenten tijdens een gebeurtenis, evenals bij beoordelingen. In beide gevallen kunnen meerdere deelnemers tegelijkertijd iets in real-time willen toevoegen.
  • Meer webhooks voor taken. De mogelijkheid om verschillende stappen van de GitLab-werkstroom van binnenuit te starten, helpt de afhankelijkheid van Slack-integraties te verminderen. Bijvoorbeeld de mogelijkheid om een melding in PagerDuty te aktiveren via een slash-commando in een GitLab-taak.
    Conclusie

SRE-engineers hebben het moeilijk met veel complicaties. Het zou geweldig zijn om meer GitLab-producten te zien die deze problemen aanpakken. We werken al aan enkele toevoegingen aan het product die de eerder genoemde werkprocessen vergemakkelijken. Details zijn beschikbaar in de sectie Ops Productvisie.

In 2020 breiden we het team uit om al deze geweldige functies te verzamelen. Als je geĆÆnteresseerd bent, kijk dan alsjeblieft naar vacatures, en aarzel niet om contact op te nemen met iemand van ons team voor vragen.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster