Logo GH

Варақаҳои кабуд-сабз ва канарӣ

(Фасл: Меъморӣ ва протоколҳо)

1) Чаро ба мо "нақшаҳои бехатар" лозиманд

Дар системаҳои муосир, озодкунӣ на танҳо таҳвили код, балки таҷрибаи назоратшаванда дар фурӯш аст: мо ҳамзамон хавфро кам мекунем (корбаронро вайрон намекунем) ва вақти фикру мулоҳизаро кам мекунем (зуд ба натиҷа нигаред). Ду стратегияи классикӣ - Blue-Green ва Canary - инро бо роҳҳои гуногун ҳал мекунанд, аммо бо ҳадафи умумӣ: сифр истироҳат, суръати тез, мушоҳида аз ҷониби SLO.

2) Таърифҳои асосӣ

Кабуд-Сабз

Мо ду нусхаи мукаммали муҳити истеҳсолиро нигоҳ медорем: фаъол (кабуд) ба трафик хизмат мекунад, ғайрифаъол (сабз) версияи навро омода мекунад. Гузариш атомӣ (гузариш/флип) дар сатҳи мувозинат/роутер мебошад. Агар бадтар шавад, мо фавран ба кабуд бармегардем.

Канария

Мо қисмҳоро тақсим мекунем: аввал то% ками трафик (масалан, 1-5%), ченакҳо/SLO-ро риоя кунед, сипас зина ба зина зиёд кардани ҳисса (10% → 25% → 50% → 100%). Ҳангоми таназзул - бозгашт ё таваққуф дар қадами қаблии устувор.

3) Вақте ки кадом равиш беҳтар аст

Кабуд-Сабз - интихоб кунед, агар:
  • Мо ба гардиши фаврӣ бидуни машқҳои мураккаб ниёз дорем.
  • Меъморӣ/буҷа барои такрори дугонаи инфрасохтор имкон медиҳад.
  • Мо мехоҳем муҳоҷирати васеъмиқёс ё навсозиҳои платформаро (OS/JDK/вақти корӣ) дар алоҳидагӣ анҷом диҳем.
  • Ҳавзаҳои татбиқ/пайвастшавӣ ба ҳолати тадриҷии "омехта" ҳассос мебошанд.
Канария - интихоб кунед, агар:
  • Шумо бояд радиуси таркишро кам кунед ва рафтори ҳиссаи корбаронро бубинед.
  • Сатҳи баланди озодкунӣ, расонидани прогрессивӣ ҳамчун муқаррарӣ.
  • Мушоҳидаҳои баркамол ва дарвозаҳои автоматӣ мавҷуданд (буҷаи хатогӣ, ниҳонӣ, табдилдиҳӣ).
  • Гурӯҳи маҳсулот мехоҳад фарзияҳоро санҷад: таъсир ба табдилдиҳӣ, нигоҳдорӣ, LTV ва ғайра.

4) Принсипҳои умумӣ барои нашри бомуваффақият

Артефактҳои Idempotent: ҳамон тасвир/баста дар ҳама марҳилаҳо.
Конфигуратсияи муайянкунанда: конфигуратсия ҳамчун рамз, муқоисаи муҳитҳо.
Мушоҳида аз рӯи тарроҳӣ: гузоришҳо, ченакҳо, пайҳо, огоҳиҳо; SLI/SLO пешакӣ.
Бозгашти зуд, автоматӣ: Тугмаи бозгашт/фармон як қисми қубур аст, на сеҳри дастӣ.
Тағироти схемаи мувофиқ: стратегияи тавсеаи муҳоҷират (ниг. § 10).
Масири L7 (матлуб): Тағйирпазирӣ дар сарлавҳаҳои API/кукиҳо/роҳҳо/версияҳо.

5) кабуд-сабз: меъморӣ ва раванд

5. 1 Топология

Ду стеки prod: кабуд (фаъол) ва сабз (номзад).
Вобастагиҳои умумии беруна: CDN, API-ҳои беруна, навбатҳо; DB парвандаи махсус аст (ниг. § 10).
Нуқтаи гузариш: тавозун/Ingress/Gateway.

5. 2 Ҷараёни қадам ба қадам

