SRE muhandisi stajyori sifatida bir haftani qanday o'tkazdim. Dastur muhandisi nazarida vazifa

SRE muhandisi stajyori sifatida bir haftani qanday o'tkazdim. Dastur muhandisi nazarida vazifa

SRE muhandisi - stajyor

Avvalo, o'zimni tanishtiraman. men - @tristan.read, guruhdagi front-end muhandisi Monitor::Salomatlik GitLab. O'tgan hafta men SRE muhandislarimizdan biri bilan stajirovka qilish sharafiga muyassar bo'ldim. Maqsad navbatchining voqealarga har kuni qanday munosabatda bo‘lishini kuzatish va ish joyida hayotiy tajribaga ega bo‘lish edi. Biz muhandislarimiz foydalanuvchi ehtiyojlarini yaxshiroq tushunishlarini xohlaymiz vazifalari Monitor::Salomatlik.

Men bir hafta davomida SRE muhandisini hamma joyda kuzatib borishim kerak edi. Ya'ni, men topshirishda hozir bo'ldim, bir xil ogohlantirish kanallarini kuzatdim va hodisalar sodir bo'lgan taqdirda javob berdim.

Hodisalar

Bir hafta ichida 2 ta hodisa yuz berdi.

1. Kriptominer

GitLab.com chorshanba kuni foydalanishda sakrashni ko'rdi GitLab Runner'a, kriptovalyutani qazib olish uchun yuguruvchining daqiqalaridan foydalanishga urinishlar tufayli yuzaga kelgan. Hodisa bizning qoidabuzarliklarni zararsizlantirish vositasi yordamida hal qilindi, bu yuguruvchining vazifalarini to'xtatadi va u bilan bog'liq loyiha va hisobni o'chiradi.

Agar bu hodisa e'tiborga olinmaganida, avtomatlashtirilgan vosita uni ushlab olgan bo'lardi, ammo bu holda SRE muhandisi birinchi navbatda buzilishni payqadi. Voqea bo'yicha topshiriq yaratildi, ammo u haqidagi ma'lumotlar yopiq.

2. Canary va asosiy ilovalarning ishlashining pasayishi

Hodisaga Gitlab.com saytidagi kanareyka va asosiy veb-ilovalardagi sekinlashuv va xatolarning ko'payishi sabab bo'lgan. Bir nechta Apdex qiymatlari buzilgan.

Ochiq hodisa vazifasi: https://gitlab.com/gitlab-com/gl-infra/production/issues/1442

Asosiy topilmalar

Navbatdagi hafta davomida bir nechta narsalarni bilib oldim.

1. Ogohlantirishlar me'yordan og'ishlarni aniqlashda eng foydali hisoblanadi.

Ogohlantirishlarni bir necha turga bo'lish mumkin:

  • “Bir soniyada 10 ta 5xx xatolik yuz berdi” kabi maʼlum chegara qiymatiga asoslangan ogohlantirishlar.
  • “Ma’lum bir vaqtda so‘rovlar umumiy hajmining 5% uchun 10xx xatolik chastotasi” kabi chegara foiz qiymati bo‘lgan ogohlantirishlar.
  • Ogohlantirishlar tarixiy oʻrtacha koʻrsatkichga asoslangan, masalan, “5 foizli 90xx xato”.

Umuman olganda, 2 va 3-turlar navbatchi SRElar uchun foydaliroqdir, chunki ular jarayonda me'yordan og'ishlarni aniqlaydi.

2. Ko'pgina ogohlantirishlar hech qachon hodisalarga o'tmaydi.

SR muhandislari doimiy ogohlantirishlar oqimi bilan shug'ullanadilar, ularning aksariyati aslida muhim emas.

Xo'sh, nega ogohlantirishlaringizni faqat muhimlari bilan cheklab qo'ymaysiz? Biroq, ushbu yondashuv bilan siz katta zararga tahdid soladigan haqiqiy muammoga aylanib ketishining dastlabki belgilarini tan olmaysiz.

