Jak jsem byl týden stážistou SRE inženýra. Pohled na službu očima softwarového inženýra.

Jak jsem byl týden stážistou SRE inženýra. Pohled na službu očima softwarového inženýra.

SRE inženýr – stážista

Nejprve dovolte, abych se představil. Jsem @tristan.read, frontend inženýr ve skupině Monitor::Health GitLab. Minulý týden jsem měl tu čest být stážistou jedné z našich pohotovostních SRE inženýrů. Cílem bylo každodenní sledování reakce pohotovostního inženýra na incidenty a získání reálné pracovní zkušenosti. Chtěli bychom, aby naši inženýři lépe chápali potřeby uživatelů. funkcí Monitor::Health.

Měl jsem možnost sledovat SRE inženýra celý týden. To znamenalo, že jsem byl přítomen při předání směny, sledoval jsem stejné upozornění a reagoval na incidenty, pokud nějaké nastaly.

Incidenty

Během týdne došlo k 2 incidentům.

1. Kryptoměnový miner

Ve středu jsme na GitLab.com zaznamenali nárůst využívání GitLab Runnervyplývající z pokusů využít minuty runnera pro těžbu kryptoměn. Incident jsme vyřešili pomocí našeho vlastního nástroje k neutralizaci porušení, který zastavuje úkoly runnera a odstraňuje s nimi spojený projekt a účet.

Kdyby si tohoto události nikdo nevšiml, zachytil by ho automatizovaný nástroj, ale v tomto případě porušení jako první zpozoroval SRE inženýr. Byla vytvořena úloha k incidentu, nicméně informace o ní jsou neveřejné.

2. Degradace výkonu aplikací Canary a Main

Incident vyvolaly zpomalení a zvýšená frekvence chyb v canary a main webových aplikacích na Gitlab.com. Bylo narušeno několik hodnot Apdex.

Otevřená úloha k incidentu: https://gitlab.com/gitlab-com/gl-infra/production/issues/1442

Klíčové poznatky

Zde je několik bodů, které jsem si uvědomil během týdne na pohotovosti.

1. Upozornění jsou nejvíce užitečná, když detekují odchylky od normy.

Upozornění lze rozdělit do několika typů:

  • Upozornění založená na konkrétní prahové hodnotě, například 'došlo k 10 5xx chybám za sekundu'.
  • Upozornění, kde je prahová hodnota procento, například 'frekvence 5xx chyb na 10% celkového objemu požadavků v daném čase'.
  • Upozornění založená na historickém průměrném hodnotě, například '5xx chyby v 90. percentilu'.

Obecně platí, že 2. a 3. typ jsou užitečnější pro pohotovostní SRE, protože odhalují odchylky od normy v procesu.

2. Mnoho upozornění se nikdy neeskaluje do incidentů

SRE inženýři čelí neustálému toku upozornění, z nichž mnohá ve skutečnosti nejsou kritická.

Tak proč omezit upozornění pouze na opravdu důležitá? S takovým přístupem však může být obtížné rozeznat počáteční příznaky, které mohou přerůst v reálný problém s vážnými důsledky.

Úkolem hlídkujícího SRE je určovat, která upozornění skutečně znamenají něco vážného a zda je třeba je eskalovat a začít se jimi zabývat. Mám za to, že to je způsobeno také neflexibilitou upozornění: bylo by lepší zavést několik úrovní nebo "inteligentní" způsoby konfigurace upozornění podle dříve popsané situace.

Návrh na funkci: https://gitlab.com/gitlab-org/gitlab/issues/42633

3. Naši hlídkující SRE používají mnoho nástrojů

Interní:

  • GitLab infra projekt: zde žijí Runbooky, předání služby na směnu/týden, úkoly k reakcím na incidenty.
  • GitLab issues: vyšetřování, analýzy a údržba jsou také sledovány v úkolech.
  • GitLab štítky: úkoly automatizace se spouštějí podle určitých štítků, podle kterých boti sledují aktivitu úkolů.

Externí:

  • PagerDuty: upozornění
  • Slack: sem směřuje tok zpráv z PagerDuty/AlertManageru. Integrace se slash příkazy pro plnění různých úkolů, jako je uzavření upozornění nebo eskalace na incident.
  • Grafana: vizualizace metrik se zaměřením na dlouhodobé trendy.
  • Kibana: poskytuje vizualizaci/hledání v protokolech, možnost hlouběji zkoumat konkrétní události.
  • Zoom: máme neustále běžící "diskusní místnost" na Zoomu. To umožňuje SRE inženýrům rychle probírat události, aniž by trávili cenný čas vytvářením místnosti a posíláním odkazů účastníkům.

A mnoho, mnoho dalšího.

4. Monitorování GitLab.com pomocí GitLab — je to jediný bod selhání

Pokud dojde na GitLab.com k větší poruše služeb, nechtěli bychom, aby to ovlivnilo naši schopnost vyřešit problém. Ten lze zmírnit spuštěním druhého instance GitLab pro řízení GitLab.com. Ve skutečnosti už to u nás funguje: https://ops.gitlab.net/.

5. Několik funkcí, které by měly být zváženy k přidání do GitLab

  • Víceuživatelské úpravy úkolů, podobně jako Google Docs. To by pomohlo při úlohách na incidenty během události, stejně jako při analytických úlohách. V obou případech může několik účastníků potřebovat přidat něco v reálném čase.
  • Více webhooks pro úkoly. Možnost spouštět různé kroky pracovního postupu GitLab zevnitř pomůže snížit závislost na integracích Slack. Například schopnost povolit upozornění v PagerDuty pomocí příkazové řádky v úkolu GitLab.
    Závěr

SRE inženýři to nemají jednoduché kvůli mnoha složitostem. Bylo by skvělé vidět více produktů GitLab, které by řešily tyto problémy. Již pracujeme na některých přídavcích k produktu, které usnadní výše zmíněné pracovní postupy. Podrobnosti najdete v sekci Ops Product Vision.

V roce 2020 rozšiřujeme tým, abychom shromáždili všechny tyto skvělé funkce. Pokud máte zájem, prosím, podívejte se na volné pozice, a neváhejte kontaktovat někoho z našeho týmu s jakýmikoli dotazy.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster