Түбіртексіз экожүйені жаңарту
(Бөлім: Экожүйе және Желі)
1) Zero-downtime мақсаты мен принциптері
Zero-downtime-жаңартулар кодтар, конфигурациялар, деректер схемалары және хаттамалар өзгерген кезде желілер мен өнімдердің үздіксіз жұмысын қамтамасыз етеді. Негізгі қағидаттар:- Келісімшарттар шекарасында алға/артқа (backward/forward) сыйысымдылық.
- «Үлкен ауыстырып қосудың» орнына біртіндеп (progressive delivery).
- Бақылау және қайтымдылық: метрика, трассировка, жылдам қайту.
- Желілік және төлем ағындары үшін теңсіздік және қауіпсіз ретрациялар.
- Істен шығуды оқшаулау: cell-сәулет, circuit-breakers, фан-аут лимиттері.
2) Даунтайсыз шығу стратегиялары
Blue-Green - екі бірдей стек (Blue = prod, Green = new). Трафик бірден кері қайтару мүмкіндігімен теңгеруші деңгейінде атомарлық ауыстырып қосылады.
Canary - SLO-гейттері бар трафиктің кезең-кезеңмен үлесі (1% → 5% → 20% → 50% → 100%).
Rolling - қосылыстардың дайындығын (readiness) және дренажын тексерумен пулды тораптық жаңарту.
Shadow/Traffic Mirroring - жауаптарға әсер етпейтін жаңа нұсқадағы сұрауларды бейнелеу.
Feature Flags - өзгермейтін API (gradual rollout) үстінен фич бизнес-ауыстырып қосу.
Dark Launch - телеметрия және профильдеу үшін логиканың жасырын тармақтарын қосу.
Ұсыным: сындарлы сервистер үшін - canary + rolling + feature flags комбинациясы; шлюздер мен API үшін - қысқа ауыстырып қосумен blue-green.
3) Келісімшарттық үйлесімділік (API/оқиға/хаттама)
API: URI/тақырыптар бойынша нұсқалау; өрістерді қосу - жарамды, жою/қайта атау - тек «депрекейт-терезе» арқылы.
Оқиғалар (event-bus): өрістерді «тек қосу»; кілттер өзгермейді; жаңа түрлер - жаңа тақырыптар/нұсқалар сияқты.
Схемалар (Euro/JSON-Schema/Protobuf): схема-тізілім, «BACKWARD 'FULL» үйлесімділігі.
/ Р2Р: version handshake және capability negotiation желісінің хаттамасы (тораптар қолдау көрсетілетін нұсқаларды/фичтерді жариялайды).
Gateways: көші-қон кезеңінде vN мен vN + 1 (transcoding/field mapping) арасындағы адаптерлер.
Депрекейт саясаты (мысал): аңдатпа → ≥ 90 күн ескерту → «deprecated» құсбелгісі → өрісті/эндпоинтті жою.
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: «кемінде екі белсенді минор нұсқасы»; нұсқалар бойынша клиенттердің үлесіне телеметрия; апгрейдтің қажеттілігі туралы автоматты ескертулер.
Қатер шегіндегі өзгерістер (security): мерзімінен кейін шлюз арқылы ескі нұсқаларды ажыратудың үдетілген жалаушасы.
7) Желі тораптары мен хаттамаларын жаңарту
Soft-fork: ескі тораптарды (capabilities) бұзбай ережелерді кеңейту.
Hard-fork: алдын ала жарияланған терезе, қосарланған валидация, «канареялық валидаторлар», «reorg/rollback» жанжалдарынан қорғау, белсендіру үшін time-lock.
Кросс-тізбекті апдейттер: governance көпірлері белсендіру сигналдарын береді; рассинхронизация жағдайында - жергілікті circuit-breaker.
8) Деректер ретіндегі конфигурациялар мен құпиялар
Орталықтандырылған config-service нұсқалаумен, цифрлық қолтаңбалармен және кері қайтарумен.
Secrets rotation даунтаймсыз: қос кілт (old/new), кезекпен қосу; KMS/PKI үшін нөлдік тоқтау.
Жеке жиектегі feature-flags, қосу/өшіру аудиті.
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 бұзылғанда авто-кері қайту.
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 эндпоинттер бойынша; error-rate (5xx + өлім 4xx); success-rate оқиғалар; ретрайлардың үлесі; кезектердің артта қалуы; P2P-дегі «relay» үлесі; клиенттердің нұсқалар бойынша үлесі.
- p99 API ≤ 400 мс; error-rate ≤ 0. 2%; оқиғалар success-rate ≥ 99. 5%; кезек лаг ≤ 2 с; MTTR қайту ≤ 15 мин.
- Релиз дашбордтары: «дейін/кейін» салыстыру, канареялық бағандар, тәуелділік картасы (service map), burn-rate алерті 1 сағ/6 сағ.
11) Сырғымалар және «kill-switch»
Авто-кері қайту: соңғы «жақсы» артефакттар мен конфигаларды сақтаңыз; Теңгерушіде «1-батырмалы» rollback (Blue ← Green).
Partial rollback: Бинарды сақтағанда фичефлаг жаңа логиканы өшіреді.
Data rollback: тек «read-paths» үшін; «write-paths» үшін - қауіпсіз көші-қон (терезенің соңына дейін ескі бағандарды ешқашан жоймаңыз).
Kill-switch: тұрақсыз ішкі жүйені өшіру үшін орталықтандырылған жалауша.
12) Тоқтамай тестілеу
Клиенттердің тұрақтылығына қарсы өнімдердің келісімшарттық тестілері (consumer-driven).
Үйлесімділігі тексерілген схемалық тестілер (schema-compat).
Стейджингтегі Chaos-тестілер:% түйіндердің/өңірлердің істен шығуы, DHT/TURN/KMS/DNS деградациясы, «ретрайлардың дауылы».
Жүктеме/ремаркет тестілері: канареялық өңірлер және «ыстық» бағыттар.
13) Коммуникация және комплаенс регламенттері
Релиз-ноталар: не өзгереді, әсер, терезе/депрекейттің мерзімі, серіктестер үшін әрекет.
Инциденттерге жауаптар SLA: MTTA ≤ 5 мин, мәртебенің бірінші жаңартуы ≤ 15 мин, пост-мортем ≤ 72 сағ.
Іздер аудиті: барлық -өзгерістер мен релиздерді өтінімдерге/пропоузалдарға байланыстыру, артефактілердің қолтаңбалары.
14) Арнайы жағдайлар
Төлем/қаржы ағындары: қатаң теңсіздік, idempotency-key бойынша дедуп, outbox + CDC, «бұзбайтын» көші-қон ғана.
WebSocket/стримдер: handshake протоколының нұсқасы, қорытынды реконнект (resume tokens).
Кэш/edge: 'stale-while-revalidate', кэштің қос нұсқасы, TTL-гигиенасы.
Мобильді клиенттер: кезең-кезеңмен rollout, security-шығарылымдарда мәжбүрлі апдейт.
15) Чек-парақ zero-downtime
1. Келісімшарттық үйлесімділік пен схема-тізілім теңшелген.
2. Expand → Migrate → Contract сипатталған және автоматтандырылған.
3. Balance/Ingress blue-green және дренаж қосылыстарын қолдайды.
4. Canary-пайплайн SLO-гейтпен және авто-қайтарумен.
5. Feature-flags және kill-switch қол жетімді 24/7.
6. Outbox + CDC және іспеттілік барлық write жолдары үшін қосылған.
7. «Релиз-денсаулық» дашбордтары мен burn-rate алаңдары белсенді.
8. Коммуникациялар мен депрекейт-саясат серіктестерге алдын ала жарияланды.
9. Апта сайынғы сырғанау дайындығы; тоқсан сайын chaos-day.
16) Глоссарий
Progressive delivery - тәуекелдерді бақылайтын кезең-кезеңмен шығарылым.
Schema registry - үйлесімділік саясаты бар схемалар нұсқаларының қоймасы.
Outbox/CDC - транзакциялардан оқиғаларды кепілді жариялау үлгісі.
Blue-Green - трафикті атомарлық ауыстырып қосатын параллель ағындар.
Canary - жаңа нұсқадағы трафик үлесін біртіндеп ұлғайту.
Graceful shutdown/draining - белсенді қосылымдардың дұрыс аяқталуы.
Қорытынды: нөлдік даунтайм - бұл бір ғана трюк емес, жүйе: келісімшарттар, схемалардың үйлесімділігі, кезеңдік шығу стратегиялары, бақылау, қауіпсіз көші-қон және кепілдендірілген кері қайтару. Осы фреймворк арқылы экожүйе тез, болжамды және пайдаланушылар мен серіктестер үшін ауыртпалықсыз жаңартылады.