1. Мо Гринро зери артефакти нав баланд мебардорем (VNext), озмоишҳои дуд мегузаронем.
2. Автотест бар зидди Грин (e2e, шартнома, регрессия).
3. Кэш/сессияҳоро гарм кунед (агар лозим бошад), jabs/навбатҳои пасзаминаро ҳамоҳанг созед.
4. Гузариш ба трафик ба сабз: флипи атомӣ (DNS TTL паст, свопи маршрут/шунаванда, вазни Ingress = 100%).
5. Мо SLO-ро дар дақиқаҳо/соатҳои аввал мушоҳида мекунем (сигналҳои тиллоӣ: ниҳонӣ, хатогиҳо, қаноатмандӣ + ченакҳои корӣ).
6. Дар ҳолати мушкилот - фавран баргаштан ба кабуд (бозгашт).

5. 3 Тарафдор/Омӯз

Тарафдор: бозгашти фаврӣ, модели оддии ақлӣ, бунбасти пок.
Омӯз: дучанд кардани инфрасохтор, мушкилот бо ҷузъҳои давлатӣ ва муҳоҷирати маълумот.

6) Меъморӣ ва раванди канарӣ

6. 1 Топология

Кластери ягонаи истеҳсолӣ; якчанд версияҳои хидмат (устувор ва канарӣ) дар паси як фронт.
Ҳаракати нақлиёт аз рӯи вазнҳо (1-5-10-25-50-100%) ё аз рӯи ҳадафҳо (аз рӯи сарлавҳа/куки/ID) тақсим карда мешавад.

6. 2 Ҷараёни қадам ба қадам

1. Ҷойгир кардани версияҳои канарӣ ба ҳамон кластер/ASG/NSG.
2. Баъзе трафикро (масалан, 1-5%) ба канарейка равона кунед.
3. Санҷишҳои худкори SLI/SLO ва андозагирии тиҷорат; дарвозаҳо дар CI/CD (сатҳи хатогӣ, таъхири p95, CPU/RES, табдили, рад/бозгашт).
4. Афзоиши зина ба зина ҳиссаи ҳаракати нақлиёт ҳангоми гузаштани дарвозаҳо.
5. Иҷрои пурра то 100% ва ғайрифаъол кардани версияи кӯҳна; дар ҳолати таназзул - худкорӣ.

6. 3 Тарафдор/Омӯз

Тарафдор: хатари ҳадди аққал барои аксари корбарон, ҳалли маълумот.
Омӯз: ба мо мушоҳидаҳои баркамол, масири босалоҳият, хатари "нусхаи версия" дар байни ҳолатҳо лозиманд.

7) Масири ҳаракат

Қабати қабати 4: тавозун аз ҷониби IP/бандарҳо; оддӣ, аммо чандирии каме.

Сатҳи L7: Қоидаҳои HTTP/S - дар роҳ, мизбон, сарлавҳа, кукиҳо, User-Agent, Geo

Техникҳо:
  • Масири вазн (вазнҳо 1-100%).
  • Сарлавҳа/Cookie-асоси.
  • Часпонидани сеанс (барои скриптҳои давлатӣ/кэшшуда муҳим аст).
  • Оинаи соя/трафик (дархости оина ба версияи нав "оромона").

8) Воситаҳо ва амалисозӣ (намунаҳо)

Кубернетҳо: Ingress (NGINX, Contour), Service Mesh (Istio/Linkerd), Argo Rollouts, Flagger.
Облака: AWS ALB/ELB, Route 53 сабти вазн, ECS/EKS; Мувозинати сарбории GCP + NEG; Azure Front Door/App Gateway.

Платформаҳои CD: Spinnaker, Argo CD, Git

💡 Принсипи якум: версия - код, трафик - сиёсат, таблиғ - дарвозаҳои автоматии SLO.

9) Мушоҳида, SLI/SLO ва дарвозаҳо

Сигналҳои тиллоӣ: Таъхир (p95/p99), Сатҳи хатогӣ (5xx/4xx po tipam), RPS, Saturation (CPU/Memory/GC), ақибмонии Queue.
Андозагирии тиҷорат: табдилдиҳӣ, иҷозатдиҳӣ, пардохтҳо/муваффақиятҳо, санҷиши миёна, рад кардани қадамҳои ҳалқа.

Дарвозаҳо:
  • Ҳадди хатогӣ (масалан, сатҳи хатогии канарӣ ≤ базавӣ + X%).
  • p95 дермонӣ аз сатҳи ибтидоӣ аз Δ бадтар нест.
  • Ҳадди тиҷорат (масалан, пастшавии табдили
  • Буҷаи хатогии SLO набояд тезтар сӯзад.

Давомнокии қадам: вақти ҳадди аққал барои аҳамияти оморӣ кофӣ аст (аз трафик вобаста аст).

10) Муҳоҷирати пойгоҳи додаҳо ва мутобиқати схема

