جعبه های شن و ماسه و محیط های آزمایش
TL ؛ دکتر متخصص
Sandbox قوی = انزوای کامل، داده های مصنوعی/غیر شخصی، شبیه ساز های واقع گرایانه سیستم های خارجی، طرف های قابل پیش بینی و زمان سفر، ساخته شده در idempotency و webhooks، محدودیت های شفاف و معیارهای. غذا - دور از دسترس، کلید - حفاری، ارتقاء - تنها در چک لیست.
1) نقشه محیط زیست و نقش آنها
قانون: sandbox ≠ prod. هر گونه اتصال - از طریق شبیه سازی یک طرفه بدون دسترسی به وسایل واقعی/بازی/اطلاعات شخصی.
2) داده ها: مصنوعی، ناشناس، نشسته
سنتتیک های پیش فرض ژنراتور داده گذرنامه/کارت، PAN های معتبر اما غیر مالی (BIN های تست)، الگوهای زنده نرخ ها و تعادل ها.
ناشناس سازی برای مرحله: نشانه گذاری شناسه ها، حفظ حریم خصوصی دیفرانسیل برای aggregates، حذف ترکیبات نادر.
SIDS و جبرگرایی: یک تیم - یک دولت است.
bash make db-reset && make db-seed ENV=sandbox SEED=2025_11_03
زمان سفر: «ساعت» جهانی محیط زیست برای آزمون مهلت/انقضا.
3) شبیه سازی و شاخه (خرد)
پرداخت/بانک/PSP
Auth/Capture/Refund/Payout со сценариями: 'تایید شده'، 'رد شده _ ناکافی'، '3ds _ required'، 'timeout'، 'تکراری'.
PSP webhooks: HMAC امضا، retray، تاخیر و «اینترنت کثیف».
KYC/AML/تحریم ها
Ответы: «روشن»، «pep _ match»، «sanction _ hit»، «doc _ mismatch»، «manual _ review».
پشتیبانی از idemotency و نرخ محدودیت به عنوان در تولید.
ارائه دهندگان بازی/کاتالوگ
لابی، ویژگی، RTP/دور - تولید شبه تصادفی، کنترل «پرداخت/شکست» برای موارد UX.
گزینه: شبیه ساز «شدت» سوئیچ (مبارک مسیر در مقابل هرج و مرج).
4) Webhooks در sandbox
امضای HMAC (v1)، هدر «X-Event-Id»، «X-Timestamp»، پنجره ≤ 5 دقیقه.
Retrays با بازگشت نمایی، DLQ و پخش.
کنسول «ارسال مجدد» و سیاهههای مربوط از تلاش.
pseudo
POST /psp/webhooks
Headers: X-Signature, X-Timestamp, X-Event-Id
Body: { event_id, type, data, attempt }
5) Idempotence و جبرگرایی
تمام جهشها «Idempotency-Key» را میپذیرند.
شبیه سازی ذخیره نتیجه توسط کلید (TTL 24-72 ساعت).
«جبر دانه»: با همان ورودی - همان نتیجه (برای آزمون های تکرار).
6) امنیت و دسترسی
اسرار فقط در KMS/Vault ؛ چرخش منظم
جداسازی شبکه/VPC، اسرار و دامنه های فردی ('sandbox. به عنوان مثال. کام).
RBAC/ABAC: نقش های «شریک»، «qa»، «dev»، ospreys از نشانه ها حداقل است.
محدودیت نرخ و سهمیه: سهم عادلانه برای هر مستاجر/کلید، قابل فهم '429 '/' Retry-After'.
ممنوعیت پرداخت واقعی در سطح کد/پیکربندی (بلوک سخت ویژگی پرچم).
7) API دروازه و مشاهده در sandbox
سیاست های مشابه: OAuth2/OIDC/JWT، CORS، WAF، پروفایل DDoS.
معیارهای: p50/p95/p99, 4xx/5xx, محدودیت نرخ ضربه, latency webhooks, بازدید idempotent.
سیاهههای مربوط/مسیرهای پیاده روی: بدون PII ؛ همبستگی 'trace _ id'.
داشبورد «Sandbox سلامت»: آپ تایم، webhook صف، خطاهای شبیه ساز.
8) ویژگی های پرچم ها، نسخه ها و سازگاری
گنجاندن ویژگی ها در sandbox → stage → prod.
SemVer برای API ؛ کاهش/بنر غروب آفتاب در جعبه های شن و ماسه Swagger/Redoc.
پرس و جوهای مداوم برای فروشگاه های GraphQL (در صورت وجود).
9) ارتقاء и CI/CD
1. ساخت/واحد →
2. تست های قراردادی/آزمایشی (OpenAPI/Protobuf/GraphQL SDL) →
3. ادغام در مقابل شبیه سازی →
4. رگرسیون مرحله (عکس های فوری) →
5. قناری в نوک زدن
ارتقاء دروازه چک لیست: زیر در § 12.
10) اسکریپت UAT برای شرکای (sandboxed)
پرداخت: auth/ضبط/بازپرداخت/پرداخت با webhooks و خطاهای PSP.
KYC/AML: تمام وضعیت ها + تشدید دستی.
Idempotency: تکرار 'Idempotency-Key' → همان نتیجه.
محدودیت نرخ: مدیریت صحیح «429».
پنجره های زمان: انقضای نشانه ها، 'Retry-After'، موارد سفر زمان.
Webhooks: امضا/retrays/DLQ، پخش دستی و dedup.
11) سیاست داده و حریم خصوصی
هرگز اسکلههای PAN/KYC واقعی را در sandbox/stage ذخیره نکنید.
ناشناس سازی: پوشش، حذف شناسه های مستقیم، همبستگی مصنوعی.
ذخیره سازی TTL از سیاهههای مربوط و بدن webhook معمول ≤.
12) چک لیست
12. 1 راه اندازی یک sandbox جدید
- شبکه جدا شده/پایه/حافظه پنهان/ذخیره سازی شی
- اسرار ایجاد شده در KMS/Vault، دسترسی به نقش
- PSP/KYC/شبیه سازی بازی هجی و versioned
- Swagger/Redoc + مجموعه پستچی (sandbox endpoints)
- Webhooks: HMAC، سعی مجدد، DLQ، کنسول پخش
- پروفایل های نرخ/سهمیه، آگهی های تخفیف/غروب آفتاب (در صورت وجود)
- داشبورد و هشدار (تاخیر، 5xx، 429، DLQ)
12. 2 انتشار ارتقاء (مرحله → تشویق)
- چک تفاوت قرارداد (بدون شکستن)
- بار p95/p99 طبیعی در مرحله
- Webhooks تحت UAT، idempotency خوب است
- پرچم های ویژگی آماده می شوند، یک طرح عقب نشینی وجود دارد
- Changelog، راهنمای مهاجرت و ارسال نامه به شرکا
13) ضد گلوله
sandbox که «مخفیانه» محصولات خدمات/پایگاه داده را لمس می کند.
کارت واقعی/اطلاعات گذرنامه در مرحله/ماسهبازی.
شبیه سازی بدون webhooks/retreats تنها «مسیر شاد» است.
بدون idempotence → پرداخت های تکراری/شرط.
یک راز HMAC مشترک برای همه شرکا.
هیچ محدودیت یا 429/Retry-After شفافی وجود ندارد.
14) قطعه های کوچک
در مقابل. سندباکس (مثال)
dotenv
API_BASE=https://sandbox.api.example.com
OAUTH_ISS=https://sandbox.idp.example.com
PSP_SIM_URL=https://sandbox.psp-sim.example.com
KYC_SIM_URL=https://sandbox.kyc-sim.example.com
WEBHOOK_SECRET_ROTATION_DAYS=90
FEATURE_FORCE_SANDBOX_PAYMENTS=1
قطعه OpenAPI (سرور ماسهبازی)
yaml servers:
- url: https://sandbox.api.example.com/v1 description: Public Sandbox
شبه کد بی نظیر
pseudo if store.exists(idem_key): return store.get(idem_key)
res = do_business()
store.set(idem_key, res, ttl=72h)
return res
PSP شبیه ساز باعث
json
{ "scenario": "payout", "case": "declined_insufficient", "payout_id": "p_123" }
15) قابلیت مشاهده Sandbox و SLO
زمان آماده به کار sandbox API ≥ 99. 5٪ (ویترین ادغام نباید سقوط کند).
وب سایت p95 ≤ 3 s تا 2xx در بار عادی.
بودجه خطا 5xx دروازه ≤ 0. 1%.
پورتال docking در دسترس است و با قرارداد هماهنگ شده است.
16) حکومت
مالک محیط (SRE/Platform) و API مباشر (قراردادها).
فرآیند RFC برای شکستن تغییرات، تقویم استهلاک/غروب آفتاب.
محدودیت ها/سهمیه های جداگانه و قیمت گذاری «استفاده منصفانه» برای sandbox عمومی.
خلاصه رزومه
Sandbox یک محصول برای توسعه دهندگان است، نه یک کپی از پایه. "را: انزوا سخت، داده های مصنوعی، شبیه سازی تمام عیار با webhooks و retras، جبرگرایی از طریق طرف و زمان سفر، پرچم ویژگی و محدودیت های شفاف. همه چیز را با قراردادها، قابلیت مشاهده و حاکمیت پیوند دهید - و ادغام شما سریع، امن و قابل پیش بینی خواهد شد و بدون درد آزاد می شود.