Ҷойгиркунии доимӣ
1) CD чист ва он аз CI/CD чӣ фарқ дорад
Ҷойгиркунии муттасил (CD) амалияи ба таври худкор паҳн кардани ҳар як тағироти тасдиқшуда ба prod, бидуни қаторҳои дастӣ мебошад. "CD аз CI (монтажҳои автоматӣ ва санҷишҳо ҳангоми супоришҳо) фарқ мекунад, зеро он занҷирро ба итмом мерасонад: code artifact → verfication production. Дар соҳаҳои танзимшаванда, CD-ҳо аксар вақт бо таҳвили прогрессивӣ якҷоя карда мешаванд.
Ҳадафҳои CD:- Вақтро ба бозор кам кунед ва хароҷотро тағир диҳед.
- Хатари релизҳои калонро коҳиш диҳед: партияҳои хурд → ёфтани сабаб ва бозгашт осонтар аст.
- Барои ба даст овардани интизоми сифат: "ҳар як ӯҳдадорӣ эҳтимолан барои фурӯш аст".
2) Принсипҳои асосӣ
Афзоиши хурд. Шохаҳои кӯтоҳ fiche, баррасиҳои зуд, merjing хашмгин.
Муайянкунии маҷлис. Муҳитҳои сохташавандаи такрорӣ, қулф кардани файлҳо, сохти герметикӣ.
Shift-чап-сифат. Линтерҳо, таҳлили статикӣ, санҷишҳои воҳид/шартнома пеш аз ҳамгироӣ.
Муҳитҳои ба монанди истеҳсолот. Конфигуратсияҳои якхела, асрори тавассути амудӣ, додаҳо - синтетикӣ/ғайришахсӣ.
Тамоми сафарро автоматӣ кунед. Аз ӯҳдадорӣ ба масири ҳаракат ва бозгашт.
Мушоҳидаҳои пешфарз. Нишондиҳандаҳо, гузоришҳо, пайҳо, огоҳиҳо - ҳамчун қисми таърифи Иҷро.
Тарроҳии амният. SAST/DAST, SCA, артефактҳои имзошуда, тасдиқи сиёсат.
3) Меъмории истинод ба лӯлаи CD
1. Триггер - ҳодиса дар VCS (push/merge) бо нишони "prod-қобили қабул".
2. Сохтан: сохтани артефакт (тасвир, баста), SBOM, имзо (Sigstore/Cosign).
3. Озмоиши зуд: линт/воҳид/шартнома; фикру мулоҳизаҳои зуд (<5-10 дақиқа).
4. Test Deep (ба таври мувозӣ): ҳамгироӣ, E2E, бор кардани "профил", намунаҳои бетартибӣ дар саҳна.
5. Дарвозаи амният: SAST/DAST/SCA, тафтиши сиррҳо, сиёсати санҷиш (OPA/Confest/Kyverno).
6. Дарвозаи мутобиқат: SoD/4-eyes агар лозим бошад, пайгирии талабот, рӯйхати рӯйхатҳо.
7. Мусоидат: тарғиби артефакт ҳамчун як ва ҳамон як муҳит тавассути муҳит (dev → stage → prod).
8. Стратегияи ҷойгиркунӣ: парчамҳои кабуд-сабз/канарӣ/прогрессивӣ +.
9. Санҷиши пас аз ҷойгиркунӣ: худкори саломатӣ, SLO/SLA, огоҳиҳо, худкори бозгашт ҳангоми таназзул.
10. Аудит ва далелҳо: артефактҳо, гузоришҳо, протоколҳои санҷиш - дар нигаҳдории бетағйир.
4) Стратегияҳои озодкунӣ
Кабуд-Сабз: ду истгоҳи истеҳсолӣ (кабуд = ҷорӣ, сабз = нав), гузариши масири атомӣ. Плюс - бозгашти фаврӣ. Камбуди инфрасохтори дугона аст.
Канария: оғози бастаи трафик (1% → 5% → 25% → 100%) бо дарвозаҳои автоматии SLO.
Расонидани прогрессивӣ: гурӯҳҳои мақсаднок (минтақа, провайдер, сегменти VIP), маҳдудияти радиус.
Парчамҳои хусусият: рамзи таъминот "хомӯш", аз ҷониби корбарон/гурӯҳҳо фаъол карда мешавад. Ҳатмӣ: сиёсати "давраи ҳаёти парчам".
5) Озмоиш ва сифат
Озмоишҳои шартномавӣ ва шартномаҳои истеъмолкунанда барои нашри мустақили microservice.
Профилҳоро аз рӯи намунаҳои воқеӣ бор кунед (RPS, p95/p99, моделҳои кушода/пӯшида).
Санҷишҳои муҳоҷирати махзани маълумот: бевосита/баръакс, мутобиқати ду версия (тавсеа → шартнома).
Намунаҳои бетартибӣ/устуворӣ: хомӯш кардани вобастагӣ, таъхири шабака, маҳдудиятҳои захираҳо.
Санҷиши пас аз озодкунӣ (дуд + синтетикӣ) аз нуқтаҳои наздик ба корбар.
6) Амният ва мувофиқат дар CD
Имзои Artifact, исбот, SBOM. Мо пайдоиши онро пайгирӣ мекунем, хатари "занҷири таъминот" -ро истисно мекунем.
Policy-as-Code: мо танҳо тасвирҳоро аз феҳристи боэътимод бо гузариши скан иҷозат медиҳем.
Асрҳо: аломатҳои кӯтоҳмуддат, калидҳои гардиш, KMS; манъ кардани асрори гита.
Сегрегатсияи вазифаҳо (So 'D): рушд ≠ дастрасӣ ба истеҳсолот; тамоми амалиёт тавассути лӯла.
Роҳи аудит: гузоришҳои ивазнашавандаи озод, кӣ/чӣ/кай; нигаҳдории N сол мувофиқи талаботи танзим.
7) Идоракунии тағирот ва назорати хатар
Намудҳои тағирот: стандартӣ (пурра худкор), муқаррарӣ (тасдиқи худкор +), фавқулодда (равзанаи босуръат + пас аз марг).
Минимализми CAB: CAB барои хатарҳои тағирёфта ва инфрасохтор навсозиҳои "шикаста", боқимонда - тавассути дарвозаҳои худкори сифат.
Матритсаи хавф: таъсир × эҳтимолияти → интихоби стратегия (амиқтар канарӣ, парчамҳо, мониторинги иловагӣ).
Runbooks & Playbook: Дастурҳои возеҳ барои ҳар як намуди озодкунӣ ва бозгашт.
8) Мушоҳидакорӣ, SLO ва худкор
Сигналҳои тиллоӣ: ниҳонӣ, хатогиҳо, пуррагӣ, трафик; андозагирии тиҷорат (табдили, пасандоз, муваффақияти пардохт).
Посбонҳо: агар ҳадди p95>, меъёри хатогӣ x, бизнес metrika↓ - auto-stop/rollback.
Нашри панелҳо: виджетҳо: versiya → metriki → flagi → kanareyechnye ҳиссаи трафик.
Огоҳиҳо: сатҳи коҳиши садо, гардиши зангҳо, иртибот бо идоракунии ҳодисаҳо.
9) Метрикаҳои CD
Нишондиҳандаҳои DORA: суръати фарсудашавӣ, вақти пешрафт барои тағирот, MTTR, ҳиссаи релизҳои номуваффақ.
Сатҳи тағирот-нокомӣ дар гурӯҳҳо (аз ҷониби провайдер, минтақа, дастгоҳ).
Вақти гузариши дарвоза: "мушкилот" дар куҷоянд (сканкунии амният, санҷишҳои ҳамгироӣ).
Арзиши озодкунӣ: арзиши як равзанаи дақиқа, нишондиҳандаи инфрасохтори стратегияҳо (кабуд-сабз ва канарӣ).
10) Намунаҳои бозгашт ва мутобиқат
Бозгашти худкор: дар сатҳи масир (гузариши трафик) ва/ё версия (K8s барҳамдиҳӣ).
Муҳоҷирати пойгоҳи додаҳо: стратегияи тавсеаи муҳоҷират, парчамҳои хусусӣ майдонҳои дастнорасро пинҳон мекунанд.
Idempotency & Маҳз ба як монанд: барои навбатҳо/пардохтҳо - калидҳои idempotency, deduplication.
Фишори бозгашт ва таназзули зебо: агар таназзул ёфта бошад, хусусиятҳои ғайрифаъолро хомӯш кунед.
11) Модели амалии муҳит
Равиши Gitops: Ҳолати мақсаднок дар гит нигоҳ дошта мешавад, контролер зуҳуротро истифода мебарад.
Муҳитҳо: 'dev' (зуд ва ифлос), 'саҳна' (ба монанди, намунаҳои бетартибӣ), 'prod-A/B' (кабуд-сабз) ё 'prod' бо ҳавзҳои канарӣ.
Ҷудокунии маълумот: конфигуратсияҳо ҳамчун маълумот, сирри берун аз тасвир, ҳисобҳо/маҳдудиятҳои инфиродӣ.
12) Равандҳо ва нақшҳо
RACI: Меъмор (Сиёсатҳо), Гурӯҳи Платформа (Қубур, Кластерҳо), Гурӯҳҳои Маҳсулот (Санҷишҳо/Парчамҳо), Амният (Сиёсатҳо/Сканҳо), SRE (SLO/Эътимоднокӣ).
Chatops: релизҳо аз ботҳои PR, намоёни статусҳо, "/мусоидат ", "/rollback ".
SOP: рӯйхати санҷишҳо, баррасии пас аз озодкунӣ, назорати парчамҳои пиронсол.
13) Хусусиятҳо барои доменҳои ба танзим даровардашуда (масалан, IGaming/fintech)
Пайгирӣ - Аудит требование → тикет → PR → bild → artefakt → sreda → log.
Нашри гео: аз рӯи кишвар/қаламрав, бо конфигуратсияи пардохтҳои маҳаллӣ/LCC.
Муҳаррикҳои зидди қаллобӣ/хавф: ҳавзҳои ҳаракати канарӣ, мониторинги бардурӯғ-мусбат/манфӣ.
KYC/AML/бозии масъул: хусусиятҳои озодкунӣ тавассути парчамҳо бо назорати ҳатмии таъсири корбар.
14) Анти-намунаҳои зуд-зуд
Қадамҳои дастӣ байни марҳилаҳо ("артефактро бо дасти худ оварданд").
"Парчамҳои хокистарӣ" бидуни соҳиб ва умри дароз.
Як озмоиши ҳамгироии "фарбеҳ" ба ҷои шартномаҳо.
Муҳоҷирати баръакси пойгоҳи додаҳо вуҷуд надорад.
Сканкунии амният пас аз ҷойгиркунӣ, на пештар.
15) Рӯйхати санҷиши омодагии Mini CD
- Сохтмон муайянкунанда аст; артефакт имзо шуд; як SBOM вуҷуд дорад.
- Санҷишҳо ва ислоҳи шартнома барои E2E.
- Дарвозаҳои амният/мувофиқат ҳамчун рамз; асрори - тавассути таҳхона.
- Мушоҳидаҳо: гузоришҳо/ченакҳо/роҳҳо, панелҳои озод, дарвозаҳои SLO.
- Стратегияи озодкунӣ: канарӣ/кабуд-сабз + худкор.
- Тартиби муҳоҷирати DB (тавсеа/шартнома).
- Парчамҳои хусусият бо эҷоди → истифодаи § сиёсати нест кардан.
- Ҳамгироии RACI/Runbooks/Chat
16) Намунаи ҷараён (сенария)
1. Якҷоя кардан дар хати триггери 'асосӣ'.
2. Монтажи контейнер, имзо, SBOM.
3. Линт/воҳиди/шартномаҳо → гузашт.
4. SAST/SCA/сканкунии махфӣ → "сабз".
5. Автопромо дар марҳила: E2E + бетартибӣ + сарбории профил.
6. Canary 1% барои як prod, назорати хатогӣ/ниҳонӣ/бизнес.
7. Баландшавӣ то 25 %/50 %/100% бо дарвозаҳои сабз.
8. Парчами "посбон" -ро ба таври худкор пӯшед, артефактҳои аудиториро сабт кунед.
9. Шарҳи пас аз озодкунӣ, нест кардани парчамҳои муваққатӣ.
17) Сатри поён
CD ин "тугмаи ҷойгиркунӣ" нест, балки фарҳанги тағироти хурд, бехатар ва мушоҳидашаванда мебошад. Бо сиёсатҳои дуруст ва автоматизатсия, CD хавфро коҳиш медиҳад, таҳвили арзишро суръат мебахшад ва реҷаро ба ҷои ҳодиса месозад. Барои системаҳои хеле пурборшаванда ва танзимшаванда калиди муваффақият дарвозаҳои қатъии сифат, даврашакл, парчамҳои хусусӣ, мушоҳидашаванда ва такрористеҳсоли ҳар як қадам мебошанд.