Қоидаи асосӣ: релизҳо бехатаранд, агар версияҳои қафо ва пеш мувофиқ бошанд.

Стратегияи тавсеаи муҳоҷират:

1. Васеъ кардан: бе шикастани нусхаи кӯҳна сутунҳо/индексҳо/ҷадвалҳои нав илова кунед.

2. Замимаро дар оянда ҷойгир кунед (ба нақшаи нав мехонад/менависад, аммо медонад, ки чӣ гуна бо барномаи кӯҳна кор кунад).

3. Маълумотро интиқол диҳед (замина/партия, idempotent, бо нуқтаҳои гузаргоҳ).

4. Шартнома: пас аз мӯътадилшавӣ майдонҳо/хусусиятҳои кӯҳнаро нест кунед.

Анти-намунаҳо: муҳоҷиратҳое, ки бастани истисноиро дар нуқтаи гузариши кабуд-сабз талаб мекунанд; қобилияти паст кардани нақша; "дукарата нависед" бидуни такрорӣ.

11) Нақшаҳои бозгашт ва ҳолатҳои фавқулодда

Кабуд-Сабз: флипи фаврӣ дар кабуд; думҳои корҳои пасзаминаи сабзро назорат кунед.
Канария: коҳиши вазн (масалан, аз 25% бозгашт то 5% ё 0%); исқоти худкор дар огоҳиҳо.
Маълумот: сиёсати хуб андешидашудаи такрор/ҷуброн (калидҳои idempotency, шакли "паёмдони/outbox", такрори паёмҳо).
Ficheflags: Гузариши фаврии куштор барои хомӯш кардани имкониятҳои қисман паҳншуда.

12) Кор бо давлат ва сессияҳо

Ҷаласаҳои часпанда барои канарейкаҳо ё нигоҳ доштани ҷаласаҳои берунӣ (Redis/Memcached), то ки версияҳо иваз карда шаванд.
Кэш барои пешакӣ гарм кардан (гармии сабз) ва ҳангоми флип беэътибор донистан.
Кормандони замина: ба "нажодҳо" байни версияҳо роҳ надиҳед - ҷудошавии навбат ё "роҳбарӣ" аз рӯи версия.

13) Бехатарӣ ва риояи

Дастрасӣ ба Green/Canary - аз ҷониби Zero Trust: ҳисобҳои хидматӣ, нақшҳои ҳадди ақали зарурӣ.
Асрҳо ва калидҳо - тавассути менеҷери KMS/Secrets; гардишро фаъол созед.
Ҳаракати нақлиёт - танҳо TLS; версияҳои ниҳоӣ ба таври равшан қайд карда шудаанд; Фаъолиятҳои масир ва озод кардани аудит.

14) Арзиш ва нишондиҳандаҳо

Кабуд-Грин инфрасохторро дучанд мекунад (ҳангоми озод шудан ё доимо) - буҷа.
Канария сарфакорона аст, аммо барои автоматизатсия воситаҳои мушоҳида ва вақти муҳандисиро талаб мекунад.
Оптимизатсия: автоскализатсия, муҳити эфемерӣ, кӯтоҳ кардани равзанаи мавҷудияти параллелии версияҳо.

15) Рӯйхати санҷишҳо

Пеш аз озод шудан

  • Тасвир/сохтани як манбаъ, имзоҳо тасдиқ карда шудаанд.
  • Нақшаи санҷиш, огоҳиҳо ва дарвозаҳои SLO танзим карда мешаванд.
  • Муҳоҷирати пойгоҳи додаҳо - дар ҳолати васеъ, нақшаҳои коҳиш мавҷуданд.
  • Нақшаи бозгашт - дар саҳна/истеҳсолот тафтиш карда мешавад.

Ҳангоми озод шудан

  • Нишондиҳандаҳо ва гузоришҳо бо маълумоти аввалия муқоиса карда мешаванд.
  • Барои Канария қадамҳо ва ҳудудҳо собит шудаанд; барои кабуд-сабз - омодагии флип-бозгашт.
  • Фармонҳои зангҳо медонанд, равзанаи бозгашт мавҷуд аст.

