GH GambleHub

Sandbox жана сыноо чөйрөлөр

1) Эмне үчүн бөлүнгөн контурлар керек

Sandbox жана сыноо чөйрөлөр жол:
  • тез өндүрүш үчүн тобокелдик жок гипотезаларды жана интеграцияны текшерүү;
  • фидбек циклин тездетүү (PR → алдын ала шилтеме мүнөттө);
  • каталарды жана инциденттерди коопсуз көчүрмөдө кайталоо;
  • контракттык, интеграциялык, жүктөө жана башаламандык тесттерин жүргүзүү;
  • "Оюн" аянтчасында командаларды окутуп, өнөктөштөрдү

Негизги принциптер: изоляция, конфигурациялардын паритети, тесттердин детерминизми, маалыматтардын коопсуздугу, демейки байкоо.

2) Чөйрөнүн иерархиясы жана алардын максаты

Local (Dev) - жергиликтүү иштеп чыгуу: Docker Compose/Testcontainers, провайдерлердин жеңил симуляторлору.
Sandbox - жасалма маалыматтар жана реалдуу протоколдор менен тышкы интеграциялоо үчүн стенд (PSP, KYC, оюн агрегаторлору).
QA/Test - интеграциялык жана e2e тесттер, туруктуу маалымат түзүмдөрү, регрессиялар.
Этап/Pre-Prod - өндүрүшкө мүмкүн болушунча жакын контур (конфигурациялар/лимиттер/топология).
Ephemeral Preview - айлана-чөйрө "боюнча PR" (саат/күн жашайт), автономдуу ресурстар жана URL, auto-бузуу кийин merge/close.

Паритеттин эрежеси: "Тестте/Этап ≈ Прод орнотуулары, саясаттары жана инфраструктуралык көз карандылыктары", айырмачылыктар - сырларда жана лимиттерде гана.

3) Кумдук түрлөрү

1. Sandbox провайдерлер: тышкы PSP/KYC/оюндар test endpoints камсыз кылат; биз сейрек кездешүүчү жана туура эмес учурларда (timeouts, 5xx, туруксуз кол) моделдөө үчүн бир катмар симуляторлор кошуу.
2. Функционалдык кумдуктар: домендик кызматтардын автономдуу инстанциялары (төлөмдөр, бонустар, ачивкалар) + фикстуралар.
3. Окутуу/демо Sandbox: DevPortal, ачкычтар, квоталар жана rate limit менен өнөктөштөр үчүн "витрина" API.

4) Келишимдер, симуляторлор жана моктор

Contract-testing (Pact/Buf): керектөөчү/провайдер схемаларды макулдашат; шайкеш келбеген өзгөрүүлөр CI боюнча бөгөттөлгөн.
Провайдерлердин симуляторлору: edge-кейстерди ойношот (кош коллбектер, саат дрейфтери, мөөнөтү өтүп кеткен timestamp менен HMAC кол тамгасы).
Окуя фикстуралары (Kafka/NATS): 'payment кейстеринин китепканасы. authorized`, `kyc. verified`, `game. round. settled`.
Fault injection: башкарылуучу кечигүү, drop-rate, out-of-order билдирүүлөр.

webhooks менен HMAC кол мисал:

X-Timestamp: 1730812800
X-Signature: sha256=hex(hmac_sha256(secret, body + timestamp))

5) Test маалыматтар, GDPR/PCI жана жашыруун

Биз өндүрүштөн тышкары реалдуу PII/PAN эч качан.
Атын атагысы келбеген: синтетика өндүрүү + сезгич талааларды tokenization; ак тизмелер гана көрсөтмө эсептери үчүн.
Data factories: алдын ала ID жана статустары менен колдонуучулар/бүтүмдөр/сессиялар фабрика.
Deterministic seeds: сыноолордун жана айлана-чөйрөнүн прогону ортосундагы бирдей фикстуралар.
Retenshn саясаты: auto-тазалоо алдын ала айлана-чөйрөнү жана тесттик DD.

6) Сырлар жана жетүү

Шаршемби күнү өзүнчө сырлар; убактылуу кред жана чектелген ролдору.
KMS/HSM жана айлануу; Git сырлары алынып салынат.
QA/этап үчүн RBAC/ABAC; кирүү аудити, break-glass гана макулдашуу аркылуу.

7) Observability unprod чөйрөдө

Логи - структуралуу, PII жок, жашыруу менен;

latency p50/p95/p99, error-rate, throughput, DLQ, retrais;

Trace (OTel): аркылуу 'trace _ id' кириш өтүнүчүнөн симуляторго чейин;

Dashboards as Code - Дашборддор жана Алерт кызмат жанында которулат.

8) Efemer алдын ала чөйрө (per-PR)

