DevOps

Sıfır Fasiləli Yerləşdirmələr: Praktiki Bələdçi

Heç kimin fərq etmədən gün ərzində buraxılış etməyimizə imkan verən yerləşdirmə naxışları.

EX
ExpressCore Cloud
DevOps və SRE
Sıfır Fasiləli Yerləşdirmələr: Praktiki Bələdçi
Sıfır Fasiləli Yerləşdirmələr: Praktiki Bələdçi

Çərşənbə axşamı günorta saat 2-də, saytda real istifadəçilər varkən yerləşdirmə etmək və heç kimin fərq etməməsi mühəndislik yetkinliyinin ən aydın əlamətlərindəndir. Bu sehr deyil — birlikdə tətbiq edildikdə yerləşdirməni fasiləyə səbəb ola bilən şeylər siyahısından çıxaran, yaxşı öyrənilmiş naxışlar toplusudur. Bu bələdçi texniki xidmət pəncərəsi olmadan davamlı buraxılış üçün istifadə etdiyimiz üsulları izah edir.

Sıfır Fasilə Niyə Uptime-dan Artıqdır

Açıq fayda əlçatanlıqdır, lakin daha dərin fayda psixolojidir. Yerləşdirmələr təhlükəsiz və darıxdırıcı olduqda komandalar daha tez-tez, daha kiçik hissələrlə buraxılış edir. Kiçik hissələri nəzərdən keçirmək, sazlamaq və geri qaytarmaq asandır. Yerləşdirmə qorxusu komandaları ilk növbədə riskli böyük buraxılışlara sövq edən şeydir.

Əsas Yerləşdirmə Strategiyaları

Ardıcıl (rolling) yerləşdirmələr

İnstansiyalar yük balanslaşdırıcının arxasında bir neçəsi bir dəfəyə yenilənir, qalanları isə trafik xidmət etməyə davam edir. Sadə və resurs-səmərəlidir, lakin kodunuzun iki versiyasının eyni vaxtda işləməsi deməkdir — bu da aşağıdakı geriyə uyğunluq qaydalarını doğurur.

Blue-green yerləşdirmələr

İki eyni mühit işlədirsiniz. Yeni versiya boş olanda canlıya çıxır, yoxlanılır və trafik dərhal ona keçirilir. Geri qaytarma da eyni dərəcədə anidir — trafiki geri çevirin. Xərc keçid zamanı ikiqat infrastruktur işlətməkdir.

Canary yerləşdirmələr

Yeni versiya trafikin kiçik hissəsini alır — 1%, sonra 5%, sonra 25% — siz isə xəta dərəcələrinə və gecikməyə baxırsınız. Metriklər sağlam qalırsa artırırsınız; yoxsa əksər istifadəçilər ona toxunmazdan əvvəl geri çəkirsiniz. Bu, yüksək riskli dəyişikliklər üçün ən təhlükəsiz seçimdir.

Blue-green "ani keçə bilərikmi?" sualına cavab verir. Canary "keçməliyikmi?" sualına. Yetkin komandalar hər ikisini birlikdə istifadə edir.

Çətin Hissə: Verilənlər Bazası Miqrasiyaları

Kodu geri qaytarmaq asandır; datanı yox. Yerləşdirmə fasilələrinin ən böyük səbəbi hazırda işləyən kodla uyğun olmayan sxem dəyişikliyidir. Həlli bir neçə yerləşdirmə ərzində tətbiq olunan genişlət-və-daralt naxışıdır:

  • Genişlət. Heç nə silmədən yeni sütun və ya cədvəl əlavə edin. Köhnə kod onu görməzdən gəlir; yeni kod istifadə edə bilər. Hər iki versiya problemsiz işləyir.
  • Miqrasiya et. Datanı doldurun və tətbiqi yeni struktura yazıb oxumağa keçirin.
  • Daralt. Yalnız köhnə kod tamamilə çıxarıldıqdan sonra köhnə sütunu silin. Bu addım sonrakı yerləşdirmədə baş verir, heç vaxt eynisində yox.

Qızıl qayda: sütunu istifadədən çıxardığınız eyni yerləşdirmədə heç vaxt onu yenidən adlandırmayın və ya silməyin. Hər miqrasiya hazırda istehsalatda olan kod versiyası ilə geriyə uyğun olmalıdır.

Dəstəkləyici İnfrastruktur

Sıfır fasilə bir neçə cəlbedici olmayan hissənin düzgün işləməsindən asılıdır:

  • Sağlamlıq yoxlamaları hazırlığı dəqiq bildirir ki, balanslaşdırıcı hələ işə düşən instansiyaya trafik yönləndirməsin.
  • Zərif dayandırma — çıxarılan instansiya sorğuları atmaq əvəzinə işləyənləri tamamlayır.
  • Bağlantı boşaltma balanslaşdırıcıda ayrılan instansiyaya yeni sorğu göndərməyi dayandırır.
  • Avtomatik geri qaytarma tetikləyiciləri xəta dərəcəsi və gecikmə hədlərinə bağlıdır ki, pis yerləşdirmə insan gözləmədən geri qayıtsın.

Feature Flag-lər: Yerləşdirməni Buraxılışdan Ayırmaq

Ən güclü üsul kodu yerləşdirməyi funksiyanı buraxmaqdan ayırmaqdır. Feature flag-lərlə yeni kod istehsalata "qaranlıq" çıxır — mövcud, lakin qeyri-aktiv — və onu istifadəçilər üçün müstəqil, tədricən və geri qaytarıla bilən şəkildə aktiv edirsiniz. Yerləşdirmə riskli hadisə olmaqdan çıxır, çünki yeni davranış siz qərar verənə qədər canlı deyil.

Nəticə

Sıfır fasiləli yerləşdirmə bir çox kiçik intizamın mürəkkəb nəticəsidir: rolling və ya blue-green infrastruktur, canary analizi, geriyə uyğun miqrasiyalar, dürüst sağlamlıq yoxlamaları və feature flag-lər. Onları tədricən mənimsəyin. Hər biri müstəqil olaraq yerləşdirmələri təhlükəsiz edir, birlikdə isə buraxılışı stresli hadisədən günün adi, görünməz hissəsinə çevirir.