GH GambleHub

صناديق الرمل وبيئات الاختبار

1) لماذا نحتاج إلى ملامح محددة

تسمح لك صناديق الرمل وبيئات الاختبار بما يلي:
  • وسرعة اختبار الفرضيات وعمليات التكامل دون المخاطرة بالإنتاج ؛
  • وتسريع دورة التغذية المرتدة (PR → preview-link in minutes) ؛
  • واستنساخ الأخطاء والحوادث في نسخة مأمونة ؛
  • إجراء اختبارات العقد والتكامل والتحميل والفوضى
  • فرق التدريب وشركاء التجهيز في «الملعب».

المبادئ الرئيسية: العزل، تكافؤ التكوين، حتمية الاختبار، أمن البيانات، قابلية الرصد الافتراضية.

2) التسلسل الهرمي للبيئات والغرض منها

Local (Dev) - التنمية المحلية: Docker Compose/Testcontainers، محاكاة مزود الوزن الخفيف.
Sandbox هو حامل للتكامل الخارجي (PSP و KYC ومجمعات الألعاب) مع بيانات مزيفة وبروتوكولات حقيقية.
QA/Test - اختبارات التكامل و e2e، إصلاحات البيانات المستقرة، الانحدارات.
المرحلة/Pre-Prod - المخطط في أقرب وقت ممكن من الإنتاج (التكوينات/الحدود/الطوبولوجيا).
معاينة سريعة الزوال - البيئة «على العلاقات العامة» (تعيش لساعات/أيام)، والموارد غير المتصلة بالإنترنت وعنوان URL، والهدم التلقائي بعد الاندماج/الإغلاق.

قاعدة التكافؤ هي "الإعدادات والسياسات والاعتمادات على البنية التحتية في Test/Stage ≈ Prod'، الاختلافات في الأسرار والحدود فقط.

3) أنواع الصناديق الرملية

1. صناديق رمل المزود: توفر PSP/KYC/الألعاب الخارجية نقاط نهاية الاختبار ؛ نضيف طبقة من أجهزة المحاكاة لمحاكاة الحالات النادرة والخطأ (المهلات، 5xx، التوقيعات غير المستقرة).
2. الصناديق الرملية الوظيفية: الحالات المستقلة لخدمات المجال (المدفوعات والمكافآت والإنجازات) + الإصلاحات.
3. صناديق الرمل التدريبية/التجريبية: «عرض» API للشركاء مع DevPortal والمفاتيح والحصص وحد الأسعار.

4) العقود وأجهزة المحاكاة والموكي

اختبار العقود (Pact/Buf): يتفق المستهلك/مقدم الخدمة على المخططات ؛ يتم حظر التغييرات غير المتوافقة على CI.
محاكيات المزود: حافظات حافة اللعب (تراكمات مزدوجة، انجراف الساعة، توقيع HMAC مع طابع زمني منتهي الصلاحية).
Event Fixes (Kafka/NATS): Case Library 'payment. مأذون به '،' kyc. تم التحقق من '،' لعبة. مستديرة. استقر '.
حقن الخطأ: التأخيرات الخاضعة للرقابة، ومعدل التسرب، والرسائل غير المطلوبة.

مثال على توقيع HMAC في صناديق الويب الرملية:

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

5) بيانات الاختبار، GDPR/PCI وإخفاء الهوية

لا تستخدم أبدًا PII/PAN الحقيقي خارج الإنتاج.
إخفاء الهوية: توليد المواد التركيبية + ترميز الحقول الحساسة ؛ القائمة البيضاء للحسابات التجريبية فقط.
مصانع البيانات: مصانع المستخدم/المعاملات/الجلسات ذات الهوية والحالات التي يمكن التنبؤ بها.
البذور الحتمية: إصلاحات متطابقة بين جولات الاختبار وأيام الأربعاء.
سياسة الاحتفاظ: التنظيف التلقائي لبيئات المعاينة وقواعد بيانات الاختبار.

6) الأسرار والوصول

أسرار منفصلة أيام الأربعاء ؛ الائتمانات المؤقتة والأدوار المقيدة.
KMS/HSM والتناوب ؛ الأسرار المستبعدة في Git.
RBAC/ABAC for QA/Stage; مراجعة الدخول، كسر الزجاج فقط من خلال التفاوض.

7) إمكانية الرصد في البيئات غير الصناعية

جذوع الأشجار - مصممة، بدون مؤشر الاستثمار الدولي، مع إخفاء ؛

Metrics latency p50/p95/p99، معدل الخطأ، الإنتاجية، DLQ، retrai ؛

التعقب من طرف إلى طرف من طلب الإدخال إلى جهاز المحاكاة ؛

لوحات القيادة كرمز - يتم تحديث لوحات القيادة والتنبيهات بجوار الخدمة.

8) بيئات المعاينة سريعة الزوال (لكل PR)

