GH GambleHub

جعبه های شن و ماسه و محیط های آزمایش

1) چرا ما نیاز به خطوط انتخاب شده داریم

Sandboxes و محیط آزمایش به شما اجازه می دهد:
  • به سرعت فرضیه ها و یکپارچگی را بدون ریسک تولید تست کنید.
  • سرعت بخشیدن به چرخه بازخورد (PR → پیش نمایش لینک در دقیقه) ؛
  • تکثیر خطاها و حوادث در یک نسخه امن ؛
  • انجام تست های قرارداد، ادغام، بار و هرج و مرج
  • تیم های قطار و تجهیز همکاران در «زمین بازی».

اصول کلیدی: انزوا، برابری پیکربندی، جبرگرایی آزمون، امنیت داده ها، مشاهده پذیری پیش فرض.

2) سلسله مراتب محیط ها و هدف آنها

محلی (Dev) - توسعه محلی: Docker Compose/Testcontainers، شبیه سازی ارائه دهنده سبک وزن.
Sandbox یک پایه برای یکپارچگی خارجی (PSP، KYC، جمع کننده های بازی) با داده های جعلی و پروتکل های واقعی است.
QA/Test - تست های یکپارچه سازی و e2e، رفع پایدار داده ها، رگرسیون ها.
Stage/Pre-Prod - طرح کلی تا حد ممکن نزدیک به تولید (تنظیمات/محدودیت/توپولوژی).
پیش نمایش زودگذر - محیط «در PR» (زندگی برای ساعت/روز)، منابع آفلاین و URL، تخریب خودکار پس از ادغام/بستن.

قانون برابری «تنظیمات، سیاست ها و وابستگی های زیرساختی در Test/Stage ≈ Prod» است، تفاوت ها فقط در اسرار و محدودیت ها است.

3) انواع جعبه شن و ماسه

1. sandboxes ارائه دهنده: PSP خارجی/KYC/بازی ارائه endpoints آزمون; ما یک لایه شبیه ساز برای شبیه سازی موارد نادر و اشتباه (timeouts، 5xx، امضاهای ناپایدار) اضافه می کنیم.
2. Sandboxes عملکردی: نمونه های مستقل از خدمات دامنه (پرداخت، پاداش، دستاوردها) + رفع.
3. sandboxes آموزش/نسخه ی نمایشی: API «ویترین» برای شرکای با DevPortal, کلید, سهمیه و محدودیت نرخ.

4) قراردادها، شبیه سازی و موکی

تست قرارداد (Pact/Buf): مصرف کننده/ارائه دهنده در مورد طرح ها موافق است ؛ تغییرات ناسازگار در CI مسدود شده است.
شبیه سازی ارائه دهنده: موارد لبه بازی (collbacks دو، رانش ساعت، امضای HMAC با برچسب زمان منقضی شده).
رفع رویداد (Kafka/NATS): پرداخت کتابخانه مورد. 'مجاز،' KYC. بازی تأیید شده. دور بزنید. مستقر شد.
تزریق خطا: تاخیر کنترل شده، نرخ افت، پیام های خارج از سفارش.

نمونه ای از امضای HMAC در Sandbox Webhooks:

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

5) داده های تست، GDPR/PCI و ناشناس سازی

هرگز از PII/PAN واقعی خارج از تولید استفاده نکنید.
ناشناس سازی: تولید مصنوعی + نشانه گذاری زمینه های حساس ؛ لیست سفید فقط برای حساب های نسخه ی نمایشی.
کارخانه های داده: کارخانه های کاربر/معامله/جلسه با شناسه ها و وضعیت های قابل پیش بینی.
دانه های قطعی: اصلاحات یکسان بین اجرای آزمون و چهارشنبه ها.
سیاست نگهداری: تمیز کردن خودکار محیط های پیش نمایش و پایگاه داده های تست.

6) اسرار و دسترسی

اسرار جداگانه در روزهای چهارشنبه اعتبار موقت و نقشهای محدود

KMS/HSM و چرخش ؛ حذف اسرار در Git.
RBAC/ABAC برای QA/مرحله ؛ حسابرسی دسترسی، شکستن شیشه تنها از طریق مذاکره.

7) قابلیت مشاهده در محیط های غیر صنعتی

سیاهههای مربوط - ساختار, بدون PII, با پوشش;

تاخیر متریک p50/p95/p99، نرخ خطا، توان عملیاتی، DLQ، retrai ؛

ردیابی (OTel): پایان دادن به پایان 'trace _ id' از درخواست ورودی به شبیه ساز ؛

داشبورد به عنوان کد - داشبورد و هشدارها در کنار سرویس قرار می گیرند.

8) محیط پیش نمایش زودگذر (در هر PR)

