GH GambleHub

Китобҳои бозии муҳоҷират

1) Таснифи муҳоҷират

Схемаҳои DB: илова/иваз кардани сутунҳо, индексатсияҳо, тез кардан, тағир додани намуди калидҳо.
Маълумот: бозсозӣ/тозакунии оммавӣ, муътадилсозӣ, нигоҳдорӣ/бойгонӣ.
Хидматҳо ва API: тағир додани нуқтаҳои ниҳоӣ, версия, рефакторинги шартнома.
Навбатҳо/автобусҳо: мавзӯъҳои ҳаракаткунанда, иваз кардани калидҳои узвият, формати чорабинӣ.
Инфраструктура: гузаштан ба cluster/K8s/cloud/region нав, иваз кардани асрори/KMS.
Нигоҳдорӣ ва таҳлил: тағир додани муҳаррик (OLTP/OLAP), формат/тақсимоти маҷмӯаҳо.
Амният/мувофиқат: гардиши калидӣ, рамзгузорӣ дар парвоз, гео-маҳаллисозии маълумот.

2) Принсипҳои муҳоҷирати муваффақ

1. Тавсеаи → Migrate → Шартнома. Аввалан, мо нақша/рафторро (мувофиқ) васеъ мекунем, баъд маълумот/трафикро интиқол медиҳем ва баъд кӯҳнаашро хориҷ мекунем.
2. Соя ва дугона. Сояи хондан/навиштан ва вуруди дукарата барои санҷиш.
3. Парчамҳои хусусият ва "тугмаи сурх. "Қатъи зуд, фаъолсозии зина ба зина (фоизҳо/иҷорагирон/минтақаҳо).
4. Idempotency ва такрорӣ. Скриптҳо ва вазифаҳоро бе таъсири тараф барқарор кардан мумкин аст.
5. Мушоҳида пеш аз тағирот. Панели панелҳо/огоҳиҳо пешакӣ, аломатҳои муҳоҷират дар гузоришҳо/роҳҳо.
6. Rollback ҳуҷҷатгузорӣ шудааст. Runbook runback ҳамчун нақшаи пешрафта муфассал аст.
7. Бозиҳои хурд ва таваққуф. Мо дар қисмҳои хурд муҳоҷират карда, SLI ва инвариантҳои тиҷоратро месанҷем.

3) Таҳлили инвентаризатсия ва вобастагӣ

Харитаи истеъмолкунандагон: хидматҳо, ҷойҳои корӣ, ҳисоботҳо, шарикони хориҷӣ, BI/ETL, вебхукҳо.
Шартномаҳо ва схемаҳо: версияҳои API/чорабинӣ, мутобиқати қафо/пеш.
Дастрасӣ/асрори: кӣ дар куҷо кэш/сабтро мехонад/менависад.
Инвариантҳои домейн: беҳамтоӣ, мувозинат, номутобиқатӣ, рӯзи ҳисоботӣ.
Ҳаҷм/суръат: андозаи маълумот, RPS, тирезаҳои баландтарин, RPO/RTO.

4) Қолаби дафтарчаи каноникӣ (скелети YAML)

yaml playbook: "migrate-orders-to-v2"
owner: "orders-team"
stakeholders: ["platform", "data", "security", "support"]
change_type: ["schema", "data", "api"]
risk_level: "high"
preconditions:
- "Dashboards ready: latency/error/lag"
- "Runbook rollback validated on stage"
- "Backups verified (restore tested)"
plan:
phase_1_prepare:
steps:
- "Add new nullable columns (expand)"
- "Deploy code with dual-write (flag off)"
- "Enable CDC stream to target"
phase_2_shadow:
steps:
- "Shadow-read v2, compare with v1 (1%)"
- "Fix discrepancies; iterate"
phase_3_dual_write:
steps:
- "Enable dual-write (10%→50%→100%)"
- "Start backfill in batches (size=10k, sleep=200ms)"
phase_4_cutover:
steps:
- "Switch reads to v2 by tenants (canary)"
- "Monitor SLI 30m; expand scope"
phase_5_contract:
steps:
- "Drop old indices/columns after T+14d"
- "Disable old topic/api; update docs/SDK"
guardrails:
abort_if:
- "error_rate > 0. 5% for 5m"
- "p95 > baseline1. 5 for 10m"
- "data_mismatch > 0. 01%"
rollback:
steps:
- "Flip flag: reads back to v1"
- "Stop backfill; continue dual-write to v1"
- "Replay missed events (DLQ→v1)"
validation:
checks:
- "Row counts match within epsilon"
- "Business invariants hold (balances, limits)"
comms:
- channel: "on-call-bridge"
- status_updates: "T-24h, T-1h, start, cutover, finish"
window: "low-traffic Sun 02:00–05:00 UTC"

5) Шакли муҳоҷират

5. 1 Schemas DB (RDBMS/No-SQL)

Илова - тағир надиҳед. Сутунҳо/индексатсияҳои нави беэътибор § рамз кӯҳна ва навро мехонанд.
Барқарорсозии онлайн. Индексҳои онлайн/DDL-ҳои ҳамзамонро истифода баред.
Версияҳои сериализатсия. Нусхаи сарборӣ дар сутунҳои JSON/Proto/Avro.
Муҳоҷирати калидӣ. Ҳангоми иваз кардани PK - ҷадвали вақти мукотиба + триггер/CDC.

5. 2 Маълумот (пур кардан/тоза кардан)

CDC + backfill. Аввалан, ҷараёни тағиротҳо (барои нигоҳ доштан), баъд бастаи бозгашт.
Тарафҳо ва мӯҳлатҳо. Маҷмӯаҳои хурд бо назорати ақибмонӣ, нуқтаҳои назоратӣ ва бозоғозӣ.
Навсозиҳои Idempotent. Upsert бо калидҳои/версияҳои табиӣ.

5. 3 Ҳодисаҳо ва навбатҳо

Чорабиниҳои версионалӣ. 'event _ type @ vN', истеъмолкунандагон майдонҳои ношиносро нодида мегиранд.
Мавзӯъҳои ҳаракаткунанда. Пости дукарата, истеъмолкунандагон аз ҳарду пеш аз мӯътадил хондан; пас "буридан" -и кӯҳна.
Калиди қисм. Муҳоҷирати калидӣ - тавассути аз нав интишор кардани харитаи мукотиба ва номутобиқатӣ.

5. 4 Хизматрасонӣ ва API

Кабуд/Сабз/Канария. Ҳавзи гарм, қисман трафик, суръати тез.
Парчамҳои Ficha. Аз ҷониби иҷорагирон/минтақаҳо/фоизҳо, фарогирии мушоҳидашуда.
Шартномаҳо. Шартномаҳои CDC ва санҷишҳои мутобиқат - пеш аз гузариш.

5. 5 Минтақаҳо/Clades

Сабти гео-дугона. Маълумот дар ду минтақа сабт мешавад; хониш - аз рӯи наздикӣ.
Интиқоли давлатӣ. Сурат + нусхабардорӣ; RPO "хати сурх", интиқоли DNS/Anycast.
Қаламравҳо. Ризоият/маҳаллисозии маълумот, рӯйхати "манъшуда" барои хориҷ кардани маҷмӯаҳо.

6) Марҳилаҳои иҷро (муфассал)

1. Тайёрӣ

Панели панелҳо, огоҳиҳо, маҳдудиятҳо, парчамҳои хусусӣ, нусхаҳои эҳтиётӣ бо санҷиши барқарорсозӣ дар саҳна мегузаранд.

2. Соя (санҷиши соя)

Зеркало ба системаи нав бидуни таъсир ба корбарон дархост/менависад. Ҷавобҳо/ҳолатҳоро муқоиса кунед.

3. Дучанд навиштан/Дучанд хондан

Мо дар ҳарду самт менависем. Хонишҳо - тадриҷан ба системаи нав мегузаранд. Гузоришҳои номувофиқ таҳлил карда мешаванд.

4. Backfill

Мо маълумоти таърихиро дар маҷмӯъ бор мекунем. Мо ақибмонии CDC-ро назорат мекунем, сарбориро дар ҳикоя/кэш назорат мекунем.

5. Бурида (гузариш)

Канарим аз рӯи сегмент (иҷорагирон/минтақаҳо/фоизҳо). Мо як суръати тезро дастгирӣ мекунем.

6. Шартнома (тозакунӣ)

Роҳҳои кӯҳнаро буред, майдонҳо/индексҳо/мавзӯъҳои кӯҳнашударо пас аз "давраи амният" нест кунед.

7. Санҷиш ва ретро

Ҳисобот, ченакҳо, дарсҳо, навсозии дафтарчаи бозӣ/рӯйхати назоратӣ.

7) Мушоҳида ва SLO ҳангоми муҳоҷират

SLI-ҳои техникӣ: p50/p95/p99, сатҳи хатогӣ, такрорӣ/вақт, истифода, ақибмонии CDC, умқи навбат.
Бизнес SLI: муваффақияти транзаксияҳо/табдилдиҳӣ, инвариантҳо (тавозун, маҳдудиятҳо, нусхаҳо).
Тамғакоғазҳои махсус: 'migration _ id', 'фаза', 'иҷорагир', 'flag _ state'.
Гвардиячиёни ҳушдор: ҳадди думҳо ва хатогиҳо, "худкор таваққуф" (исқоти ҳамл) барои SLO.
Панелҳои муқоисавӣ: v1 vs v2, delta аз рӯи ченакҳои калидӣ.

8) Сенарияҳои бозгашт ва ҳолати фавқулодда