السلوك الافتراضي:
  • PR → CI يجمع صورة، ويولد هجرات، ويرفع مساحة الاسم «pr- » في Kubernetes ؛
  • إصدار معاينة عناوين URL ورموز مستخدمي الاختبار ؛
  • والتتبع/المقاييس الممكنة ؛ عندما يتم إغلاق العلاقات العامة، يتم حذف البيئة.
مثال موضح لمساحة الاسم على العلاقات العامة:
yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments

9) التنمية المحلية: Compose/Testcontainers

الحد الأدنى من تركيبة الرصيف. لتعمل محليا:
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، Time-to-Wallet.
حقن الفوضى: قطع الاتصال بمقدمي الخدمات، وزيادة زمن الوصول، والشبكات «غير المستقرة».
يتم فحص سياسات قاطع الدائرة/التراجع على المسرح ؛ يذهب الغطس إلى DLQ ويكرر.

11) سياسات التراجع وإعادة التشغيل

إعادة تشغيل بوابة للأحداث من DLQ (أوضاع يدوية/تلقائية، مرشحات حسب المفاتيح).
قواعد الهجرة: التنظيف/الهبوط والتجفيف في المعاينة/المرحلة ؛ الحماية من التغييرات التخريبية.

12) التكامل مع DevPortal

فهرس صناديق الرمل ومقدمي الخدمات، المتطلبات الميدانية، أمثلة على الاستفسارات.
زر «معاينة مفتوحة» لكل علاقات عامة/فرع ؛ أداة مقاييس SLO/SLA.
توليد مجموعات SDK و Postman/Insomnia من العقود.

13) أمان محيط صندوق الرمل

WAF + IP-allowist لصناديق الرمل الخارجية ؛

والحصص وحدود الأسعار لكل مفتاح ؛

وفرادى المجالات/المناطق الفرعية ؛ والإزالة التلقائية للمفاتيح الخاملة ؛

مسح نقاط ضعف الصورة والاعتماد على كل بناء.

14) العمليات: من يستخدم وكيف

المطورون - محليًا ومعاينة، ردود فعل سريعة.
QA - اختبار/مرحلة مستقرة مع بيانات ومحاكاة مُدارة.
الشركاء - Sandbox الخارجي مع DevPortal والحصص والمراقبة.
SRE/Platform - ملامح التحميل والفوضى والتحقق من SLO.

15) قائمة مرجعية لإطلاق Sandbox

  • العقود في السجل، تشمل أجهزة المحاكاة النجاح/الأخطاء/المهلات/التكرار.
  • اختبار البيانات الاصطناعية، الحتمية، لا PII/PAN.
  • أسرار من KMS، أدوار محدودة، مراجعة ممكنة.
  • تتوفر مقاييس/مسارات/سجلات ؛ تنبيهات إلى ميزانية الخطأ و DLQ.
  • ترتفع المعاينات سريعة الزوال على العلاقات العامة ويتم هدمها تلقائيًا.
  • يتم وصف ملفات تعريف الأحمال وسيناريوهات الفوضى بالرمز.
  • تم التحقق من سياسات الهجرة وإعادة الحدث على المسرح.
  • تنشر DevPortal الأدلة ومجموعات الاستفسارات.

16) خارطة طريق التنفيذ

M0-M1 (MVP): البيئات المحلية (Compose)، جهاز محاكاة PSP/KYC الأساسي، اختبارات العقد في CI، مساحات المعاينة في K8s.
M2-M3: كتالوجات التركيبات، لوحات القيادة كرمز، إعادة تشغيل يدوية DLQ +، ملفات تعريف التحميل.
M4-M6: صندوق الرمل الخارجي الكامل مع المفاتيح/الحصص، البنية التحتية للفوضى، SDK autogen، «نسختان بالتوازي» سياسة الهجرة.
M6 +: مرحلة موزعة جغرافيًا مع فشل، وتوجيه ذكي لمقدمي الخدمة عبر SLA في الاختبارات، ونصوص تدريب آلية في DevPortal.

17) نموذج النضج البيئي (موجز)

1. أساسي - هناك اختبار/مرحلة، بيانات يدوية، عزلة ضعيفة.
2. متقدم - محاكاة، اختبارات عقد، قابلية للمراقبة، معاينات جزئية.
3. خبير - بيئات لكل علاقات عامة، فوضى/تحميل كرمز، DevPortal، أمان قوي وأتمتة كاملة.

خاتمة موجزة

صناديق الرمل وبيئات الاختبار المصممة بشكل صحيح هي «الوسادة الهوائية» و «مسرع» التسليم. توفر العزلة والتكافؤ مع الإنتاج وأجهزة محاكاة المزود وبيانات الاختبار الحتمية وإمكانية المراقبة القوية وأتمتة بيئات المعاينة رمزًا سريعًا وموثوقًا به للتحقق → دورة الإصدار →، مما يقلل من مخاطر الانحدار وتبسيط تحجيم النظام الأساسي.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.