رفتار پیشفرض:
  • PR → CI یک تصویر را جمع آوری می کند، مهاجرت می کند، فضای نام 'pr- ' را در Kubernetes افزایش می دهد ؛
  • URL های پیش نمایش و نشانه های کاربران تست صادر می شود ؛
  • ردیابی/معیارهای فعال ؛ هنگامی که روابط عمومی بسته است، محیط زیست حذف شده است.
مثال برای فضای نام در PR:
yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments

9) توسعه محلی: نوشتن/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) تست بار و ثبات

پروفایل بار: «مسابقات»، «امواج پرداخت»، «fluffs توده».
KPI: RPS، p95/p99، محدودیت منابع (CPU/حافظه)، TTFB، زمان به کیف پول.
تزریق هرج و مرج: قطع ارتباط ارائه دهندگان، افزایش تاخیر، شبکه های «پوسته پوسته».
سیاست های قطع کننده مدار/عقب نشینی در مرحله بررسی می شود ؛ dips به DLQ بروید و تکثیر کنید.

11) سیاست های بازگشت و پخش

دروازه پخش برای رویدادها از DLQ (حالت دستی/خودکار، فیلتر با کلید).

پایگاه های مهاجرت: روشن/پایین و خشک اجرا در پیش نمایش/مرحله ؛ محافظت در برابر تغییرات مخرب

12) ادغام با DevPortal

کاتالوگ sandboxes و ارائه دهندگان، نیازهای زمینه، نمونه هایی از نمایش داده شد.
دکمه «Open Preview» برای هر PR/شاخه ؛ ویجت معیارهای SLO/SLA.

تولید SDK و مجموعه های Postman/Insomnia از قراردادها

13) امنیت محیط سندباکس

WAF + IP-allowlist برای جعبه های ماسه ای خارجی ؛

سهمیه ها و محدودیت های نرخ در هر کلید ؛

دامنه های فردی/زیر دامنه ها ؛ حذف خودکار کلید های غیر فعال ؛

اسکن آسیب پذیری ها و وابستگی های تصویر در هر ساخت.

14) فرآیندها: چه کسی استفاده می کند و چگونه

توسعه دهندگان - محلی و پیش نمایش، بازخورد سریع.
QA - تست پایدار/مرحله با داده های مدیریت شده و شبیه سازی.
همکاران - Sandbox خارجی با DevPortal، سهمیه و نظارت.
SRE/Platform - پروفایل های بار، هرج و مرج، تأیید SLO.

15) چک لیست راه اندازی جعبه شن و ماسه

  • قرارداد در رجیستری، شبیه سازی پوشش موفقیت/خطاها/timeouts/تکرار.
  • داده های تست مصنوعی، قطعی، بدون PII/PAN.
  • اسرار از KMS، نقش محدود، حسابرسی را فعال کنید.
  • معیارهای/مسیرهای پیاده روی/سیاهههای مربوط در دسترس هستند; هشدار به بودجه خطا و DLQ.
  • پیش نمایش های کوتاه مدت در PR و خودکار تخریب می شود.
  • پروفایل های بار و سناریوهای هرج و مرج توسط کد توصیف می شوند.
  • سیاست های مهاجرت و پخش رویداد در مرحله بررسی می شود.
  • DevPortal راهنماها و مجموعه های پرس و جو را منتشر می کند.

16) نقشه راه پیاده سازی

M0-M1 (MVP): محیط های محلی (Compose)، شبیه ساز PSP/KYC پایه، تست قرارداد در CI، فضاهای پیش نمایش در K8s.
M2-M3: کاتالوگ ثابت، داشبورد به عنوان کد، DLQ + پخش دستی، پروفایل های بار.
M4-M6: Sandbox خارجی کامل با کلید/سهمیه، زیرساخت هرج و مرج، SDK autogen، «دو نسخه به صورت موازی» سیاست مهاجرت.
M6 +: مرحله توزیع جغرافیایی با شکست، مسیریابی هوشمند ارائه دهندگان از طریق SLA در تست ها، اسکریپت های آموزش خودکار در DevPortal.

17) مدل بلوغ محیط (کوتاه)

1. پایه - تست/مرحله، داده های دستی، انزوا ضعیف وجود دارد.
2. پیشرفته - شبیه سازی، تست قرارداد، مشاهده، پیش نمایش جزئی.
3. کارشناس - در هر محیط PR، هرج و مرج/بار به عنوان کد، DevPortal، امنیت قوی و اتوماسیون کامل.

نتیجه گیری مختصر

جعبه های ماسه ای به درستی طراحی شده و محیط های آزمایشی «کیسه هوا» و «شتاب دهنده» تحویل هستند. جداسازی، برابری با تولید، شبیه سازی ارائه دهنده، داده های آزمون قطعی، مشاهده پذیری قوی و اتوماسیون محیط های پیش نمایش، یک کد سریع و قابل اعتماد را فراهم می کند → بررسی چرخه انتشار، کاهش خطر رگرسیون و ساده سازی مقیاس بندی پلت فرم.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.