GitLab-da proqram yamaqlarını necə buraxırıq

GitLab-da proqram yamaqlarını necə buraxırıq

GitLab-da biz proqram təminatının düzəlişlərini iki yolla emal edirik: əl ilə və avtomatik. gitlab.com-a avtomatlaşdırılmış yerləşdirmə vasitəsilə mühüm yeniləmələrin yaradılması və çatdırılması üzrə buraxılış menecerinin işi, həmçinin istifadəçilərin öz qurğularında işləməsi üçün yamaqlar haqqında öyrənmək üçün oxuyun.

Ağıllı saatınızda xatırlatma qurmağı tövsiyə edirəm: hər ayın 22-də öz obyektlərində GitLab ilə işləyən istifadəçilər məhsulumuzun cari versiyasının yeniləmələrini görə bilərlər. Aylıq buraxılış yeni funksiyaları, mövcud olanların inkişaflarını ehtiva edir və tez-tez alətlər və ya birləşmələr üçün icma sorğularının son nəticəsini göstərir.

Ancaq təcrübədən göründüyü kimi, proqram təminatının inkişafı nadir hallarda qüsursuz olur. Bir səhv və ya təhlükəsizlik açığı aşkar edildikdə, çatdırılma komandasındakı buraxılış meneceri istifadəçilərimiz üçün quraşdırmaları ilə birlikdə yamaq yaradır. Gitlab.com CD prosesi zamanı yenilənir. GitLab-da CD funksiyası ilə çaşqınlığın qarşısını almaq üçün bu CD prosesini avtomatik yerləşdirmə adlandırırıq. Bu proses istifadəçilər, müştərilər və bizim daxili inkişaf komandamız tərəfindən təqdim olunan çəkmə sorğularından gələn təklifləri özündə birləşdirə bilər ki, yamaqların buraxılması ilə bağlı cansıxıcı problemin həlli iki fərqli yolla həll olunsun.

«Tərtibatçıların hazırladıqları hər şeyin GitLab.com-a təqdim etməzdən əvvəl hər gün bütün mühitlərdə yerləşdirilməsini təmin edirik.", izah edir Marin Yankovki, İnfrastruktur Departamentinin baş texniki meneceri. "Quraşdırmalarınız üçün buraxılışları gitlab.com yerləşdirmələri üçün snapshotlar kimi düşünün, biz paket yaratmaq üçün ayrıca addımlar əlavə etmişik ki, istifadəçilərimiz ondan quraşdırmalarında quraşdırmaq üçün istifadə edə bilsinlər..

Səhv və ya zəiflikdən asılı olmayaraq, gitlab.com müştəriləri avtomatik CD prosesinin faydası olan düzəlişlər dərc edildikdən qısa müddət sonra alacaqlar. Öz quraşdırmaları olan istifadəçilər üçün yamaqlar buraxılış meneceri tərəfindən ayrıca hazırlıq tələb edir.

Çatdırılma komandası azaltmaq üçün buraxılışların yaradılması ilə əlaqəli proseslərin əksəriyyətini avtomatlaşdırmaq üçün çox çalışır MTTP (istehsal üçün orta vaxt, yəni istehsala sərf olunan vaxt), tərtibatçı tərəfindən birləşmə sorğusunun işlənməsindən gitlab.com-da yerləşdirməyə qədər olan müddət.

«Çatdırılma komandasının məqsədi şirkət olaraq daha sürətli hərəkət edə biləcəyimizə və ya heç olmasa çatdırılma işçilərinin daha sürətli işləməsinə əmin olmaqdır.?, Marin deyir.

Həm gitlab.com müştəriləri, həm də onların qurğularının istifadəçiləri çatdırılma qrupunun dövriyyə vaxtlarını azaltmaq və yerləşdirmələri sürətləndirmək səylərindən faydalanır. Bu yazıda bu iki metod arasındakı oxşarlıqları və fərqləri izah edəcəyik. məsələlər, və biz həmçinin çatdırılma komandamızın öz qurğularında işləyən istifadəçilər üçün yamaqları necə hazırladığını, həmçinin avtomatlaşdırılmış yerləşdirmədən istifadə edərək gitlab.com-un yenilənməsini necə təmin etdiyimizi təsvir edəcəyik.

Buraxılış meneceri nə edir?

Komanda üzvləri aylıq buraxılış meneceri rolunu köçürün yamaqlar və buraxılışlar arasında baş verə biləcək təhlükəsizlik buraxılışları da daxil olmaqla, onların obyektlərində istifadəçilər üçün buraxılışlarımızı. Onlar həmçinin şirkətin avtomatlaşdırılmış, davamlı yerləşdirməyə keçidinə rəhbərlik etmək üçün məsuliyyət daşıyırlar.

