GitLab-da dasturiy ta'minot yamoqlarini qanday chiqaramiz

GitLab-da dasturiy ta'minot yamoqlarini qanday chiqaramiz

GitLab-da biz dasturiy ta'minotni tuzatishni ikki usulda qayta ishlaymiz: qo'lda va avtomatik. gitlab.com saytiga avtomatlashtirilgan joylashtirish orqali muhim yangilanishlarni yaratish va yetkazib berish bo‘yicha reliz menejerining ishi, shuningdek, foydalanuvchilarning o‘z o‘rnatishlarida ishlashi uchun yamoqlar haqida ma’lumot olish uchun o‘qing.

Men aqlli soatingizga eslatma o'rnatishni tavsiya qilaman: har oyning 22-kunida o'z muassasalarida GitLab bilan ishlaydigan foydalanuvchilar mahsulotimizning joriy versiyasidagi yangilanishlarni ko'rishlari mumkin. Oylik nashr yangi xususiyatlarni, mavjudlarning ishlanmalarini o'z ichiga oladi va ko'pincha asboblar yoki birlashtirish uchun jamoa so'rovlarining yakuniy natijasini ko'rsatadi.

Ammo, amaliyot shuni ko'rsatadiki, dasturiy ta'minotni ishlab chiqish kamdan-kam hollarda kamchiliklarsiz bo'ladi. Xato yoki xavfsizlik zaifligi aniqlanganda, yetkazib berish guruhidagi reliz menejeri foydalanuvchilarimiz uchun ularning o'rnatishlari bilan yamoq yaratadi. Gitlab.com CD jarayonida yangilanadi. GitLab-dagi CD xususiyati bilan chalkashmaslik uchun biz ushbu CD jarayonini avtomatik joylashtirish deb ataymiz. Ushbu jarayon foydalanuvchilar, mijozlar va bizning ichki rivojlanish guruhimiz tomonidan yuborilgan tortishish so'rovlaridan takliflarni o'z ichiga olishi mumkin, shuning uchun yamoqlarni chiqarishning zerikarli muammosini hal qilish ikki xil usulda hal qilinadi.

«Biz ishlab chiquvchilar yaratgan hamma narsa GitLab.com saytiga tarqatishdan oldin har kuni barcha muhitlarga joylashtirilishini ta'minlaymiz.", tushuntiradi Marin Yankovki, Infratuzilma boshqarmasi katta texnik menejeri. "O'rnatishlaringiz uchun relizlar haqida gitlab.com joylashuvi uchun suratlar sifatida o'ylab ko'ring, buning uchun biz paket yaratish uchun alohida qadamlar qo'shdik, shunda bizning foydalanuvchilarimiz undan o'z o'rnatishlariga o'rnatishda foydalanishlari mumkin.".

Xato yoki zaiflikdan qat'i nazar, gitlab.com mijozlari ular chop etilgandan so'ng qisqa vaqt ichida tuzatishlarni oladi, bu esa avtomatlashtirilgan CD jarayonining afzalligi hisoblanadi. O'z o'rnatishlari bo'lgan foydalanuvchilar uchun yamoqlar reliz menejeri tomonidan alohida tayyorgarlikni talab qiladi.

Yetkazib berish jamoasi relizlarni kamaytirish uchun relizlarni yaratish bilan bog'liq jarayonlarning aksariyat qismini avtomatlashtirish uchun qattiq ishlamoqda MTTP (ishlab chiqarishgacha bo'lgan o'rtacha vaqt, ya'ni ishlab chiqarishga sarflangan vaqt), ishlab chiquvchining birlashtirish so'rovini ko'rib chiqishdan gitlab.com saytida joylashtirishgacha bo'lgan vaqt davri.

«Yetkazib berish guruhining maqsadi kompaniya sifatida tezroq harakat qilishimizga yoki hech bo'lmaganda etkazib beruvchilarning tezroq ishlashiga ishonch hosil qilishdir.?, - deydi Marin.

Gitlab.com mijozlari ham, ularning o'rnatish foydalanuvchilari ham etkazib berish guruhining aylanish vaqtini qisqartirish va joylashtirishni tezlashtirish bo'yicha sa'y-harakatlaridan foyda ko'radi. Ushbu maqolada biz ushbu ikki usul o'rtasidagi o'xshashlik va farqlarni tushuntiramiz. masalalar, va biz yetkazib berish guruhimiz o'z qurilmalarida ishlaydigan foydalanuvchilar uchun yamoqlarni qanday tayyorlayotgani, shuningdek, avtomatlashtirilgan joylashtirish yordamida gitlab.com ning yangilanganligiga qanday ishonch hosil qilishini tasvirlab beramiz.

Chiqarish menejeri nima qiladi?