Бозгашти мантиқӣ: парчамҳо/масири ҳаракат ба қафо, яхкунӣ.
Маълумот: "ҷуброн" (Saga), такрори ҳодисаҳо, системаи DLQ → манбаъ.
Асрҳо/калидҳо: бозгашт ба калид/шаҳодатномаи қаблӣ (калиди дугона).
DNS/ҳаракати нақлиёт: "баръакси баръакс" Anycast/ALB, TTL кӯтоҳ дар равзанаи муҳоҷират.
Алоқа: формати қаблан мувофиқашудаи канал ва ҳолат.

9) Амният, махфият, риояи

Кам кардани маълумот. Мо танҳо майдонҳои заруриро интиқол медиҳем; профилҳои беном дар нусха.
Криптография. Рамзгузорӣ "дар сим" ва "ҳангоми истироҳат", гардиши KMS; сабти амалиёти калидӣ.
Дастрасии вақт. Нақшҳои муваққатӣ дар корҳои муҳоҷират, интихоби ҳуқуқҳо пас аз ба итмом расидан.
Изофаҳои изофӣ. Пинҳон кардани PD дар гузоришҳо/пайҳо, маҳдудиятҳои содирот.

10) Идоракунии тағирот ва коммуникатсия

RACI: кӣ мегӯяд, ки кӣ иҷро мекунад, кӣ хабар дода мешавад.
Давраҳои яхкунӣ: дар равзанаи муҳоҷират нашри номатлубро манъ кунед.
Статусҳо: T-24h, T-1h, оғоз, канарӣ, буриш, марра, пас аз баҳр.
Шарикони беруна: тирезаҳои мутобиқат, ҳарфҳои шартномавӣ, қуттии санҷишӣ.

11) Қолабҳои дафтарчаи корӣ

11. 1 Backfill (псевдокод)


for batch in paginate(ids, size=10_000):
try:
rows = read_v1(batch)
upsert_v2 (rows) # idempotently mark_checkpoint (batch. end)
sleep(jitter_ms(100..300))
except Throttle:
sleep (5s) # backpressure respect except Fatal as e:
alert("backfill-failed", e, context=batch)
abort_if_needed()

11. 2 Proverka一致nosti (сурат/намуна)


sample = random_ids(n=10_000, stratify=tenant,timestamp)
v1 = fetch_v1(sample); v2 = fetch_v2(sample)
assert schema_compatible(v2)
assert key_invariants_hold (v1, v2) # sum, statuses, versions mismatch_rate = diff (v1, v2). rate()
abort_if(mismatch_rate > 0. 0001)

11. 3 Гузаронидани хониш


flag. enable("read_from_v2", segment="tenants: cohort_A")
monitor(30m)
if SLO_ok(): expand_segment()
else: rollback_segment()

12) Анти-намунаҳо

"Таркиши калон" ба ҷои тавсеаи муҳоҷират-шартнома.
Backfill бе CDC → сайд ва абадӣ.
Ягон idempotency → такрорӣ/маълумоти ифлос нест.
Қадамҳои дастӣ бе скриптҳо → хатогиҳои инсонӣ.
Муҳоҷират бе панели/посбонон → "парвози нобино".
Рафъи беихтиёрона → баргардонидан ҳангоми зарурат кор намекунад.
Нодида гирифтани истеъмолкунандагон (BI/шарикон) → ҳисобот/ҳамгироии шикаста.

13) Рӯйхати назорати меъморон

1. Ҳадаф, марзҳо, навъи муҳоҷират ва инвариантҳои натиҷа муайян карда шуданд?
2. Харитаи истеъмолӣ ва шартномавӣ тартиб дода шудааст, мутобиқат сабзро месанҷад?
3. Панели панелҳо, огоҳиҳо, барчаспҳои 'migration _ id', SLO/guardrail насб карда шудаанд?
4. Сояи татбиқшуда ва/ё дугона-навиштан, backfill idempotent?
5. Оё дафтарчаи runback амалан вуҷуд дорад, барқароркуниро аз нусхабардорӣ санҷед?
6. Тиреза/ҳамоҳангсозӣ/иртибот мувофиқа карда шудааст, ях кунед?
7. Нақшаи зина ба зина бо меъёрҳои канарӣ ва тавсеа/таваққуф омода аст?
8. Амният/мувофиқат: калидҳо, дастрасӣ, санитарияи PII?
9. Оё ҳуҷҷатҳо/SDK/spec дар як давраи озодкунӣ нав карда мешаванд?
10. Пас аз ба итмом расидани баҳр ва навсозии дафтарчаи бозӣ?

Хулоса

Китобҳои бозикунии муҳоҷират як таҷрибаи меъмории идоракунии хавфҳо мебошанд: қадамҳои хурди баръакс, ченакҳои шаффоф, бозгашти омода ва интизоми "васеъ кардани муҳоҷират". Пас аз қолабҳои тавсифшуда, шумо схемаҳо, додаҳо, хидматҳо ва минтақаҳоро бидуни вақти ногаҳонӣ ва ногаҳонӣ интиқол медиҳед ва ҳангоми нигоҳ доштани инвариантҳои корӣ ва эътимоди корбарон.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.