Öz-özünə quraşdırma buraxılışları və gitlab.com buraxılışları oxşar iş axınlarından istifadə edir, lakin fərqli vaxtlarda işləyir, Marin izah edir.

İlk növbədə, buraxılış meneceri, buraxılış növündən asılı olmayaraq, tətbiqin gitlab.com saytında işə salındığı andan etibarən GitLab-ın əlçatan olmasını və təhlükəsizliyini təmin edir, o cümlədən müştərilərin infrastrukturunda eyni məsələlərin öz müştəriləri ilə bitməməsini təmin edir. öz qabiliyyətləri.

GitLab-da səhv və ya boşluq düzəldildikdən sonra buraxılış meneceri onun quraşdırmaları olan istifadəçilər üçün yamaqlara və ya təhlükəsizlik yeniləmələrinə daxil ediləcəyini qiymətləndirməlidir. Bir səhv və ya zəifliyin yeniləməyə layiq olduğuna qərar verərsə, hazırlıq işləri başlayır.

Buraxılış meneceri bir düzəliş hazırlamaq və ya onu nə vaxt yerləşdirmək barədə qərar verməlidir - və bu, vəziyyətin kontekstindən çox asılıdır, "bu arada maşınlar konteksti idarə etməkdə insanlar qədər yaxşı deyil"deyir Marin.

Hər şey düzəlişlərə aiddir

Yamalar nədir və onlara nə üçün ehtiyacımız var?

Buraxılış meneceri səhvin şiddətinə əsaslanaraq bir düzəlişin buraxılıb-çıxarılmamasına qərar verir.

Səhvlər onların şiddətindən asılı olaraq dəyişir. Beləliklə, S4 və ya S3 səhvləri piksel və ya işarənin yerdəyişməsi kimi stilistik ola bilər. Bu, heç də az əhəmiyyət kəsb etmir, lakin heç kimin iş prosesinə əhəmiyyətli təsir göstərmir, yəni belə S3 və ya S4 səhvləri üçün düzəlişin yaradılması ehtimalı azdır, Marin izah edir.

Bununla belə, S1 və ya S2 zəiflikləri istifadəçinin ən son versiyaya yeniləməməsi və ya istifadəçinin iş prosesinə təsir edən əhəmiyyətli bir səhvin olması deməkdir. Əgər onlar izləyiciyə daxil edilibsə, bir çox istifadəçi onlarla qarşılaşıb, buna görə də buraxılış meneceri dərhal düzəliş hazırlamağa başlayır.

S1 və ya S2 zəiflikləri üçün yamaq hazır olduqdan sonra buraxılış meneceri yamağı buraxmağa başlayır.

Məsələn, GitLab 12.10.1 yaması bir neçə bloklama problemi müəyyən edildikdən və tərtibatçılar onlara səbəb olan əsas problemi həll etdikdən sonra yaradılıb. Buraxılış meneceri təyin edilmiş ciddilik səviyyələrinin düzgünlüyünü qiymətləndirdi və təsdiq edildikdən sonra bloklama problemləri aşkar edildikdən sonra XNUMX saat ərzində hazır olan düzəlişin buraxılması prosesi başladı.

Çoxlu S4, S3 və S2 yığıldıqda, buraxılış meneceri düzəlişin buraxılmasının aktuallığını müəyyən etmək üçün kontekstə baxır və onların müəyyən sayına çatdıqda, hamısı birləşdirilir və buraxılır. Buraxılışdan sonrakı düzəlişlər və ya təhlükəsizlik yeniləmələri blog yazılarında ümumiləşdirilir.

Buraxılış meneceri yamaqları necə yaradır

Yamalar yaratmaq üçün GitLab CI və ChatOps kimi digər funksiyalardan istifadə edirik. Buraxılış meneceri daxili kanalımızda ChatOps komandasını aktivləşdirməklə düzəlişin buraxılmasına başlayır #releases Slack-də.

/chatops run release prepare 12.10.1

ChatOps müxtəlif hadisələri işə salmaq üçün Slack daxilində işləyir, sonra GitLab tərəfindən işlənir və icra olunur. Məsələn, çatdırılma komandası yamaqları buraxmaq üçün müxtəlif şeyləri avtomatlaşdırmaq üçün ChatOps qurdu.

Buraxılış meneceri Slack-də ChatOps komandasını işə saldıqdan sonra işin qalan hissəsi CICD istifadə edərək GitLab-da avtomatik olaraq baş verir. Buraxılış prosesi zamanı Slack-də ChatOps və GitLab arasında ikitərəfli əlaqə mövcuddur, çünki buraxılış meneceri prosesdə bəzi əsas addımları aktivləşdirir.

