Муҳитҳои санҷишӣ ва саҳна
1) Мақсад ва соҳаи масъулият
Муҳити санҷишӣ хатари релизҳоро тавассути додани фикру мулоҳизаҳои зуд ва шароити наздики истеҳсолӣ бидуни таъсир ба бозигарони воқеӣ ва пул коҳиш медиҳад. Барои IGaming, ин аз ҳисоби пардохтҳо (PSP), KYC/AML, бозии масъул (RG) ва қуллаҳои мавсимӣ муҳим аст.
2) Таксономияи муҳити зист
Dev (қуттиҳои маҳаллӣ/қуттиҳо): такрори фаврии таҳиягарон, вобастагии ҳадди аққал, ficheflags.
CI/Санҷиш (ҳамгироӣ): васлкунӣ, воҳид/ҳамгироӣ, санҷишҳои шартномавӣ, e2e оид ба mocs.
Марҳилаи (пеш аз prod): паритети ҳадди аксар бо фурӯш (версияҳо, конфигуратсияҳо, топология), "репетицияи озод".
Perf/Load: муҳити ҷудошуда барои санҷишҳои сарборӣ/стресс, то ба санҷишҳои функсионалӣ халал нарасонанд.
Қуттиҳои Sec/Compliance: санҷишҳои амниятӣ, сиёсати RG/PII, So
Лабораторияи DR/Failover: сенарияҳои садама ва нокомии байниминтақавӣ.
Ҳар як муҳит фазои худро дорад: 'иҷорагир/минтақа/муҳити зист'.
3) Баробарӣ бо фурӯш (марҳилаи аввал)
Конфигуратсияҳо: Gitops, микросхемаҳои якхела ва валидаторҳо; фарқиятҳо - танҳо дар арзишҳо (калидҳо/маҳдудиятҳо/нуқтаҳои ниҳоӣ).
Топология: ҳамон версияҳои хидматрасонӣ, сиёсати шабака, тавозунҳо, намудҳои кэш/пойгоҳи додаҳо.
Маълумот: синтетикӣ ё obfuscated; не PII-и "хом".
Телеметрия: панели/огоҳиҳои якхела (танҳо сатҳи ҳадди ниҳоӣ ва маҳдудиятҳои нархҳо гуногунанд).
4) Маълумот: Стратегияҳо ва гигиена
Генераторҳои синтетикӣ: тақсимоти воқеӣ барои амонатҳо/нархҳо/CCS, псевдо-BIN, ҳуҷҷатҳои бардурӯғ.
Бартараф кардани нусхаҳо: ҳашиши яктарафаи идентификаторҳо, ниқоби CIPHER майдонҳои ҳассос.
Нишастан: "маҷмӯи сенарияҳо" (бақайдгирӣ → depozit → stavka → settl → vyvod) бо ID-ҳои детерминистӣ.
TTL ва сиёсати тозакунӣ: худкори тоза кардани маълумоти кӯҳна, маҳдудиятҳои ҳаҷм.
Такрори трафик (соя): бе вуруд/таъсири тараф хонед.
5) Виртуализатсия ва провайдерҳои беруна
PSP/KYC/CDN/WAF ба mokes шартнома ва посухҳои тағйирёбанда тақлид мекунад (муваффақият, коҳиши мулоим/сахт, танаффус).
Санҷишҳои шартномавӣ (аз ҷониби истеъмолкунандагон): ислоҳ кардани интерфейсҳо ва мисолҳо.
Дугоникҳои санҷишӣ бо парчам иваз карда мешаванд: 'қуттии воқеӣ' виртуалӣ '.
6) Ҷудокунӣ ва бисёрҳуҷрагӣ
Фазои ном барои як иҷорагир/минтақа дар мағозаҳои k8s/config.
CPU/IO/Квотаҳои холис ва маҳдуд мекунад, то як санҷиш тамоми муҳитро вайрон накунад.
Эфемерал дар шохаи PR/хусусият меистад: дақиқа баланд мешавад, соатҳо/рӯзҳо зиндагӣ мекунад ва сипас ихтиёр карда мешавад.
7) Қубур ва дарвозаҳои CI/CD
Поток: 'сохтан → агрегат → шартнома → ҳамгироӣ → e2e (виртуализатсия) → сканкунии бехатарӣ → саҳна → канарӣ → prod'.
Дарвозаҳо ба саҳна мераванд:- воҳиди сабз/шартнома, линтерҳои схемаҳо ва конфигуратсияҳо;
- синфи хавфи тағирот (policy-as-code), тирезаҳоро ях кунед;
- Марҳилаи дарвозаҳои SLO (бе SLI сурх).
- "репетитсияи бомуваффақият" (муҳоҷират, конфигуратсияҳо, phicheflags, огоҳиҳо);
- рӯйхати назорати пас аз мониторинг;
- Имзои 4 чашм ба хатари баланд (масири PSP, маҳдудиятҳои RG, содироти PII).
8) Репетиция (машқҳои саҳнавӣ)
Муҳоҷирати DB/схема: хушккунӣ + баръакс (муҳоҷирати поёнӣ), арзёбии вақт.
Нашри Config: қадамҳои канарӣ, худкор аз ҷониби SLI.
Ficheflags: фарогирӣ ба 5-25% шунавандагон, санҷиши посбонҳо.
Қолабҳои саҳифа/comm: коркарди паёмҳо (нақшаҳо бидуни нашр дар берун).
Бот ҳодиса: бот фармон медиҳад, ки амалҳои runbook-ро ҳамчун ҳушдордиҳии омӯзишӣ оғоз кунед.
9) Санҷишҳои ғайрифаъол
Сарборӣ/стресс/тобоварӣ: профилҳои қуллаҳои воқеӣ (гугирдҳо, мусобиқаҳо), ҳадафҳои p95/p99, муҳофизат аз гармии навбат.
Таҳаммулпазирии хато (бетартибӣ): нокомии шабака, нусхаҳои тарки, таъхири провайдерҳо, қисман feilover.
Амният: DAST/SAST/IAST, сканкунии махфӣ, санҷиши So
Мувофиқат: сенарияҳои KYC/AML/RG, содироти ҳисоботҳо ба танзимгарон, ҳудуди гео-додаҳо.
Молия: дурустии дафтар дар ҳолатҳои касрӣ/маргиналӣ, номутобиқатии пардохтҳо/ҳисобҳо.
10) Риояи муҳитҳо
Ҳамон кортҳои SLI/SLO ва огоҳиҳо (сатҳҳо мулоимтаранд).
Синтетика роҳҳои корбарро такрор мекунад: воридшавӣ, амонат, нарх, натиҷа.
Намунаҳо/пайгирӣ барои RCA дастрасанд; гузоришҳо бе PII.
Детектори дрифт: Git ↔ вақти корӣ (версияҳо, конфигуратсияҳо, phicheflags).
Нишондиҳандаҳои хароҷот: $/соати муҳити зист, $/санҷиш, панелҳои "вазнин".
11) Дастрасӣ, СО ва Амният
RBAC/ABAC: дастрасӣ аз рӯи нақш/иҷорагир/минтақа; сирри истеҳсолӣ мавҷуд нест.
Ҳуқуқҳои JIT барои амалиёти маъмурӣ, аудити ҳатмӣ.
Сиёсати маълумот: манъи PII, obfuscation, гео-истиқомат.
Ҷудокунии шабака: марҳила ба системаҳои берунаи истеҳсолӣ навишта наметавонад.
12) Иҷро ва арзиш (FIN Ops)
Эфемерал ба таври худкор аз нав истифода мешавад; рехтагарони шабона кластерҳои бекорро хомӯш мекунанд.
Мубодилаи қабати асосӣ (Мушоҳида, кэши CI), аммо ҷудокунии сарбории санҷиш.
Феҳристи санҷишҳои "гарон"; маҳдудиятҳои мувофиқат; афзалият аз ҷониби синфи QOS.
13) Интегратсия (амалиётӣ)
Бот дар бораи ҳодисаҳо: '/намоиш додани 'бозгашт', '/оғози машқ ', мӯҳлатҳои репетиция.
Дарвозаҳои озодкунӣ: блоки озод бо саҳнаи сурхи SLO.
Парчамҳои хусусият: хадамоти ҳалли умумии парчам, сегменти трафики худ.
Metrics API: нуқтаҳои ниҳоӣ ва феҳристҳои метрикӣ, "нишони миёна" дар посухҳо.
14) Намунаҳои артефактҳо
14. 1 Манифести муҳити зист дар PR
yaml apiVersion: env. platform/v1 kind: EphemeralEnv metadata:
pr: 4217 tenant: brandA region: EU spec:
services: [api, payments, kyc, games]
dataSeed: "scenario:deposit-bet-withdraw"
virtualProviders: [psp, kyc]
ttl: "72h"
resources:
qos: B limits: { cpu: "8", memory: "16Gi" }
14. 2 Феҳристи провайдерҳо (Виртуализатсия)
yaml apiVersion: test. platform/v1 kind: ProviderMock metadata:
id: "psp. sandbox. v2"
spec:
scenarios:
- name: success rate: 0. 85
- name: soft_decline rate: 0. 1
- name: timeout rate: 0. 05 latency:
p95: "600ms"
p99: "1. 5s"
14. 3 Рӯйхати назоратӣ "Репетицияи озод" (фишурдан)
Муҳоҷирати DB: вақт, баръакс;
конфигуратсияҳо/ficheflags: diff, канарӣ, дарвозаҳои SLO;
огоҳиҳо/панелҳо: баста, часпак нест;
лоиҳаҳои вазъ: омода;
нақшаи баръакс: 'T + 5m', 'T + 20m'.
15) RACI ва равандҳо
Соҳиби Env (SRE/Платформа): паритет, дастрасӣ, арзиш, панели панелҳо.
Соҳибони домейн: сенарияҳои санҷиш, ҷойгоҳ, шартномаҳо, KPI.
QA/SEC/Мувофиқат: санҷишҳо, ҳисоботҳо, назорати RG.
Менеҷери озодкунӣ: дарвозаҳо, тақвим, яхкунӣ/нигоҳдорӣ.
On-call/IC: дар тамринҳои сенарияи P1 иштирок кунед.
16) Муҳитҳои KPI/KRI
Вақти роҳбарӣ ба саҳна: kommit → саҳна, медиан.
Тағир додани сатҳи нокомӣ (дар як марҳила): ҳиссаи камбудиҳо барои prod.
Нишондиҳандаи баробарӣ: мувофиқати версия/конфиг/топология (ҳадаф ≥ 95%).
Фарогирии санҷиш e2e бо роҳҳои муҳим: воридшавӣ/амонат/меъёр/бозхонд.
Арзиши як санҷиш/барои як соати Env.
Ҳодисаҳои Drift: номувофиқатии Git↔runtime.
Камбудиҳои амният/мувофиқат: пеш аз Prod ёфт шудааст.
17) Харитаи роҳсозӣ (6-10 ҳафта)
Нед. 1-2: инвентаризатсияи муҳитҳо, каталоги GIT, диаграммаҳои конфигуратсия, маҷмӯи маълумотҳои асосӣ, санҷишҳои шартномаҳои провайдерҳо.
Нед. 3-4: баробарӣ (версияҳо/топология), стендҳои эфемералии PR, виртуализатсияи хидматрасонии PSP/KYC, дарвозаҳои SLO.
Нед. 5-6: машқҳои озодкунӣ (рӯйхатҳои назоратӣ, дастаҳои бот), профилҳои сарборӣ, маҷмӯаҳои бетартибӣ, панели муҳити зист.
Нед. 7-8: сиёсати додаҳо (obfuscation/TTL), So
Нед. 9-10: DR/feiler-lab, скриптҳои мувофиқат, аудити WORM, омӯзиши гурӯҳӣ.
18) Антипаттернҳо
Намоиши ≠ prod - дигар версияҳо/конфигуратсияҳо/қоидаҳои шабака.
Нусхабардории prod-PII ба хатарҳои танзимкунанда
Виртуализатсияи провайдерҳои беруна → озмоишҳои ноустувор/гарон.
Набудани дарвозаҳои SLO/репетиция → ногаҳонӣ дар фурӯш.
Маълумоти санҷиши "абадӣ" бидуни TTL → ахлот ва оқибатҳои бардурӯғ.
Сарбории муштарак ва санҷишҳои функсионалӣ дар як стенд.
Нобудкунии сифр дар шаб/истироҳат → сӯзондани буҷа.
Ҷамъ
Муҳитҳои озмоишӣ ва саҳнаҳо инфрасохтори сифати истеҳсолот мебошанд: баробарӣ бо фурӯш, маълумоти тоза ва провайдерҳои виртуалӣ, дарвозаҳои қатъии CI/CD, репетитсияҳои озод, мушоҳидаҳо ва FIN. Ин чаҳорчӯба CFR ва MTTR-ро коҳиш медиҳад, пешгӯии релизро афзоиш медиҳад ва даромад ва мувофиқати платформаи IGaming-ро ҳифз мекунад.