Jamoa a'zolari har oy reliz menejeri rolini o'tkazish bizning relizlarimiz foydalanuvchilarga o'z muassasalarida, shu jumladan relizlar orasida paydo bo'lishi mumkin bo'lgan yamoqlar va xavfsizlik relizlari. Ular, shuningdek, kompaniyaning avtomatlashtirilgan, uzluksiz joylashtirishga o'tishiga rahbarlik qilish uchun mas'uldirlar.

O'z-o'zini o'rnatish relizlari va gitlab.com relizlari shunga o'xshash ish oqimlaridan foydalanadi, lekin turli vaqtlarda ishlaydi, deydi Marin.

Avvalo, relizlar menejeri, reliz turidan qat'i nazar, GitLab ilovasi gitlab.com saytida ishga tushirilgan paytdan boshlab mavjud va xavfsiz bo'lishini ta'minlaydi, shu jumladan mijozlar infratuzilmasida bir xil muammolar tugamasligini ta'minlaydi. o'z qobiliyatlari.

GitLab-da xato yoki zaiflik aniqlangandan so'ng, reliz menejeri uning o'rnatishlari bilan foydalanuvchilar uchun yamoqlar yoki xavfsizlik yangilanishlariga kiritilishini baholashi kerak. Agar u xato yoki zaiflik yangilanishga loyiq deb qaror qilsa, tayyorgarlik ishlari boshlanadi.

Chiqarish menejeri tuzatishni tayyorlash yoki uni qachon qo'llash kerakligini hal qilishi kerak - va bu vaziyatning kontekstiga juda bog'liq "shu bilan birga, mashinalar odamlar kabi kontekstni boshqarishda yaxshi emas- deydi Marin.

Hammasi tuzatishlar haqida

Yamalar nima va ular bizga nima uchun kerak?

Chiqarish menejeri xatoning jiddiyligiga qarab tuzatishni chiqarish yoki chiqarish to'g'risida qaror qabul qiladi.

Xatolar ularning jiddiyligiga qarab farqlanadi. Shunday qilib, S4 yoki S3 xatolar stilistik bo'lishi mumkin, masalan, piksel yoki piktogramma o'zgarishi. Bu muhimroq emas, lekin hech kimning ish jarayoniga sezilarli ta'sir ko'rsatmaydi, ya'ni bunday S3 yoki S4 xatolar uchun tuzatish yaratilishi ehtimoli kichik, deb tushuntiradi Marin.

Biroq, S1 yoki S2 zaifliklari foydalanuvchining so'nggi versiyaga yangilanmasligi kerakligini yoki foydalanuvchining ish jarayoniga ta'sir qiladigan muhim xatolik mavjudligini bildiradi. Agar ular trekerga kiritilgan bo'lsa, ko'plab foydalanuvchilar ularga duch kelishgan, shuning uchun reliz menejeri darhol tuzatishni tayyorlashni boshlaydi.

S1 yoki S2 zaifliklari uchun yamoq tayyor bo'lgach, reliz menejeri yamoqni chiqarishni boshlaydi.

Misol uchun, GitLab 12.10.1 yamog'i bir nechta blokirovka muammolari aniqlangandan so'ng yaratilgan va ishlab chiquvchilar ularni keltirib chiqaradigan asosiy muammoni tuzatgan. Chiqarish menejeri tayinlangan jiddiylik darajalarining to'g'riligini baholadi va tasdiqlangach, blokirovka muammolari aniqlangandan keyin XNUMX soat ichida tayyor bo'lgan tuzatishni chiqarish jarayoni boshlandi.

Ko'p S4, S3 va S2 to'planganda, reliz menejeri tuzatishni chiqarishning dolzarbligini aniqlash uchun kontekstni ko'rib chiqadi va ularning ma'lum soniga erishilganda, ularning barchasi birlashtiriladi va chiqariladi. Relizdan keyingi tuzatishlar yoki xavfsizlik yangilanishlari blog postlarida umumlashtiriladi.

Chiqarish menejeri yamoqlarni qanday yaratadi

Yamoqlarni yaratish uchun biz GitLab CI va ChatOps kabi boshqa funksiyalardan foydalanamiz. Relizlar menejeri ichki kanalimizdagi ChatOps jamoasini faollashtirish orqali tuzatishni chiqarishni boshlaydi #releases Slackda.

/chatops run release prepare 12.10.1

ChatOps turli xil hodisalarni ishga tushirish uchun Slack ichida ishlaydi, keyinchalik ular GitLab tomonidan qayta ishlanadi va amalga oshiriladi. Misol uchun, etkazib berish guruhi yamoqlarni chiqarish uchun turli narsalarni avtomatlashtirish uchun ChatOps-ni o'rnatdi.

Reliz menejeri ChatOps jamoasini Slack-da ishga tushirgandan so'ng, ishning qolgan qismi CICD yordamida GitLab-da avtomatik ravishda amalga oshiriladi. Chiqarish jarayonida ChatOps in Slack va GitLab o'rtasida ikki tomonlama aloqa mavjud, chunki reliz menejeri jarayonning ba'zi asosiy bosqichlarini faollashtiradi.

