Downtime olmadan ekosistem yeniləmələri
(Bölmə: Ekosistem və Şəbəkə)
1) Sıfır downtime məqsədi və prinsipləri
Sıfır-downtime yeniləmələri kod, konfiqurasiyalar, məlumat sxemləri və protokollar dəyişdikdə şəbəkə və məhsulların davamlı işləməsini təmin edir. Əsas prinsiplər:- Müqavilələrin sərhədlərində irəli/geri uyğunluq (backward/forward).
- «Böyük keçid» əvəzinə tədricən (progressive delivery).
- Müşahidə və geri dönüş: metriklər, izlər, sürətli geri dönüş.
- Şəbəkə və ödəniş axınları üçün idempotentlik və təhlükəsiz retralar.
- Arıza izolyasiyası: cell-memarlıq, circuit-breakers, fan-out limitləri.
2) Downtime olmadan buraxılış strategiyaları
Blue-Green - iki eyni yığını (Blue = prod, Green = new). Trafik ani geri dönüş imkanı ilə balanslaşdırıcı səviyyəsində atomik olaraq keçir.
Canary - SLO geytləri ilə mərhələli trafik payı (1% → 5% → 20% → 50% → 100%).
Rolling - hazırlıq yoxlaması (readiness) və drenaj bağlantıları ilə hovuzun qovşaq yenilənməsi.
Shadow/Traffic Mirroring - cavablara təsir etmədən yeni versiya üçün sorğuların əks olunması.
Feature Flags - dəyişməz API-nin (gradual rollout) üstündə bir iş dəyişikliyi.
Dark Launch - telemetriya və profilləşdirmə üçün gizli məntiq budaqlarının daxil edilməsi.
Tövsiyə: kritik xidmətlər üçün - canary + rolling + feature flags birləşməsi; şlüzlər və API üçün - mavi-yaşıl qısa keçid.
3) Müqavilə uyğunluğu (API/hadisə/protokol)
API: URI/başlıqlara görə versiya; sahələrin əlavə edilməsi - icazə verilir, silinməsi/adının dəyişdirilməsi - yalnız «deprequit pəncərə» vasitəsilə.
Hadisələr (event-bus): «yalnız əlavə» sahələri; açarları dəyişməz; yeni tiplər - yeni mövzular/versiyalar kimi.
Sxemlər (Avro/JSON-Schema/Protobuf): sxem-reyestr, uyğunluq 'BACKWARD' FULL '.
Şəbəkə protokolu/P2R: version handshake və capability negotiation (düyünlər dəstəklənən versiyalar/fichs elan edir).
Gateways: miqrasiya dövrü üçün vN və vN + 1 (transcoding/field mapping) arasında adapterlər.
Deprekeyt siyasəti (nümunə): elan → ≥ 90 gün xəbərdarlıq → «deprecated» bayraq → sahə/end point aradan qaldırılması.
4) Dayanmadan məlumat miqrasiyası (Expand → Migrate → Contract)
1. Expand - köhnə və yeni formata yeni strukturlar/indekslər/sütunlar (nullable/c defolt), ikiqat yazılar (dual-write) əlavə edin.
2. Migrate - fon miqrasiyası, backfill, sabitlik validatorları; Hər iki sxemi dəstəkləyən adapter vasitəsilə oxu.
3. Contract - köhnə sxemə oxumaq/yazmaq, «deprequit pəncərə» tamamlandıqdan sonra texniki vəzifəni silmək.
sql
-- Expand
ALTER TABLE payouts ADD COLUMN payout_ref TEXT NULL;
CREATE INDEX CONCURRENTLY ix_payouts_ref ON payouts(payout_ref);
-- Migrate (batch + idempotent)
UPDATE payouts SET payout_ref = concat('ref_', id) WHERE payout_ref IS NULL;
-- Contract (after compatibility window)
ALTER TABLE payouts ALTER COLUMN payout_ref SET NOT NULL;
Hadisələrin tranzaksionallığı: Zəmanətli çatdırılma üçün Outbox + CDC istifadə edin.
5) Uzun ömürlü birləşmələr və drenaj
Graceful shutdown: SIGTERM → yeni sorğuların qəbulunu dayandırın → 'readiness = fail' → WebSocket/HTTP2/QUIC-streams drenaj gözləmək → bağlamaq.
Connection draining balanslaşdırıcıda: 'deregister _ delay' 30-120 s, sticky-sessiyalar - IP deyil, tokenlər vasitəsilə.
Back-pressure: p99_latency böyüdükdə yeni axınları məhdudlaşdırın.
6) SDK və müştərilərin versiyalaşdırılması
SDK üçün SemVer; LTS filialı genişləndirilmiş dəstək pəncərəsi ilə (məsələn, 12 ay).
Policy: «ən azı iki aktiv minor versiyası»; versiyalara görə müştərilərin payına telemetriya; avtomatik yeniləmə ehtiyacı barədə xəbərdarlıqlar.
Kritik dəyişikliklər (security): Müddətdən sonra şlüz vasitəsilə köhnə versiyaları söndürmək üçün zorlanmış bayraq.
7) Protokol və şəbəkə qovşaqlarının yenilənməsi
Soft-fork: köhnə düyünləri (capabilities) pozmadan qaydaların genişləndirilməsi.
Hard-fork: əvvəlcədən elan edilmiş pəncərə, ikiqat validasiya, «kanarya validatorları», «reorg/rollback» münaqişələrindən qorunma, aktivləşdirmə üçün vaxt kilidi.
Çapraz zəncirli yeniləmələr: governance körpüləri aktivasiya siqnallarını ötürür; rasinxronizasiya vəziyyətində - yerli circuit-breaker.
8) Konfiqurasiyalar və məlumatlar kimi sirləri
Version, rəqəmsal imzalar və geri dönüş ilə mərkəzləşdirilmiş config-service.
Secrets rotation downtime olmadan: ikiqat açarlar (old/new), növbəli qoşulma; KMS/PKI üçün sıfır fasilələr.
Feature-flags ayrı bir store, daxil/off audit.
9) Pipeline Release və Avtomatik «Geyt»
Стадии: build → unit → security scan → e2e/stage → shadow → canary → 100%.
Geyt-stop:- Error-budget burn-rate, p95/p99 latency, error-rate, hadisələrin/ödənişlərin success-rate azalması, ölüm-letter növbələrinin artması.
- Hər hansı bir mərhələdə SLO pozulduqda avtomatik geri dönüş.
yaml release:
strategy: canary steps:
- name: shadow traffic_mirror: 5%
gates: [no_data_loss, no_pii_leak]
- name: canary_1 traffic: 1%
gates: [error_rate<0. 2%, p99<400ms]
- name: canary_2 traffic: 10%
gates: [slo_ok_1h, zero_deadletters]
- name: rollout traffic: 100%
gates: [stability_6h]
- name: bake duration: 24h action: finalize_or_rollback
10) Buraxılışlar üçün müşahidə və SLO
Açar SLI:- p95/p99 latency end-point; error-rate (5xx + ölümcül 4xx); success-rate hadisələr; retrajların payı; növbələrin gecikməsi; P2P-də «relay» payı; versiyalarına görə müştərilərin payı.
- p99 API ≤ 400 ms; error-rate ≤ 0. 2%; hadisələrin success-rate ≥ 99. 5%; növbə lag ≤ 2 s; MTTR geri dönüş ≤ 15 dəq.
- Buraxılış daşbordları: «əvvəl/sonra» müqayisəsi, kanarya qrafları, asılılıq xəritəsi (service map), burn-rate alertləri 1h/6h.
11) Geri çəkilmə və «kill-switch»
Avtomatik geri dönüş: son «yaxşı» artefaktları və konfiqləri saxlayın; Balanslayıcıda «1 düyməli» rollback (Blue ← Green).
Partial rollback: Binarı saxlayarkən ficheflag yeni məntiqi söndürür.
Data rollback: yalnız «read-paths» üçün; «write-paths» üçün - təhlükəsiz miqrasiyalar (pəncərənin sonuna qədər köhnə sütunları heç vaxt silməyin).
Kill-switch: Qeyri-sabit alt sistemi söndürmək üçün mərkəzləşdirilmiş bayraq.
12) Fasiləsiz test
Müştərilərin sabitinə qarşı kontrakt testləri (consumer-driven).
Uyğunluq testi (schema-compat) ilə sxem testləri.
Steycinqdə Chaos testləri:% düyün/bölgələrin sıradan çıxması, DHT/TURN/KMS/DNS deqradasiyası, «retraj fırtınası».
Yük/market testləri: Kanarya bölgələri və «isti» marşrutlar.
13) Kommunikasiya və komplayens qaydaları
Release Notes: dəyişən, təsir, Windows/Deadline Deprequate, tərəfdaşlar üçün fəaliyyət.
SLA hadisə cavabları: MTTA ≤ 5 dəq, ilk yeniləmə statusu ≤ 15 dəq, post-mortem ≤ 72 saat.
İzlərin auditi: bütün -dəyişikliklərin və relizlərin ərizələrə/prouzallara bağlanması, artefaktların imzaları.
14) Xüsusi hallar
Ödəniş/maliyyə axını: ciddi idempotentlik, idempotency-key deadup, outbox + CDC, yalnız «dağıdıcı» miqrasiya.
WebSocket/axınlar: handshake-də protokol versiyası, yekunlaşdırılmış rekonnekt (resume tokens).
Cache/edge: 'stale-while-revalidate', cache ikiqat versiyası, buraxılış dövründə TTL-gigiyena.
Mobil müştərilər: storlarda mərhələli rollout, təhlükəsizlik buraxılışlarında məcburi yeniləmə.
15) Yoxlama siyahısı zero-downtime
1. Müqavilə uyğunluğu və sxem-reyestr konfiqurasiya edilmişdir.
2. Expand → Migrate → Contract təsvir və avtomatlaşdırılmışdır.
3. Balance/Ingress mavi-yaşıl və drenaj birləşmələri dəstəkləyir.
4. SLO geytləri və avtomatik geri çəkilmə ilə Canary-paypline.
5. Feature-flags və kill-switch 24/7 mövcuddur.
6. Outbox + CDC və idempotentlik bütün write yolları üçün daxildir.
7. «Release-health» daşbordları və burn-rate alertləri aktivdir.
8. Rabitə və deprekeyt siyasəti tərəfdaşlara əvvəlcədən elan edilmişdir.
9. Həftəlik geri dönüş məşqi; rüblük chaos-day.
16) Sözlük
Progressive delivery - risklərin nəzarət mərhələli buraxılışı.
Schema registry - uyğunluq siyasətləri ilə sxem versiyalarının anbarı.
Outbox/CDC - əməliyyatlardan hadisələrin zəmanətli yayım şablonu.
Blue-Green - atomik trafik keçid ilə paralel yığınlar.
Canary - yeni versiyada trafikin payının tədricən artırılması.
Graceful shutdown/draining - aktiv əlaqələrin düzgün tamamlanması.
Nəticə: sıfır endirim bir hiylə deyil, bir sistemdir: müqavilələr, sxemlərin uyğunluğu, mərhələli buraxılış strategiyaları, müşahidə, təhlükəsiz miqrasiya və zəmanətli geri dönüş. Bu çərçivədən sonra ekosistem istifadəçilər və tərəfdaşlar üçün tez, proqnozlaşdırıla bilən və ağrısız yenilənir.