Демейки жүрүм-туруму:
  • PR → CI сүрөттү чогултат, миграцияны жаратат, namespace 'pr- ' -ди Кубернеттерге көтөрөт;
  • preview-URL жана тест колдонуучулардын токендери менен берилет;
  • трейсинг/метрика кирет; PR жабылганда айлана-чөйрө алынып салынат.
PR namespace үчүн манифесттин мисалы:
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"]

Тесттерде көз карандылыкты автоматтык түрдө жогорулатуу үчүн - Testcontainers фикстуралар менен.

10) Жүктөө жана туруктуу сыноо

Жүктөө профилдери: "турнирлер", "төлөмдөрдүн толкундары", "массалык мылтыктар".
KPI: RPS, p95/p99, ресурстук чеги (CPU/memory), TTFB, Убакыт-Кошелек.
Chaos-инъекцияларды: провайдерлерди өчүрүү, латенттүүлүктү жогорулатуу, "flaky" тармагы.
Circuit breaker/backoff саясат этап боюнча текшерилет; мүчүлүштүктөр DLQ жана кайталанат.

11) Кайра кайтаруу жана реплика саясаты

DLQ окуялар үчүн Replay-шлюз (кол/авто режимдер, ачкычтар боюнча чыпкалар).
Миграция базалары: так up/down жана dry-run алдын ала/этап; бузуучу өзгөрүүлөрдөн коргоо.

12) DevPortal менен бириктирүү

Кумдуктардын жана провайдерлердин каталогу, талааларга талаптар, суроо-талаптардын мисалдары.
Ар бир PR/бутакта "Open Preview" баскычы; widget метр SLO/SLA.
Контракттардан SDK жана Postman/Insomnia коллекцияларын түзүү.

13) Коопсуздук периметри Sandbox

WAF + IP-allowlist тышкы кум кутучалар үчүн;

ачкычка квота жана rate limits;

жеке домендер/поддомендер; активдүү эмес ачкычтарды автоматтык түрдө алып салуу;

сүрөттөрдүн алсыздыгын жана көз карандылыкты ар бир билдде

14) Процесстер: ким жана кантип колдонот

Иштеп чыгуучулар - жергиликтүү жана алдын ала, тез fidbek.
QA - башкарылуучу маалыматтар жана симуляторлор менен туруктуу Test/этап.
Өнөктөштөр - DevPortal, квоталар жана мониторинг менен тышкы Sandbox.
SRE/Platform - жүктөө, башаламандык, SLO текшерүү.

15) Check-list ишке кум

  • Каттоо келишимдер, симуляторлор ийгилик/каталар/убакыт/кайталоо камтыйт.
  • Тест-маалыматтар синтетикалык, аныктоо, PII/PAN жок.
  • KMS сырлары, ролдору чектелген, аудит камтылган.
  • Метрика/соода/Логи жеткиликтүү; error-budget жана DLQ боюнча алерталар.
  • Ephemeral Preview PR жана Auto-бузулган көтөрүлөт.
  • Жүктөө профилдери жана башаламандык сценарийлери код менен сүрөттөлөт.
  • Миграция жана реплика саясаты этап боюнча текшерилет.
  • DevPortal Gayds жана суроо жыйнагын жарыялайт.

16) Ишке ашыруунун жол картасы

M0-M1 (MVP): жергиликтүү чөйрө (Compose), PSP/KYC негизги симулятор, CI-жылы келишим-тесттер, K8s-жылы preview-неймспейс.
M2-M3: Fixture каталогдору, Dashboards as Code, DLQ + кол Replay, жүктөө профилдери.
M4-M6: толук кандуу тышкы Sandbox ачкычтар/квоталар, хаос-инфраструктура, SDK автоген, миграция саясаты "параллелдүү эки версия".
M6 +: failover менен гео-бөлүштүрүлгөн этап, тесттер, DevPortal автоматташтырылган окутуу жагдайлар боюнча SLA боюнча акылдуу багыттоо.

17) Айлана-чөйрөнүн жетилүү модели (кыскача)

1. Basic - бар Test/этап, кол маалыматтар, алсыз изоляция.
2. Advanced - симуляторлор, келишим-тесттер, байкоо, жарым-жартылай алдын ала.
3. Эксперттик - per-PR айлана-чөйрө, код катары башаламандык/жүк, DevPortal, катуу коопсуздук жана толук автоматташтыруу.

Кыскача корутунду

Туура иштелип чыккан кум аянтчалары жана сыноо чөйрөлөрү "коопсуздук жаздыгы" жана "ылдамдаткыч" жеткирүү болуп саналат. Изоляция, өндүрүш менен паритет, провайдерлердин симуляторлору, детерминацияланган тест маалыматтары, күчтүү байкоо жана алдын ала шарттарды автоматташтыруу тез жана ишенимдүү "код → текшерүү → релиз" циклин берип, регресс коркунучун азайтат жана платформаны масштабдоону жөнөкөйлөтөт.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.