Пас аз озод шудан

  • SLO ғарқ нашуд, буҷаи хато муқаррарӣ аст.
  • Муҳоҷирати пас аз озодкунӣ/тозакунӣ ба анҷом расид.
  • Навсозии ретроспективӣ ва дафтарчаи бозӣ.

16) Хатогиҳои зуд-зуд ва зидди намунаҳо

Иҷрои бидуни ченак: маълумот нест - ҳалли идорашаванда нест.
Омезиши схемаҳои номувофиқи пойгоҳи додаҳо, набудани стратегияи коҳиш.
Омезиши тасодуфии трафик: часпак нест, корбарон байни версияҳо "ҷаҳида" мешаванд.
Вобастагиҳои пинҳонии давлатӣ (дискҳои маҳаллӣ, кэшҳои хотира).
Long DNS-TTL ба флипи зуд (кабуд-сабз) халал мерасонад.
Набудани автогатҳо: ҳалли дастии "аз ҷониби чашм" суст ва хавфҳоро зиёд мекунад.

17) Равишҳои омехта

Кабуд-Грин + Канария: Аввал сабзро печонед, баъд дар дохили Грин Canary барои хидматҳои инфиродӣ.
Трафики сояафкан/муҳоҷират: пеш аз Канария, мо трафики оинаиро ба версияи нав мегузаронем.
Парчамҳои хусусият (расонидани прогрессивӣ): функсия дар болои версияи устувор бо парчамҳои "торик" аз рӯи сегментҳо дохил карда шудааст.

18) Сенарияҳои намунавӣ (эскизҳо)

Кабуд-Сабз (веб + api):

1. Ҷойгиркунии сабз (v2) барои шунавандаи нав/Ingress.

2. Кэшҳоро гарм кунед, санҷишҳои хонаро анҷом диҳед, дуд кунед.

3. Мо вазнро ба Грин = 100% иваз мекунем.

4. SLO-ро дар давоми 30-60 дақиқа риоя кунед; агар ҳамааш хуб бошад - кабудро хомӯш кунед.

Канария (microservice пардохт):

1. Ҷойгир кардани канарейка (нусхаҳои 5%).

2. Мо 5% трафикро барои ҳисобҳои дохилӣ/сегменти санҷиш дохил мекунем.

3. Автогейт: сатҳи хатогӣ ≤ ибтидои + 0. 3%, p95 ≤ + 20ms.

4. Мо ҳар як N дақиқа ҳангоми гузаштани дарвозаҳо 10% → 25% → 50% зиёд мекунем.

5. Мо барои ҳамаи сегментҳо ficheflag 100% тарҷума мекунем; нест кардани нусхаи кӯҳна.

19) Вариантҳо барои меъмориҳои гуногун

Монолит: Кабуд-Грин соддатар аст, Canary аз сабаби тақсимнашавандаи хусусиятҳо мушкилтар аст; ficheflags истифода баред.
Microservices: Канария табиӣ аст; шартномаҳои истеъмолкунандаро назорат мекунад.
Хидматҳои давлатӣ: Блу-Гринро бо муҳоҷирати бодиққат таҳияшуда ва часпак бартарӣ диҳед.

20) Муқоисаи мухтасар (хулоса)

Суръати бозгашт: кабуд-сабз = фаврӣ; Canary = зуд, вале бо кашолакунӣ дар вазн.
Арзиши инфрасохтор: кабуд-сабз; Канарӣ ↔︎/↓.
Хавф барои корбарон: Canary камтар аст (мо саҳмро назорат мекунем).
Мушкилоти татбиқ: Оғози кабуд-сабз осонтар аст; Канария мушоҳида ва автоматизатсияи сахтро талаб мекунад.
Мутобиқати додаҳо/ноҳиявӣ: барои ҳарду муҳим аст; нақша васеъ-муҳоҷират-шартнома.

21) Сатри поён

Кабуд-Грин ва Канария стратегияҳои мутақобилан истисноӣ нестанд, балки унсурҳои интиқоли прогрессивӣ мебошанд. Интихоб аз маҳдудиятҳои хароҷот, камолоти мушоҳида ва табиати тағирот вобаста аст. Сарфи назар аз равиш, озодкунии устувор ба чор сутун такя мекунад: автоматизатсия, мушоҳида, мутобиқати қафо ва суръати тез.

Contact

Тамос гиред

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

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

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

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

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