Yerləşdirmə narahatlığı realdır. Yerləşdirmə ilə bağlı insan duyğularını başa düşmək üçün bir addım ataq və qorxunu minimuma endirmək üçün ən yaxşı təcrübələri öyrənək.
CrowdStrike ilə əlaqəli son fasilə 8,5 milyon Windows əməliyyat sisteminə təsir etdi və bu, müxtəlif qlobal xidmətlərdə, o cümlədən aviaşirkətlər və xəstəxanalarda fasilələrə səbəb oldu. Çoxsaylı təhlillər bu hadisənin özünün kök səbəbini araşdırıb.
Bununla belə, bir proqram mühəndisi olaraq, mən hesab edirəm ki, biz yerləşdirmə ilə bağlı insan duyğularının aspektini, xüsusən istehsalı pozmaq qorxusunu qaçırırıq. Bu məqalədə bu barədə danışmağa çalışacağıq. Biz əhatə edəcəyik:
Bir proqram mühəndisinin nöqteyi-nəzərindən yerləşdirmə qorxusunu araşdırmadan əvvəl, əvvəlcə buraxılış mühəndisinin rolunu anlayaq. Müasir CI və CD alətləri və Kubernetes-in standartlaşdırılması sayəsində buraxılış mühəndisliyi son illərdə xeyli inkişaf etmişdir. Bu irəliləyişlərə baxmayaraq, əsas vəzifələr eyni olaraq qalır:
Buraxılış mühəndislərindən fərqli olaraq, məhsul komandasında işləyən bir proqram mühəndisi olaraq biz yalnız yerləşdirmənin müəyyən aspektlərinə diqqət yetirə bilərik:
Bizi maraqlandıran şeylər olsa da, etmədiklərimiz də var:
Beləliklə, qorxunun Davamlı yerləşdirmələrlə nə əlaqəsi var?
çox.
Araşdırmalar [bir neçə faydası] sübut etdi (https://dora.dev/capabilities/continuous-delivery/#:~:text=DevOps%20Research%20and%20Assessment%20(DORA,as%20higher%20levels%20of%20) Davamlı Yerləşdirmə (CD) və təəccüblü deyil ki, onların bir çoxu təbiətdə psixolojidir .
Başqa sözlə, avtomatlaşdırılmış testlər yalnız istehsalın etibarlılığını təmin etmir, həm də psixoloji təhlükəsizliyi təmin edir, bəzən irrasional olaraq, yerləşdirmə qorxusunu azaldır. Bir tərtibatçı olaraq, məndən dəyişiklikləri əl ilə yoxlamağı tələb edənə nisbətən CD prosesində dəyişiklik etmək daha rahatdır.
Bununla belə, bu CD strategiyalarının populyarlığına baxmayaraq, bir çox şirkət hələ də yerləşdirmələri əl ilə işə salır (insan-in-the-loop var), bu CD tətbiqlərinə ehtiyatlı yanaşmanı göstərir. Bu davranış onu göstərir ki, komandalar buraxılış prosesinə nəzarəti saxlamağa və lazım gəldikdə müdaxilə etməyə üstünlük verirlər.
Bunu psixoloji təhlükəsizlik baxımından başa düşmək vacibdir. Manual yerləşdirmələr o deməkdir ki, kimsə prosesə nəzarət edir və işlər səhv getdikdə problemləri həll edir. Bu, təhlükəsizlik hissini təmin etsə də, eyni zamanda yerləşdirən şəxsdə qorxuya səbəb ola bilər və insan səhvinə meyllidir.
Çatışmazlıqlara baxmayaraq, əksər komandalar yerləşdirməni əl ilə idarə edir. Tipik əl ilə yerləşdirmə bir neçə addımdan ibarət ola bilər:
Bir buraxılış çıxmazdan əvvəl kimsə bütün yerləşdirmə prosesinə baxır. Bu şəxs nə vaxt və problem əlamətləri olduqda müdaxilə etmək vəzifəsini daşıyır. Komandalar, yerləşdirmələrini idarə edən və yaranan problemləri həll edən çağırışda olan bir şəxsi saxlayır.
Bəzi komandaların buraxılışların rəvan getməsini təmin edən xüsusi buraxılış mühəndisliyi komandası var. Bu, yüksək ixtisas dərəcəsi demək olduğundan, yerləşdirmə prosesi daha səmərəli və etibarlı ola bilər.
Bəzi şirkətlər edilən hər hansı dəyişikliyi təsdiqləmək üçün elektron cədvəl saxlayırlar. Bu, şirkətlərə bu dəyişiklikləri sistematik şəkildə nəzərdən keçirməyə və təsdiq etməyə imkan verir, onların əvvəlcədən müəyyən edilmiş keyfiyyət standartlarına cavab verməsini təmin edir.
Cədvəllərə əlavə olaraq, manual QA şirkətlərin əlavə etdiyi başqa bir təbəqədir. Manual QA yeni buraxılışları istehsala yerləşdirməzdən əvvəl səhnələşdirmə mühitlərində sınaqdan keçirir. Bununla belə, sınaq mühiti qüsursuz deyil, ona görə də bəzi real həyat ssenariləri nəzərə alınmayacaq.
Yalnız əl ilə yerləşdirmələrə güvənən hər hansı bir proqram inkişaf komandası üçün çox şey səhv ola bilər:
Bu, bəzi hallarda buraxılış gecikmələrinə və insan səhvinə səbəb olan darboğazlar yarada bilər. Həmçinin, bu konkret şəxs ayrıldıqda və ya tələb olunan tapşırıqları yerinə yetirə bilmədikdə komandada problemlər yarana bilər.
Əlverişsiz istehsal insidentini izləmək üçün heç bir strategiya yoxdur. Hadisə baş verdikdə, buraxılış qrupu həll etmək və qərarlar qəbul etmək üçün müvafiq maraqlı tərəfləri tapmaq üçün mübarizə aparmalıdır.
Əmrlərdə və ya skriptlərdə çap xətaları və ya yerləşdirmədən əvvəl və ya yerləşdirmədən sonrakı addımları yerinə yetirməyi unutmusunuz.
Yerləşdirmə prosesi uşaq baxıcılığını tələb etdiyindən, bu, vaxt aparan bir səyə çevrilir. Həmçinin yerləşdirmə tezliyinin əhəmiyyətli dərəcədə azalmasına səbəb olur. Məsələn, bütün yerləşdirməni izləmək üçün bir saat tələb olunarsa, buraxılış komandası həmin vaxta qənaət etmək üçün kiçik dəyişikliklərlə günlərdə yerləşdirmələri atlamağa qərar verə bilər.
Məhsul qrupları tərəfindən buraxılışların vəziyyəti və onların dəyişikliklərinin istehsala nə vaxt daxil olduğu aydın deyil.
Bu çətinliklərə baxsaq, mühəndislərin niyə yerləşdirmədən qorxduğunu anlamaq asandır. Yerləşdirmənin uğursuzluq riski, yüksək paylar və dayanma müddətini aşağı saxlamaq üçün təzyiq də bu qorxuya kömək edir.
Sınaq avtomatlaşdırılmasını artırmaqla bu uğursuzluqları minimuma endirmək olar. Yenə də, bu testlər sınaq mühitində aparıldığı üçün, avtomatlaşdırılmış testin bütün mümkün səhvləri tutacağını gözləməməlisiniz. Uğursuzluqlar gözlənilir, lakin aşağı nisbətdə.
Sadəcə Davamlı Yerləşdirmələri qurun? Demək etməkdən daha asandır. Çatışmazlıqlara baxmayaraq, yaxşı idarə olunarsa, əl ilə yerləşdirmələr hələ də yaxşıdır. Məqsədlər olmalıdır:
Canary və Rollback strategiyaları kəsilmənin təsirini azaltmağa və bir çox hallarda böhranın avtomatik qarşısını almağa kömək edə bilər.
Kanareyka buraxılışı yeni buraxılışınızı istehsal mühiti trafikinin kiçik bir hissəsinə təqdim edir. Bu, komandalara sınaq zamanı ortaya çıxa bilməyən problemlər haqqında məlumat verir.
Digər tərəfdən, geri qaytarma strategiyası mühəndislərə buraxılışı əvvəlki sabit versiya vəziyyətinə qaytarmağa kömək edir. İstehsal mühitinə yerləşdirildikdən sonra yeni problemlər yarandıqda edilir.
Səmərəlilik, ardıcıllıq, etibarlılıq və yüksək proqram keyfiyyəti ilə nəticələnən standart yerləşdirmə metodologiyalarını müəyyənləşdirin. DevOps hesabatında DORA göstərir ki, etibarlılıq daha yaxşı əməliyyat performansını proqnozlaşdırır. Bundan əlavə, standartlaşdırılmış bir prosesə sahib olmaq avtomatlaşdırıla bilən buraxılış proseslərində təkrarlanmağa imkan verir. Bu prosesin avtomatlaşdırılması komandaya istehsal xərclərini aşağı salmağa kömək edir.
Yerləşdirmə prosesinin demokratikləşdirilməsi konkret şəxslərdən asılılığı aradan qaldırır. Hər hansı bir proqram mühəndisinə yerləşdirmə səlahiyyəti versək, bu qorxunu yavaş-yavaş azaldır. "Hər kəs yerləşdirə bilərsə, bu çox çətin olmamalıdır." Leqolarınızı paylaşın!
Yerləşdirmə narahatlığını azaltmaq üçün biz az deyil, daha tez-tez yerləşdirməliyik. DORA hesabatı həmçinin vurğulayır ki, daha kiçik toplu yerləşdirmələr problemlərə səbəb olma ehtimalı azdır və tərtibatçılar üçün psixoloji maneəni azaltmağa kömək edir.
Nə yerləşdirildiyini aydınlaşdırmaq, tərtibatçı təcrübəsini artırır. Tərtibatçıların yerləşdirmələrin nə vaxt baş verdiyini və hansı dəyişikliklərin daxil edildiyini bilməsini asanlaşdırın. Bu şəffaflıq tərtibatçılara dəyişikliklərin nə vaxt yayımlandığını izləməyə kömək edir və insident araşdırmalarını asanlaşdırır.
Geri qaytarılmalar və düzəlişlər üçün müəyyən addımlar atılmalıdır, çünki bu, istehsal hadisələri ilə bağlı hər hansı qərarsızlığı aradan qaldırmağa kömək edir. Məsələn, komandaların asan geri dönmə üçün izləməsi üçün ayrıca quraşdırma və yerləşdirmə addımları olmalıdır.
Eynilə, düzəlişlər və albalı seçimləri ilə necə məşğul olmağın standartlaşdırılması, paylar yüksək olduqda işləməyi asanlaşdıra bilər.
Xüsusiyyət bayraqları istehsalda insident yaradan yeni funksiyanı söndürə bilən öldürmə açarları kimidir. Bu, mühəndislərə istehsal hadisələrini tez bir zamanda həll etməyə imkan verə bilər.
Proqram təminatı komandaları bahalı səhvlərdən qaçmaq üçün məhsulun inkişafının əvvəlindən buraxılış mühəndisliyinə prioritet kimi yanaşmalıdırlar. Və biz Crowdstrike kəsilməsi kimi hadisələrin inkişaf təcrübələrimizi pozmasına imkan verməməliyik. Yerləşdirmə qorxusunun aradan qaldırılması və istehsal insidentlərinin qarşısının alınması bir neçə əsas strategiyanı əhatə edir:
Aviator-da biz tərtibatçıları daha sürətli və daha yaxşı qurmaq üçün gücləndirmək üçün ilk prinsiplərdən başlayaraq tərtibatçı məhsuldarlığı alətləri yaradırıq. Yerləşdirmələri idarə etməyin müasir üsulu üçün Aviator Releases- ə baxın.