Қуттиҳои қуттиҳо ва муҳити озмоишӣ
1) Чаро ба мо контурҳои интихобшуда лозиманд
Қуттиҳои қуттиҳо ва муҳитҳои санҷишӣ ба шумо имкон медиҳанд:- гипотезаҳо ва ҳамгироиро бидуни хавфи истеҳсол зуд озмоиш кунед;
- суръатбахшии сикли фикру мулоҳизаҳо (PR → истиноди пешакӣ дар дақиқаҳо);
- такрори хатогиҳо ва ҳодисаҳо дар нусхаи бехатар;
- Санҷишҳои шартнома, ҳамгироӣ, сарборӣ ва бетартибиро иҷро кунед
- дастаҳои қатора ва шариконро дар "майдонча" муҷаҳҳаз кунед.
Принсипҳои асосӣ: ҷудокунӣ, паритети конфигуратсия, детерминизми санҷиш, амнияти маълумот, мушоҳидаи пешфарз.
2) Иерархияи муҳитҳо ва ҳадафи онҳо
Маҳаллӣ (Dev) - рушди маҳаллӣ: Docker Compose/Testcontainers, тренажерҳои провайдерҳои сабук.
Sandbox як мавқеъ барои ҳамгироии беруна (PSP, KYC, агрегаторҳои бозӣ) бо маълумоти қалбакӣ ва протоколҳои воқеӣ мебошад.
QA/Test - санҷишҳои ҳамгироӣ ва e2e, ислоҳи устувори маълумот, регрессия.
Марҳила/Прод-Прод - контур то ҳадди имкон ба истеҳсол наздик аст (конфигуратсияҳо/маҳдудиятҳо/топология).
Пешнамоиши эфемералӣ - муҳити "дар PR" (соатҳо/рӯзҳо зиндагӣ мекунад), захираҳои офлайнӣ ва URL, худкоркунӣ пас аз якҷояшавӣ/пӯшидан.
Қоидаи баробарӣ "танзимот, сиёсатҳо ва вобастагии инфрасохтор дар Test/Stage ≈ Prod" мебошад, фарқиятҳо танҳо дар махфият ва маҳдудиятҳо мебошанд.
3) Намудҳои сандбокс
1. Қуттиҳои провайдер: PSP/KYC/бозиҳои беруна нуқтаҳои санҷиширо таъмин мекунанд; мо як қабати тренажерҳоро барои тақлид кардани ҳолатҳои нодир ва хато илова мекунем (вақт, 5xx, имзоҳои ноустувор).
2. Қуттиҳои функсионалӣ: намунаҳои мустақили хизматрасониҳои домейн (пардохтҳо, мукофотпулӣ, дастовардҳо) + ислоҳ.
3. Қуттиҳои омӯзишӣ/намоишӣ: API "showcase" барои шарикон бо Dev
4) Шартномаҳо, тренажерҳо ва моки
Санҷиши шартномавӣ (Pact/Buf): истеъмолкунанда/провайдер аз рӯи схемаҳо розӣ ҳастанд; тағироти номувофиқ дар CI баста мешаванд.
Тренажерҳои провайдер: ҳолатҳои канори бозӣ (коллексияҳои дукарата, драйвери соат, имзои HMAC бо мӯҳлати муқарраршуда).
Ислоҳи чорабиниҳо (Kafka/NATS): Пардохти китобхонаи парванда. ваколатдор ',' kyc. санҷида шуд ',' бозӣ. давр мезананд. ҳал '.
Тазриқи хато: таъхирҳои назоратшаванда, тарки тарки, паёмҳои фармоишӣ.
X-Timestamp: 1730812800
X-Signature: sha256=hex(hmac_sha256(secret, body + timestamp))
5) Маълумоти санҷишӣ, GDPR/PCI ва беном
Ҳеҷ гоҳ истеҳсоли воқеии PII/PAN-ро истифода набаред.
Анонимизатсия: насли синтетикӣ + токенизатсияи соҳаҳои ҳассос; whitelisting танҳо барои ҳисобҳои намоишӣ.
Фабрикаҳои иттилоотӣ: фабрикаҳои корбар/транзаксия/сессия бо шаҳодатномаҳои пешгӯишаванда ва статусҳо.
Тухмиҳои детерминистӣ: Ислоҳи якхела дар байни санҷишҳо ва чоршанбе.
Сиёсати нигоҳдорӣ: тозакунии худкори муҳитҳои пешнамоиш ва пойгоҳи додаҳои озмоишӣ.
6) Асрҳо ва дастрасӣ
Сирри ҷудогона рӯзи чоршанбе; қарзҳои муваққатӣ ва нақшҳои маҳдуд.
KMS/HSM ва гардишҳо; асрори Гитро истисно кардааст.
RBAC/ABAC барои QA/Марҳила; аудити дастрасӣ, шикастани шиша танҳо тавассути гуфтушунид.
7) Мушоҳида дар муҳити ғайримустақим
Гузоришҳо - сохташуда, бе PII, бо ниқоб;
Metrics latency p50/p95/p99, хатогӣ, интиқол, DLQ, retrai;
Пайгирӣ (OT bel): аз охири дархост 'trace _ id' аз дархости вуруд ба симулятор;
Панели панелҳо ҳамчун Кодекс - панели панелҳо ва огоҳиҳо дар назди хидмат санҷида мешаванд.
8) Муҳитҳои пешнамоиши эфемерӣ (per-PR)
Рафтори пешфарз:- PR → CI тасвир ҷамъоварӣ мекунад, муҳоҷиратро ба вуҷуд меорад, фазои номро 'pr-
' дар Кубернетес баланд мекунад; - Пешнамоиши URL ва нишонаҳои истифодабарандагони санҷиш бароварда мешаванд;
- пайгирии/ченакҳои фаъол; вақте ки PR баста мешавад, муҳит нест карда мешавад.
yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments
9) Рушди маҳаллӣ: Compose/Testcontainers
Минималии 'docker-compose. yml 'ба кор дар маҳал:yaml version: "3. 9"
services:
api:
build:.
environment:
- DB_URL=postgres://postgres:postgres@db:5432/app? sslmode=disable
- KAFKA_BROKER=kafka:9092 ports: ["8080:8080"]
depends_on: [db, kafka]
db:
image: postgres:16 environment: [POSTGRES_PASSWORD=postgres]
ports: ["5432:5432"]
kafka:
image: bitnami/kafka:latest environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 ports: ["9092:9092"]
Барои баланд бардоштани худкори вобастагӣ дар озмоишҳо - Тестконтейнерҳо бо ислоҳҳо.
10) Санҷишҳои сарборӣ ва устуворӣ
Профилҳои боркунӣ: "мусобиқаҳо", "мавҷҳои пардохт", "варақаҳои оммавӣ".
KPI: RPS, p95/p99, маҳдудиятҳои захираҳо (CPU/хотира), TTFB, Вақт-ба-ҳамён.
Тазриқи хаос: қатъ шудани провайдерҳо, афзоиши таъхир, шабакаҳои "печида".
Сиёсати шикастани гардиш/бозгашт дар саҳна тафтиш карда мешавад; ғӯлачӯбҳо ба DLQ мераванд ва такрор мекунанд.
11) Сиёсати бозгашт ва такрорӣ
Такрори дарвоза барои рӯйдодҳо аз DLQ (режими дастӣ/худкор, филтрҳо аз рӯи калидҳо).
Пойгоҳҳои муҳоҷират: тоза/поён ва хушк дар пешнамоиш/Марҳила; муҳофизат аз тағироти халалдор.
12) Интегратсия бо Dev
Феҳристи қуттиҳо ва провайдерҳо, талаботи саҳроӣ, намунаҳои дархостҳо.
Тугмаи "Пешнамоиши кушод" барои ҳар як PR/филиал; Виҷети ченакҳои SLO/SLA.
Насли коллексияҳои SDK ва Postman/Insomnia аз шартномаҳо.
13) Амнияти периметри сандбокс
WAF + IP-алловлист барои қуттиҳои беруна;
квотаҳо ва меъёри як калид;
доменҳои инфиродӣ/subdomains; бартараф кардани худкори калидҳои ғайрифаъол;
скан осебпазирӣ ва вобастагии тасвир аз ҳар як бино.
14) Равандҳо: кӣ истифода мекунад ва чӣ гуна
Таҳиягарон - маҳаллӣ ва пешнамоиш, фикру мулоҳизаҳои зуд.
QA - Санҷиши устувор/Марҳила бо маълумотҳои идорашаванда ва тренажерҳо.
Шарикон - Sandbox-и беруна бо Dev-Portal, квотаҳо ва мониторинг.
SRE/Платформа - профилҳои сарборӣ, бетартибӣ, санҷиши SLO.
15) Рӯйхати санҷиши оғози Sandbox
- Шартномаҳо дар Феҳрист, тренажерҳо муваффақият/хатогиҳо/таъхирҳо/такрори онҳоро фаро мегиранд.
- Санҷиши маълумоти синтетикӣ, детерминистӣ, PII/PAN нест.
- Асрори KMS, нақшҳои маҳдуд, аудит фаъол аст.
- Ченакҳо/роҳҳо/гузоришҳо дастрасанд; огоҳӣ ба буҷаи хатогӣ ва DLQ.
- Пешнамоишҳои эфемерӣ дар PR ва худкор хароб карда мешаванд.
- Профилҳои боркунӣ ва сенарияҳои бетартибӣ бо рамз тавсиф карда мешаванд.
- Сиёсати муҳоҷират ва такрори рӯйдодҳо дар саҳна тафтиш карда мешаванд.
- Dev 'Portal дастурҳо ва маҷмӯаҳои дархостҳоро нашр мекунад.
16) Харитаи роҳсозӣ
M0-M1 (MVP): муҳитҳои маҳаллӣ (Compose), симуляторҳои PSP/KYC, санҷишҳои шартномавӣ дар CI, ҷойҳои пешнамоиш дар K8s.
M2-M3: каталогҳои асбобҳо, панели панелҳо ҳамчун код, такрори дастии DLQ +, профилҳои боркунӣ.
M4-M6: қуттии мукаммали берунӣ бо калидҳо/квотаҳо, инфрасохтори бетартибӣ, автогени SDK, "ду версия дар сиёсати муҳоҷират".
M6 +: Марҳилаи тақсимшудаи гео бо нокомӣ, масири интеллектуалии провайдерҳо тавассути SLA дар озмоишҳо, скриптҳои автоматикии омӯзишӣ дар Dev
17) Модели камолоти муҳити зист (мухтасар)
1. Асосӣ - Санҷиш/Марҳила, маълумоти дастӣ, ҷудокунии заиф мавҷуданд.
2. Пешрафта - тренажерҳо, санҷишҳои шартномавӣ, мушоҳида, пешнамоиши қисман.
3. Коршинос - муҳити PR-PR, бетартибӣ/сарборӣ ҳамчун рамз, Dev
Хулосаи мухтасар
Қуттиҳои дуруст тарҳрезишуда ва муҳити озмоишӣ "болишти ҳавоӣ" ва "суръатбахш" мебошанд. Ҷудокунӣ, баробарӣ бо истеҳсолот, тренажерҳои провайдер, маълумоти санҷиши детерминистӣ, мушоҳидаҳои қавӣ ва автоматизатсияи муҳити пешнамоиш рамзи зуд ва боэътимодро дар бар мегирад