Ekosistemany taşlamazdan täzelemek
(Bölüm: Ekosistema we Tor)
1) Zero-downtime maksady we ýörelgeleri
Zero-downtime-täzelenmeler kod, konfigurasiýa, maglumat shemasy we teswirnamalar üýtgän halatynda toruň we önümleriň üznüksiz işlemegini üpjün edýär. Esasy ýörelgeler:- Şertnamalaryň çäginde öňe/yza (backward/forward) gabat gelmek.
- "Uly geçiş" ýerine (progressive delivery).
- Syn edilişi we yzyna öwrülmegi: metrikler, ýollar, çalt yza gaýdyp gelmek.
- Ulgam we töleg akymlary üçin idempotentlik we howpsuz retra.
- Şowsuzlyklaryň izolýasiýasy: cell-arhitektura, circuit-breakers, fan-aut çäkleri.
2) Downtaýmasyz çykmak strategiýalary
Blue-Green - iki sany meňzeş yığını (Blue = prod, Green = new). Traffik derrew yza gaýdyp gelmek mümkinçiligi bilen deňagramlaşdyryjynyň derejesinde atomiki görnüşde geçýär.
Canary - SLO bellikleri bilen traffigiň tapgyrlaýyn paýy (1% → 5% → 20% → 50% → 100%).
Rolling - howuzyň taýynlyk barlagy (readiness) we birikmeleriň drenaji bilen täzelenmegi.
Shadow/Traffic Mirroring - jogaplara täsir etmezden täze wersiýa haýyşlary aýna.
Feature Flags - üýtgewsiz API-iň (gradual rollout) üstünde iş nokady.
Dark Launch - telemetriýa we profillemek üçin gizlin logika şahalaryny goşmak.
Maslahat: möhüm hyzmatlar üçin - canary + rolling + feature flags kombinasiýasy; şlýuzlar we API üçin - gysga geçiş bilen gök-ýaşyl.
3) Şertnama laýyklygy (API/wakalar/teswirnama)
API: URI/sözbaşylar boýunça wersiýa; meýdanlary goşmak - kabul ederlikli, aýyrmak/adyny üýtgetmek - diňe "deprekeýt penjiresi" arkaly.
Wakalar (event-bus): "diňe goşmak"; açarlar üýtgemez; Täze görnüşler - täze mowzuklar/wersiýalar ýaly.
Shemalar (Euro/JSON-Schema/Protobuf): shema-reýestr, gabat gelmek 'BACKWARD' FULL '.
Tor/P2P: version handshake we capability negotiation (düwünler goldanýan wersiýalary/şekilleri yglan edýär).
Gateways: göçmek döwri üçin vN bilen vN + 1 (transcoding/field mapping) arasyndaky adapterler.
Deprekeýt syýasaty (mysal): bildiriş → ≥ 90 gün duýduryş → "deprecated" baýdak → meýdan/endpoint aýyrmak.
4) Durmazdan maglumat göçmek (Expand → Migrate → Contract)
1. Expand - täze gurluşlary/indeksleri/sütünleri (nullable/c defolt), iki ýazgyny (dual-write) köne we täze formata goşmak.
2. Migrate - fon göçmeleri, backfill, yzygiderlilik tassyklaýjylary; iki shemany hem goldaýan adapter arkaly okamak.
3. Contract - köne shemany okamagy/ýazmagy öçürmek, "deprekeýt penjiresi" tamamlanandan soň tehniki karzy aýyrmak.
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;
Wakalaryň geleşigi: kepillendirilen gowşuryş üçin Outbox (waka ýazgysy bilen geleşik) + CDC ulanyň.
5) Uzak möhletli birikmeler we drenaj
Graceful shutdown: SIGTERM → Täze haýyşlary kabul etmegi bes ediň → 'readiness = fail' → WebSocket/HTTP2/QUIC akymlaryna garaşyň → ýapyň.
Connection draining balanslaýjyda: 'deregister _ delay' 30-120 s, sticky-sessiýalar - IP däl-de, tokenler arkaly.
Back-pressure: p99_latency ulalanda täze akymlary çäklendiriň.
6) SDK we müşderileri wersiýalaşdyrmak
SDK üçin SemVer; Giňeldilen goldaw penjiresi bolan LTS şahasy (mysal üçin 12 aý).
Policy: "azyndan iki sany işjeň minor wersiýasy"; wersiýalar boýunça müşderileriň paýyna telemetriýa; täzelenmegiň zerurlygy barada awtomatiki duýduryşlar.
Möhüm üýtgeşmeler (security): möhletden soň şlýuzyň üsti bilen köne wersiýalary öçürmäge mejbur edilen baýdak.
7) Protokollary we tor düwünlerini täzelemek
Soft-fork: köne düwünleri (capabilities) bozmazdan düzgünleri giňeltmek.
Hard-fork: öňünden yglan edilen penjire, goşa tassyklama, "kanar tassyklaýjylary", "reorg/rollback" gapma-garşylyklardan goramak, işjeňleşdirmek üçin wagt-lock.
Çapraz zynjyrly täzelenmeler: governance köprüleri işjeňleşdiriş signallaryny berýär; dargadylan ýagdaýynda - ýerli circuit-breaker.
8) Konfigurasiýalar we maglumatlar hökmünde syrlar
Wersiýalaşdyrmak, sanly gollar we yzyna gaýtarmak bilen merkezleşdirilen config-service.
Secrets rotation downtaimsiz: goşa açarlar (old/new), nobata goşulmak; KMS/PKI üçin nol duralgalary.
Aýratynlykda feature-flags, goşulmalaryň/öçürmeleriň barlagy.
9) Pipeline goýberilişi we awtomatiki "geýtlar"
Стадии: build → unit → security scan → e2e/stage → shadow → canary → 100%.
Duralgalar:- Error-budget burn-rate, p95/p99 latency, error-rate, success-rate hadysalarynyň/tölegleriniň azalmagy, dead-letter nobatlarynyň ýokarlanmagy.
- Islendik tapgyrda SLO bozulanda awto-yza gaýdyp gelmek.
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) Syn etmek we goýbermek üçin SLO
Esasy SLI:- p95/p99 latency endpointler boýunça; error-rate (5xx + ölümli 4xx); wakalaryň success-rate; retraýlaryň paýy; nobatlaryň yzy; P2P-de "relay" paýy; wersiýalar boýunça müşderileriň paýy.
- p99 API ≤ 400 ms; error-rate ≤ 0. 2%; wakalar ≥ 99. 5%; nobatyň yzy ≤ 2 s; MTTR yza gaýdyp gelmek ≤ 15 minut.
- Goýberilişiň daşbordlary: "öň/soň" deňeşdirmesi, kanar sütünleri, garaşlylyk kartasy (service map), burn-rate alertleri 1h/6h.
11) Gaýdyşlar we "kill-switch"
Awto-yzyna: iň soňky "gowy" artefaktlary we konfigidleri saklaň; Deňagramlaşdyryjyda "1 düwmeli" rollback (Blue ← Green).
Partial rollback: binar saklananda ficheflag täze logikany öçürýär.
Data rollback: diňe "read-paths" üçin; "write-paths" üçin - goralýan göçmeler (penjire gutarýança köne sütünleri hiç haçan aýyrmaň).
Kill-switch: durnuksyz kiçi ulgamy öçürmek üçin merkezleşdirilen baýdak.
12) Iş wagty bolmazdan synag
Müşderileriň ýagdaýyna garşy kontrakt synaglary (consumer-driven).
Laýyklyk barlagy bolan shema synaglary (schema-compat).
Stagingde Chaos-synaglar:% düwünleriň/sebitleriň şowsuzlygy, DHT/TURN/KMS/DNS-iň zaýalanmagy, "retraý tupany".
Ýükleýiş/remarket synaglary: kanareýa sebitleri we "gyzgyn" ugurlar.
13) Aragatnaşyk we komplayens düzgünleri
Release-notalar: üýtgeýän zat, täsir, deprekeýtiň penjireleri/möhletleri, hyzmatdaşlar üçin hereketler.
Hadysalara jogaplaryň SLA-lary: MTTA ≤ 5 min, statusyň birinji täzelenmesi ≤ 15 min, post-mortem ≤ 72 sagat.
Yzlaryň barlagy: ähli -üýtgeşmeleri we relizleri arzalara/propouzallara, artefaktlaryň gollaryna baglanyşdyrmak.
14) Ýörite ýagdaýlar
Töleg/maliýe akymlary: berk idempotentlik, idempotency-key boýunça dedup, outbox + CDC, diňe "weýran etmeýän" migrasiýa.
WebSocket/Stream: handshake-daky teswirnamanyň wersiýasy, jemlenen rekonnekt (resume tokens).
Cache/edge: 'stale-while-revalidate', iki sany cache wersiýasy, TTL arassaçylygy.
Jübi müşderileri: storlarda tapgyrlaýyn rollout, security-neşirlerde mejbury täzelenme.
15) Çek sanawy zero-downtime
1. Şertnama laýyklygy we shema-reýestr düzüldi.
2. Expand → Migrate → Contract beýan edildi we awtomatlaşdyryldy.
3. Balance/Ingress blue-green we drenaj birikmelerini goldaýar.
4. SLO derwezeleri we awto-yza gaýdyp barmak bilen Canary-paypline.
5. Feature-flags we kill-switch 24/7 elýeterlidir.
6. Outbox + CDC we idempotentlik ähli write-ýollar üçin açykdyr.
7. "Release-health" daşbordlary we burn-rate alertleri işjeň.
8. Aragatnaşyk we deprekeýt syýasaty hyzmatdaşlara öňünden yglan edilýär.
9. Yzyna gaýtarmagyň hepdelik repetisiýasy; çärýeklik chaos-day.
16) Sözlük
Progressive delivery - töwekgelçiliklere gözegçilik edýän tapgyrlaýyn neşir.
Schema registry - laýyklyk syýasatlary bilen shemalaryň wersiýalarynyň ammary.
Outbox/CDC - amallardan wakalary kepillendirilen çap etmegiň şablony.
"Blue-Green" - traffigiň atom çalşygy bilen paralel akymlar.
Canary - täze wersiýada traffigiň paýyny kem-kemden artdyrmak.
Graceful shutdown/draining - işjeň baglanyşyklaryň dogry tamamlanmagy.
Netije: nol düşmek bir hile däl-de, ulgam: şertnamalar, shemalaryň laýyklygy, tapgyrlaýyn goýberiş strategiýalary, gözegçilik, howpsuz migrasiýa we kepillendirilen yza gaýdyp gelmek. Bu çarçuwadan soň ekosistema çalt, öňünden aýdyp boljak we ulanyjylar we hyzmatdaşlar üçin agyrysyz täzelenýär.