paint-brush
Yerləşdirmələr: Onlardan İrrasional Qorxutərəfindən@aviator
Yeni tarix

Yerləşdirmələr: Onlardan İrrasional Qorxu

tərəfindən Aviator7m2024/09/30
Read on Terminal Reader

Çox uzun; Oxumaq

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.
featured image - Yerləşdirmələr: Onlardan İrrasional Qorxu
Aviator HackerNoon profile picture



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:


  • Buraxılış mühəndisliyi funksiyasını başa düşmək.
  • Proqram mühəndisləri nəyə əhəmiyyət verir və nəyə əhəmiyyət vermirlər.
  • Davamlı çatdırılmanın təsiri (CD).
  • Əl ilə yerləşdirmələrə nəzər salın.
  • Əllə yerləşdirmə ilə bağlı problemlər və bu problemlərin həlli.

Buraxılış Mühəndisliyi

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:


  • Ardıcıl və təkrarlana bilən yerləşdirmələr: Buraxılış proseslərinin standartlaşdırılması istehsala pis yerləşdirmə riskini azaldır.


  • Xidmətin dayandırılmasının azaldılması : Standartlaşdırılmış proseslər həmçinin qrupların zərərli istehsal mühiti insidentləri ilə mübarizə aparmaq üçün təchiz olunmasını təmin edir – məsələn, buraxılışın problemlərə səbəb olduğu ssenarilər üçün geri çəkilmə strategiyası.


  • Performansa nəzarət edin və optimallaşdırın: Daha sürətli və daha etibarlı yerləşdirmələr üçün performans təkmilləşdirmələrini axtarın.


  • Mühəndisliklə əməkdaşlıq edin: Bütün yeni və mövcud xidmətlərin dəqiq müəyyən edilmiş yerləşdirmə prosesinə malik olmasını təmin etmək üçün tərtibatçılar, QA və DevOps komandaları ilə sıx əməkdaşlıq edin.

Proqram Mühəndisləri Nələrə Önəm verirlə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:


  • Sürətli kod birləşir: Tez birləşmə onlara işlərini təsdiq etməyə və yeni tapşırıqlara keçməyə və ya asılı tapşırıqları blokdan çıxarmağa imkan verir.


  • İstehsal insidentləri : Mühəndislər bütün istehsal insidentlərinə əhəmiyyət verməsələr də, hər hansı istehsal kəsilməsinə səbəb olan kod dəyişikliklərinə mütləq əhəmiyyət verirlər.


  • Yerləşdirmə cədvəli : Mühəndislər həmçinin dəyişikliklərin nə vaxt yayımlandığını və ya nə vaxt yayımlandığını izləməyi xoşlayırlar ki, dəyişikliklərlə bağlı real vaxt rejimində rəy əldə edə bilsinlər.

Proqram Mühəndisləri Nələrə Önəm verməz

Bizi maraqlandıran şeylər olsa da, etmədiklərimiz də var:


  • Yerləşdirmə metodologiyası : Səmərəli və etibarlı yerləşdirmə prosesinə ehtiyac olduğunu bilsək də, bunun necə həyata keçirildiyi onlara əhəmiyyət vermir.


  • Digər dəyişikliklərin təsiri : İşlər səhv getmədikcə, digər tərtibatçıların əlaqəli olmayan dəyişikliklərindən narahat deyilik.


  • Yerləşdirmənin idarə edilməsi : Mühəndis proqram komandasında yerləşdirməni kimin idarə etdiyinə biganədir. Məsələn, biz yalnız bunu etmək tapşırığı verildiyi təqdirdə yerləşdirmənin idarə edilməsinə əhəmiyyət verərik.

Davamlı Yerləşdirmələrin Təsiri (CD)

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.

Əllə Yerləşdirmələr

Ç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:

Nəzarət

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.

Xüsusi Buraxılış Komandaları

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.

Elektron cədvəllə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.

Manual QA

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.

Manuel yerləşdirmə ilə işlər harada səhv gedir?

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:

Kiçik qrupdan asılılıq

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.

Riskin azaldılması strategiyası yoxdur

Ə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.

İnsan Səhvinə Meyillidir

Ə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.

Yüksək səy

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.

Ünsiyyətin pozulması

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ə.

Bununla bağlı nə edə bilərik?

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:


  • istehsal hadisələrinin qarşısını almaq üçün qoruyucu barmaqlıqlar təmin edin
  • insan səhvlərini azaldır
  • hər kəsə yerləşdirmələri işə salmaq imkanı verin
  • yerləşdirmələrin tez-tez baş verməsini təmin edin

Qoruyucular - Kanarya və Geriyə dönmələ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.

İnsan Səhvlərini Azaldın – Standartlaşdırma

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ə Prosesini Demokratikləşdirin

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!

Tez-tez Yerləşdirmələr

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.

Tərtibatçı Təcrübəsini Təkmilləşdirin

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.

Müəyyən edilmiş Riskin Azaldılması Strategiyaları

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ı

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.

Nəticə

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:


  • Yerləşdirmə proseslərinin standartlaşdırılmasına investisiya qoyun.
  • Kanarya buraxılışları, strateji buraxılışlar, geri dönmələr və düzəlişlər kimi dəqiq müəyyən edilmiş riski azaltma strategiyaları qurun.
  • Yerləşdirmələri demokratikləşdirməklə tərtibatçı təcrübəsini sadələşdirin və hər kəsi iştirak etməyə təşviq edin.


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.