Quyidagi videoda GitLab uchun yamoq tayyorlashning texnik jarayoni ko'rsatilgan.

Gitlab.com saytida avtomatik joylashtirish qanday ishlaydi

Gitlab.com ni yangilash uchun ishlatiladigan jarayon va vositalar yamoqlarni yaratishda foydalanilganlarga o'xshaydi. gitlab.com saytini yangilash reliz menejeri nuqtai nazaridan kamroq qo'lda ishlashni talab qiladi.

ChatOps yordamida joylashtirishni ishga tushirish o'rniga biz CI xususiyatlaridan foydalanamiz, masalan. rejalashtirilgan quvurlar, uning yordamida reliz menejeri kerakli vaqtda bajarilishi kerak bo'lgan muayyan harakatlarni rejalashtirishi mumkin. Qo'lda ishlov berish o'rniga, vaqti-vaqti bilan soatiga bir marta ishlaydigan quvur liniyasi mavjud bo'lib, u GitLab loyihalariga kiritilgan yangi o'zgarishlarni yuklab oladi, ularni paketlaydi va joylashtirishni rejalashtiradi va avtomatik ravishda sinov, QA va boshqa zarur qadamlarni bajaradi.

"Shunday qilib, bizda gitlab.com dan oldin turli muhitlarda ishlaydigan juda ko'p joylashtirishlar mavjud va bu muhitlar yaxshi holatda bo'lgandan so'ng va sinov yaxshi natijalarni ko'rsatgandan so'ng, reliz menejeri gitlab.com tarqatish harakatlarini boshlaydi", deydi Marin.

Gitlab.com yangilanishlarini qo'llab-quvvatlash uchun CICD texnologiyasi butun jarayonni avtomatlashtiradi va reliz menejeri ishlab chiqarish muhitini gitlab.com saytida qo'lda ishga tushirishi kerak bo'ladi.

Marin quyidagi videoda gitlab.com yangilash jarayoni haqida batafsil ma'lumot beradi.

Yetkazib berish guruhi yana nima qiladi?

Gitlab.com yangilash jarayonlari va mijozlarga ichki yamoqlarni chiqarish o'rtasidagi asosiy farq shundaki, oxirgi jarayon reliz menejeridan ko'proq vaqt va qo'lda ishlashni talab qiladi.

"Biz ba'zida xabar qilingan muammolar, asboblar bilan bog'liq muammolar va bitta yamoqni chiqarishda e'tiborga olinishi kerak bo'lgan ko'plab nuanslar mavjudligi sababli mijozlarga o'rnatishlari bilan yamoqlarni chiqarishni kechiktiramiz", deydi Marin.

Etkazib berish guruhining qisqa muddatli maqsadlaridan biri bu chiqarishni tezlashtirish uchun reliz menejeri tomonidan qo'lda ish hajmini kamaytirishdir. Jamoa chiqarish jarayonini soddalashtirish, tartibga solish va avtomatlashtirish ustida ishlamoqda, bu esa jiddiylik darajasi past muammolarni (S3 va S4, taxminan. tarjimon). Tezlikka e'tibor berish asosiy ishlash ko'rsatkichidir: MTTPni - birlashtirish so'rovini qabul qilishdan natijani gitlab.com saytiga joylashtirishgacha bo'lgan vaqtni joriy 50 soatdan 8 soatgacha qisqartirish kerak.

Yetkazib berish guruhi, shuningdek, gitlab.com saytini Kubernetesga asoslangan infratuzilmaga ko'chirish ustida ishlamoqda.

Muharrirning n.b.: Agar siz allaqachon Kubernetes texnologiyasi haqida eshitgan bo'lsangiz (va sizda borligiga shubham yo'q), lekin unga hali qo'lingiz bilan tegmagan bo'lsangiz, men onlayn intensiv kurslarda qatnashishni maslahat beraman. Kubernetes bazasi, 28-30 sentyabr kunlari bo'lib o'tadi va Kubernetes Mega14-16 oktyabr kunlari bo'lib o'tadi. Bu sizga texnologiyani ishonchli boshqarish va ishlash imkonini beradi.

Bu bir xil maqsadni ko'zlaydigan ikkita yondashuv: gitlab.com uchun ham, mijozlar uchun ham yangilanishlarni tez yetkazib berish.

Biz uchun har qanday fikr yoki tavsiyalar?

Har kim GitLabga o'z hissasini qo'shishi mumkin va biz o'quvchilarimizning fikr-mulohazalarini mamnuniyat bilan qabul qilamiz. Bizning yetkazib berish guruhimiz uchun biron bir fikringiz bo'lsa, ikkilanmang so'rov yaratish bildirishnoma bilan team: Delivery.

Manba: www.habr.com

a Izoh qo'shish