Aşağıdakı videoda GitLab üçün yamağın hazırlanmasının texniki prosesi göstərilir.

gitlab.com-da avtomatik yerləşdirmə necə işləyir

gitlab.com-u yeniləmək üçün istifadə olunan proses və alətlər yamaqlar yaratmaq üçün istifadə olunanlara bənzəyir. gitlab.com-un yenilənməsi buraxılış menecerinin nöqteyi-nəzərindən daha az əl işi tələb edir.

ChatOps istifadə edərək yerləşdirmələri yerinə yetirmək əvəzinə, biz CI xüsusiyyətlərindən istifadə edirik, məsələn. planlaşdırılmış boru kəmərləri, onunla buraxılış meneceri tələb olunan vaxtda yerinə yetiriləcək müəyyən hərəkətləri təyin edə bilər. Əl prosesi əvəzinə, vaxtaşırı saatda bir dəfə işləyən, GitLab layihələrinə edilən yeni dəyişiklikləri yükləyən, onları paketləyən və yerləşdirməni planlaşdıran və avtomatik olaraq sınaq, QA və digər zəruri addımları yerinə yetirən boru kəməri var.

"Beləliklə, gitlab.com-dan əvvəl müxtəlif mühitlərdə işləyən çoxlu yerləşdirmələrimiz var və bu mühitlər yaxşı vəziyyətdə olduqdan və sınaq yaxşı nəticələr göstərdikdən sonra buraxılış meneceri gitlab.com yerləşdirmə əməliyyatlarına başlayır" Marin deyir.

gitlab.com yeniləmələrini dəstəkləmək üçün CICD texnologiyası bütün prosesi o qədər avtomatlaşdırır ki, buraxılış meneceri istehsal mühitinin gitlab.com-da yerləşdirilməsini əl ilə başlatmalıdır.

Marin aşağıdakı videoda gitlab.com yeniləmə prosesi haqqında ətraflı məlumat verir.

Çatdırılma komandası başqa nə edir?

gitlab.com yeniləmə prosesləri ilə müştərilərə daxili yamaqların buraxılması arasındakı əsas fərq ondan ibarətdir ki, sonuncu proses buraxılış menecerindən daha çox vaxt və daha çox əl işi tələb edir.

Marin deyir: "Biz bəzən bildirilən problemlər, alətlərlə bağlı problemlər və bir yamağı buraxarkən nəzərə alınmalı olan bir çox nüanslar olduğuna görə yamaların quraşdırılması ilə müştərilərə verilməsini gecikdiririk".

Çatdırılma komandasının qısamüddətli məqsədlərindən biri buraxılışı sürətləndirmək üçün buraxılış menecerinin əl işinin həcmini azaltmaqdır. Komanda buraxılış prosesini sadələşdirmək, rasionallaşdırmaq və avtomatlaşdırmaq üzərində işləyir ki, bu da aşağı ciddilik problemlərini həll etməyə kömək edəcək (S3 və S4, təqribən. tərcüməçi). Sürətə diqqət yetirmək əsas performans göstəricisidir: MTTP-ni - birləşmə sorğusunun qəbulundan nəticənin gitlab.com-a yerləşdirilməsinə qədər olan vaxtı - cari 50 saatdan 8 saata qədər azaltmaq lazımdır.

Çatdırılma qrupu həmçinin gitlab.com-u Kubernetes əsaslı infrastruktura köçürmək üzərində işləyir.

Redaktor n.b.: Əgər Kubernetes texnologiyası haqqında artıq eşitmisinizsə (və buna şübhə etmirəmsə), lakin hələ də ona əllərinizlə toxunmamısınızsa, onlayn intensiv kurslarda iştirak etməyi məsləhət görürəm. Kubernetes bazası28-30 sentyabr tarixlərində keçiriləcək və Kubernetes Mega14-16 oktyabr tarixlərində keçiriləcək. Bu, inamla naviqasiya etməyə və texnologiya ilə işləməyə imkan verəcək.

Bunlar eyni məqsədi güdən iki yanaşmadır: həm gitlab.com, həm də onların obyektlərindəki müştərilər üçün yeniləmələrin sürətli çatdırılması.

Bizim üçün hər hansı bir fikir və ya tövsiyəniz varmı?

Hər kəs GitLab-a töhfə verə bilər və biz oxucularımızın rəylərini alqışlayırıq. Çatdırılma komandamız üçün hər hansı bir fikriniz varsa, çəkinməyin sorğu yaratmaq bildirişlə team: Delivery.

Mənbə: www.habr.com

Добавить комментарий