Chaqiruv bo'yicha SRE ning vazifasi qaysi ogohlantirishlar haqiqatda jiddiy narsani ko'rsatishini va ularni kuchaytirish va hal qilish kerakligini aniqlashdir. Menimcha, bu ham ogohlantirishlarning moslashuvchan emasligi bilan bog'liq: agar yuqorida tavsiflangan vaziyatga muvofiq ogohlantirishlarni sozlashning bir necha darajalari yoki "aqlli" usullari mavjud bo'lsa yaxshi bo'lar edi.

Xususiyat taklifi: https://gitlab.com/gitlab-org/gitlab/issues/42633

3. Bizning navbatchi SRElarimiz juda ko'p asboblardan foydalanadi.

Ichki:

  • GitLab infraloyihasi: runbooklar shu yerda yashaydi, smena/hafta topshiriqlari, hodisalarga javob berish vazifalari.
  • GitLab muammolari: Tekshiruvlar, ko'rib chiqishlar va texnik xizmat ko'rsatish ham muammolarda kuzatiladi.
  • GitLab yorliqlari: avtomatlashtirish vazifalari botlar vazifa faoliyatini kuzatish uchun foydalanadigan maxsus teglar asosida ishga tushiriladi.

Tashqi:

  • PagerDuty: Ogohlantirishlar
  • Bo'shashmasdan: PagerDuty/AlertManager xabarlar oqimi shu yerdan ketadi. Ogohlantirishni yopish yoki hodisaga ko'tarilish kabi turli vazifalarni bajarish uchun slash buyruqlari bilan integratsiya.
  • Grafana: uzoq muddatli tendentsiyalarga e'tibor qaratgan holda o'lchovlarni vizualizatsiya qilish.
  • Kibana: Vizualizatsiya/jurnal qidirish, muayyan voqealarni chuqurroq o'rganish qobiliyatini beradi.
  • Masshtab: Zoom-da doimiy ishlaydigan “ajralish xonasi” mavjud. Bu SRE muhandislariga qimmatli vaqtni behuda sarflamasdan va ishtirokchilarni bog'lamasdan voqealarni tezda muhokama qilish imkonini beradi.

Va boshqa ko'plab.

4. GitLab.com saytini GitLab yordamida kuzatish bitta muvaffaqiyatsizlik nuqtasidir

Agar GitLab.com katta xizmatda uzilishga duch kelsa, bu muammoni hal qilish qobiliyatimizga ta'sir qilishini istamaymiz. GitLab.com ni boshqarish uchun ikkinchi GitLab namunasini ishga tushirish orqali uni to'xtatish mumkin. Aslida, bu biz uchun allaqachon ishlaydi: https://ops.gitlab.net/.

5. GitLab-ga qo'shishni hisobga oladigan bir nechta xususiyatlar

  • Ko'p foydalanuvchili vazifani tahrirlash, Google Docsga oʻxshash. Bu voqea paytida sodir bo'lgan voqealar bo'yicha vazifalarni bajarishda, shuningdek, brifing bo'yicha vazifalarda yordam beradi. Ikkala holatda ham bir nechta ishtirokchilar real vaqtda biror narsa qo'shishlari kerak bo'lishi mumkin.
  • Vazifalar uchun ko'proq veb-huklar. GitLab ish jarayonining turli bosqichlarini ichkaridan ishga tushirish qobiliyati Slack integratsiyalariga bo'lgan ishonchingizni kamaytirishga yordam beradi. Masalan, GitLab muammosida slash buyrug'i orqali PagerDuty-da ogohlantirishga ruxsat berish qobiliyati.
    xulosa

SRE muhandislari juda ko'p murakkabliklarga ega. Ushbu muammolarni hal qiladigan ko'proq GitLab mahsulotlarini ko'rish ajoyib bo'lar edi. Biz allaqachon mahsulotga yuqorida aytib o'tilgan ish jarayonlarini osonlashtiradigan ba'zi qo'shimchalar ustida ishlamoqdamiz. Tafsilotlar quyidagi manzilda mavjud Ops Product Vision bo'limi.

Biz ushbu ajoyib xususiyatlarning barchasini birlashtirish uchun 2020 yilda jamoani kengaytirmoqdamiz. Agar qiziqsangiz, iltimos, tekshiring bo'sh ish o'rinlari, va har qanday savol bilan jamoamizdagi har kimga murojaat qiling.

Manba: www.habr.com

a Izoh qo'shish