Downtime жок экосистеманы жаңыртуу
(Бөлүм: Экосистема жана тармак)
1) Максаты жана негиздери zero-downtime
Zero-downtime-жаңыртуулар кодду, конфигурацияларды, маалымат схемаларын жана протоколдорду өзгөртүүдө тармактын жана продукциянын үзгүлтүксүз иштешин камсыз кылат. Негизги принциптери:- келишимдердин чегинде алдыга/артка шайкештиги (backward/forward).
- Акырындык (прогрессивдүү жеткирүү) ордуна "чоң которуу".
- Байкоо жана кайтарымдуулугу: метрика, трасса, тез артка.
- Тармак жана төлөм агымдары үчүн демпотенттик жана коопсуз ретрациялар.
- Баш тартуу изоляциясы: cell-архитектура, circuit-breakers, fan-out лимиттери.
2) Downtaym жок чыгаруу стратегиялары
Blue-Green - эки бирдей стек (Blue = prod, Green = new). Трафик атомдук түрдө баланстоочунун деңгээлинде тез кайтаруу мүмкүнчүлүгү менен которулат.
Canary - SLO-gates менен трафиктин этап-этабы менен үлүшү (1% → 5% → 20% → 50% → 100%).
Rolling - даяр текшерүү (readiness) жана дренаждык байланыштар менен түйүн бассейн жаңыртуу.
Shadow/Traffic Mirroring - жоопторго таасир этпестен жаңы версияга суроо-талаптарды чагылдыруу.
Feature Flags - өзгөрүүсүз API (gradual rollout) үстүнөн бизнес fich которуу.
Dark Launch - телеметрия жана профилдөө үчүн жашыруун логика бутактарын киргизүү.
Сунуш: маанилүү кызматтар үчүн - canary + rolling + feature flags айкалышы; кулпулары жана API үчүн - кыска которуу менен көк-жашыл.
3) Келишимдик шайкештик (API/окуялар/протокол)
API: URI/аталыштары боюнча чыгаруу; Талааларды кошуу - алгылыктуу, өчүрүү/атын өзгөртүү - "депрекейт терезе" аркылуу гана.
Окуялар (event-bus): "гана кошуу" талаалар; ачкычтар өзгөрүлбөйт; жаңы түрлөрү - жаңы темалар/версиялар сыяктуу.
Схемалар (Euro/JSON-схема/Protobuf): схема-реестр, шайкештиги 'BACKWARD' FULL '.
Network/P2P протоколу: version handshake жана capability negotiation (түйүндөр колдоого алынган версияларды/чиптерди жарыялайт).
Gateways: vN жана vN + 1 ортосундагы адаптерлер (transcoding/field mapping) көчүрүү мезгилинде.
Депрекейт саясаты (мисал): кулактандыруу → ≥ 90 күн эскертүү → "deprecated" белги → талаа/endpoint алып салуу.
4) токтоосуз маалыматтар көчүрүү (Expand → Migrate → Contract)
1. Expand - жаңы түзүлүштөрдү/индекстерди/колонкаларды (nullable/c дефолт), кош жазууну (dual-write) эски жана жаңы форматка кошуу.
2. Migrate - фон миграциясы, backfill, консистенттүүлүк валидаторлору; эки схемалар колдоо адаптер аркылуу окуу.
3. Contract - эски схемага окуу/жазууну өчүрүү, "депрекейт терезе" аяктагандан кийин техникалык карызды алып салуу.
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;
Иш-чаралардын бүтүмдүүлүгү: Outbox колдонуу (иш-чара жазуу менен бүтүм) + CDC кепилдик жеткирүү үчүн.
5) Узак мөөнөттүү кошулмалар жана дренаж
Graceful shutdown: SIGTERM → жаңы өтүнүчтөрдү кабыл алууну токтотуу → 'readiness = fail' → WebSocket/HTTP2/QUIC агымынын дренажын күтүү → жабуу.
Connection draining боюнча баланстагыч: 'deregister _ delay' 30-120 с, sticky-сессиялар - токендер аркылуу эмес, IP.
Back-pressure: p99_latency өсүшү менен жаңы чектөөлөрдү чектөө.
6) SDK жана кардарларды чыгаруу
SDK үчүн SemVer; LTS тармагы кеңейтилген колдоо терезеси менен (мисалы, 12 ай).
Policy: "жок дегенде эки активдүү чакан нускасы"; версия боюнча кардарлардын үлүшүнө телеметрия; жаңыртуу зарылдыгы жөнүндө автоматтык эскертүүлөр.
Critical өзгөрүүлөр (security): узакка созулгандан кийин шлюз аркылуу эски нускасын өчүрүү үчүн мажбурлоо желеги.
7) Протоколдорду жана түйүндөрүн тактоо
Soft-fork: эски түйүндөрдү бузбастан эрежелерди кеңейтүү (capabilities).
Hard-fork: алдын ала жарыяланган терезе, кош валидация, "канар валидаторлору", "reorg/rollback" чыр-чатактардан коргоо, активдештирүү үчүн убакыт кулпусу.
Cross-чынжыр апдейттери: көпүрөлөр governance жандандыруу сигналдарын берет; расинхронизация учурда - жергиликтүү circuit-breaker.
8) Конфигурациялар жана маалыматтар катары сырлар
Версиялоо, санариптик кол тамгалар жана артка кайтаруу менен борборлоштурулган config-service.
Secrets rotation downtime жок: кош ачкычтар (эски/new), кезектешип киргизүү; KMS/PKI үчүн нөлдүк тыныгуулар.
Feature-flags өзүнчө Store, аудит киргизүү/өчүрүү.
9) Pipeline релизи жана автоматтык "гейт"
Стадии: build → unit → security scan → e2e/stage → shadow → canary → 100%.
Гейт-токтоо:- Error-budget burn-rate, p95/p99 latency, error-rate, кыскартуу success-rate окуялар/төлөмдөр, өсүш dead-letter кезек.
- ар кандай этаптарында SLO бузулганда Auto-артка.
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) релиздер үчүн байкоо жана SLO
Негизги SLI:- p95/p99 latency end; error-rate (5xx + өлүмгө 4xx); success-rate окуялар; ретрайлардын үлүшү; кезек артта; P2P "relay" үлүшү; версиялар боюнча кардарлардын үлүшү.
- p99 API ≤ 400 мс; error-rate ≤ 0. 2%; success-rate окуялар ≥ 99. 5%; кезек лаг ≤ 2 с; MTTR артка ≤ 15 мин.
- Dashbord Release: салыштыруу "чейин/кийин", канара тилкелери, көз карандылык картасы (service map), alerty burn-rate 1h/6h.
11) Rolls жана "kill-switch"
Auto-артка: акыркы "жакшы" артефакттарды жана конфигилерди сактаңыз; баланс боюнча "1-баскычтуу" rollback (Blue ← Green).
Partial rollback: ficheflag бинар сактоо менен жаңы логиканы өчүрөт.
Data rollback: "read-paths" үчүн гана; "write-жолдор" үчүн - коопсуз көчүрүү (терезенин аягына чейин эски тилкелерди эч качан алып салуу).
Kill-switch: туруксуз подсистеманы өчүрүү үчүн борборлоштурулган желек.
12) Үзгүлтүксүз тестирлөө
Кардардын туруктуулугуна каршы контракттык тесттер (керектөөчү-айдоочу).
шайкештик текшерүү менен схемалык тесттер (schema-compat).
Chaos-Staging тесттер:% түйүндөрдү/региондорду өчүрүү, DHT/TURN/KMS/DNS деградациясы, "retrai бороон".
Жүктөө/ремаркет тесттер: Канар аймактары жана "ысык" маршруттар.
13) Байланыш жана комплаенс регламенттери
Релиздик ноталар: эмне өзгөрөт, таасир, терезелер/мөөнөтү депрекейт, өнөктөштөр үчүн иш-аракеттер.
SLA окуя жооптор: MTTA ≤ 5 мин, биринчи апдейт статусун ≤ 15 мин, пост-мортем ≤ 72 саат.
Издерди текшерүү: бардык -өзгөрүүлөрдү жана релиздерди өтүнмөлөргө/пропоузалдарга байланыштыруу, артефакттардын кол тамгалары.
14) Атайын учурлар
Төлөм/каржы агымдары: катуу демпотенттик, idempotency-key дедуп, outbox + CDC, "кыйратуучу" миграция гана.
WebSocket/стримдер: handshake протоколунун версиясы, резюме менен реконнект (resume tokens).
Кэш/edge: 'stale-while-revalidate', кэштин кош версиялары, релиз мезгилинде TTL-гигиена.
Мобилдик кардарлар: Store этап Rollout, Security чыгарылышында мажбурлоо апдейт.
15) Чек тизмеси zero-downtime
1. Контракттык шайкештик жана схема-реестр орнотулган.
2. Expand → Migrate → Contract сүрөттөлгөн жана автоматташтырылган.
3. Balance/Ingress көк-жашыл жана дренаждык байланыштарды колдойт.
4. SLO-дарбазалары жана auto-rebound менен Canary-paypline.
5. Feature-flags жана kill-switch 24/7 жеткиликтүү.
6. Outbox + CDC жана боштук бардык write жолдору үчүн киргизилген.
7. Dashbord "релиз-ден соолук" жана alerty burn-rate активдүү.
8. Байланыш жана депрекейт саясаты өнөктөштөргө алдын ала жарыяланды.
9. Жумалык кайра даярдоо; чейрек сайын chaos-day.
16) Глоссарий
Прогрессивдүү жеткирүү - тобокелдиктерди көзөмөлдөө менен этап-этабы менен чыгаруу.
Schema registry - шайкештик саясаты менен схемалар нускасын сактоо.
Outbox/CDC - транзакциялардан окуяларды кепилденген жарыялоонун үлгүсү.
Blue-Green - атомдук жол которуу менен параллелдүү агымдар.
Canary - жаңы версия боюнча трафиктин үлүшүн акырындык менен көбөйтүү.
Graceful shutdown/draining - активдүү байланыштарды туура аяктоо.
Жыйынтык: нөл даунтайм - бул бир гана трюк эмес, система: келишимдер, схемалардын шайкештиги, этап-этабы менен чыгаруу стратегиялары, байкоо жүргүзүү, коопсуз миграция жана кепилденген кайтарым. Бул Framework кийин, экосистема тез, алдын ала жана колдонуучулар жана өнөктөштөр үчүн эч кандай оору.