GH GambleHub

ممارسات DevOps و CI/CD

1) الأهداف والمبادئ

سريع وآمن: دورات قصيرة، دفعات صغيرة من التغييرات، فحوصات تلقائية.
التكرار: البنية التحتية كرمز (IaC)، البيئة = رمز + سياسة.
إمكانية الرصد: المقاييس/المسارات/السجلات خارج الصندوق، SLO كعقد.
الامتثال: مراجعة الحسابات، ومراقبة التغيير، وعزل البيانات الإقليمية.

القاعدة الذهبية: «الجودة الأولى، ثم السرعة - وإلا فلن تظهر السرعة أبدًا».

2) الفروع والبيئات

علامات + قائمة على الجذع - اختيار أساسي.

خطوط قصيرة (≤ 2-5 أيام)، تندمج يوميًا في صندوق السيارة.
أعلام جانب الخادم للتسليم التدريجي والتراجع الآمن.
بيئات Git: 'dev' → 'stage' → 'prod' (+ regional' prod-eu ',' prod-latam').
ترويج القطع الأثرية: يتم الترويج لصورة واحدة مجمعة من خلال وسائل الإعلام (علامة ثابتة عن طريق الهضم).

عندما GitFlow: إصدارات نادرة من التجمعات التنظيمية/SDKs - ثم إطلاق الفروع + «التصلب».

3) هرم الجودة و «الخط الأحمر»

1. التحليل الثابت (SAST، البطانات، التراخيص).
2. وحدة/اختبارات قائمة على الممتلكات (ثوان).
3. اختبارات العقد (CDC) لواجهات برمجة التطبيقات والأحداث (OpenAPI/AsyncAPI، Schema Registry).
4. التكامل (Testcontainers، السماسرة المحليون).
5. E2E المسارات الحرجة: التسجيل → شركة KYC → الإيداع → إطلاق اللعبة → الإنتاج.
6. اختبارات التحميل/الفوضى للمدفوعات/المحفظة/مزودي الألعاب.

لا تمر الجودة → يتم حظر الوديعة. لا توجد «استثناءات يدوية» بدون تغيير السجل.

4) سلسلة التوريد

SBOM لكل صورة/طرد (CycloneDX/SPDX).
توقيعات القطع الأثرية (كوزين)، سياسة «توقيع فقط» في القبول.
SCA/Implobot: نقاط الضعف والتراخيص.
المصدر/SLSA: تجميعات قابلة للتكرار، عامل بناء مغلق، شهادات.
الأسرار: في المدير (KMS/الأسرار الخارجية)، لا يوجد سر واحد في إعادة الشراء/السجلات.

5) GitOps и IaC

Infra as Code: Terraform/Pulumi for Cloud; Helm/Kustomize for k8s.
وحدة تحكم GitOps (ArgoCD/Flux): بيانات إعلانية، مراجعة العلاقات العامة، مسار التدقيق.
النوافذ/التجميد: أسابيع البطولة/ساعات الذروة - التوقف التلقائي لإصدارات الإنتاج.
سياسات OPA/Kyverno: لا «: أحدث»، غير جذري، FS للقراءة فقط، HostPath غير مسموح به.

6) التسليم التدريجي

Canary: 1→5→10→25→50→100٪ على مقاييس guardrail (زمن الوصول p95، 5xx، حرق ميزانية الخطأ).
الأزرق الأخضر: خطة التبديل السريع + التراجع.
Shadow/Mirroring: نسخ الطلبات دون التأثير على الاستجابة (لمحولات PSP الجديدة).
أعلام الميزات: تضمين حسب القطاع (المنطقة/الدور/الشريك/القناة) + مفتاح القتل.

7) هجرات قاعدة البيانات (التوسيع والعقد)

الخطوة 1: توسيع المخطط (أعمدة/فهارس جديدة) - متوافقة مع الرمز القديم.
الخطوة 2: رمز التفريغ الذي يكتب إلى كلا الإصدارين/الحقول.
الخطوة 3: نقل بيانات الوظيفة الأساسية ومقاييس التقدم.
الخطوة 4: تبديل القراءة إلى حقول جديدة.
الخطوة 5: إزالة القديم هو إصدار منفصل.
منع حظر DDL في وقت الذروة ؛ للجداول العالية - الهجرة عبر الإنترنت.

8) إمكانية الرصد و SLO

المقاييس: RPS، p50/95/99، 4xx/5xx، التشبع (CPU/mem/quelue)، تأخر DLQ/الوسيط.
مقاييس الأعمال: TTP (وقت اللعب)، TtW (وقت المحفظة)، نجاح FTD، KYC-TtV.
الآثار: التعرف النصيف من البوابة إلى قاعدة البيانات.
SLO: على سبيل المثال، «Deposit p95 ≤ 300-500 ms'،» success ≥ 98. 5٪ '،' توافر ≥ 99. 9%`.
تنبيهات معدل الحرق + إطلاقات التوقف التلقائي أثناء التحلل.

9) الحوادث، بعد الوفاة، النوبات

دفاتر عن التدفقات الحرجة (الإيداع/الناتج/لجنة التنسيق الإدارية، الألعاب الحية).
مقياس الأولوية: P1...P4، المالك، ETA، الاتصال (لافتة، صفحة الحالة، الشركاء).
تشريح الجثة بدون لوم مع عناصر العمل والتواريخ.
التناوب عند الطلب، تنبيهات الدردشة، تحديثات الحالة كل N دقيقة.
مسار الرصيف: من/متى/ما نشر (ارتكب، قطعة أثرية، بيئة، علم).

10) الأمن والامتثال (DevSecOps)

SAST/DAST/IAST، مسح سري في CI.
mTLS servis↔servis، JWT مع TTL صغير، دوران المفتاح.
إخفاء PII/PAN في سجلات/مسارات ؛ سجلات نشاط إدارة WORM.
الفصل الجغرافي: المجموعات/قواعد البيانات حسب المنطقة، مسار البوابة.
إدارة التغيير: التذكرة/الموافقة على المناطق الحساسة (المحفظة/الحدود).

11) مقاييس DORA و FinOps

تواتر النشر (إصدارات صغيرة يومية).
الوقت المناسب للتغييرات (مثالي: شاهد).
MTTR (استرداد: دقائق/ساعات).
معدل فشل التغيير (الهدف ≤ 15٪).
FinOps: تكلفة البيئات، تخزين RPS، حمامات السباحة الدافئة، التوقف التلقائي للعمال، «التكلفة لكل معاملة».

12) خصوصية iGaming

القمم (البطولات/البث المباشر): تجميد التغييرات الرئيسية، تسخين ذاكرة التخزين المؤقت/الصور، تعزيز الحصص.
المدفوعات/المحفظة: مجمعات/عقد فردية، ومنظمات SLO مرتفعة، وطرح الكناري حسب المنطقة، والقياس عن بعد المزدوج من قبل مقدمي PSP.
CC/الامتثال: إيقاع منفصل للإطلاقات، التحديثات اللاحقة الإلزامية للامتثال.
الشركاء/الشركات التابعة: تأمين SDK ونسخة API مع نافذة دعم ومراقبة العملاء القدامى.

13) مثال CI/CD (YAML، GitHub Actions → ArgoCD)

yaml name: ci-cd on:
push:
branches: [ main ]
paths: [ "services/wallet/" ]
jobs:
build_test_scan:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Setup Node uses: actions/setup-node@v4 with: { node-version: 22 }
- run: npm ci --omit=dev working-directory: services/wallet
- run: npm test -- --ci working-directory: services/wallet
- name: Lint & SAST run: npm run lint && npm run sast working-directory: services/wallet
- name: Build image run:
docker build -t registry. local/wallet:${{ github. sha }} -f Dockerfile.
cosign sign --key $COSIGN_KEY registry. local/wallet:${{ github. sha }}
- name: SBOM & Scan run:
syft packages registry. local/wallet:${{ github. sha }} -o cyclonedx-json > sbom. json trivy image --exit-code 1 --severity HIGH,CRITICAL registry. local/wallet:${{ github. sha }}
- name: Push image run: docker push registry. local/wallet:${{ github. sha }}

deploy_stage:
needs: build_test_scan runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Bump Helm values (image tag)
run: yq -i '.image. tag = "${{ github. sha }}"' helm/wallet/values-stage. yaml
- name: Create PR to gitops repo run: gh pr create -R org/gitops -B stage -H stage-bump/wallet-${{ github. sha }} -t "wallet:${{ github. sha }}" -b "Promote to stage"

promote_prod:
if: github. ref == 'refs/heads/main'
needs: deploy_stage runs-on: ubuntu-latest steps:
- name: Gate: SLO/quality checks run:./scripts/gates/check_stage_health. sh # p95, 5xx, e2e ok
- name: Canary 10%
run:./scripts/gitops/canary. sh wallet ${{ github. sha }} 10
- name: Auto-pause on degradation run:./scripts/gates/guardrails. sh./scripts/gitops/rollback. sh wallet
- name: Roll to 100%
run:./scripts/gitops/rollout. sh wallet ${{ github. sha }} 100
💡 فكرة: جمع وتوقيع صورة واحدة، ونشر SBOM، والترويج من خلال GitOps ؛ طرح حث - كناري، مع حواجز حماية.

14) القوائم المرجعية

قبل الاندماج إلى الرئيسي

  • الوحدة/مركز السيطرة على الأمراض/التكامل الأخضر.
  • الخطوط/SAST/التراخيص نظيفة.
  • تحديث مخططات OpenAPI/AsyncAPI وهجرات قاعدة البيانات.
  • أعلام Fiche مضافة، follbacks محددة.

قبل الإصدار في الحث

  • توقيع الصورة، مرفق SBOM، إغلاق نقاط الضعف HIGH/CRIT.
  • إنشاء لوحات معلومات/تنبيهات ؛ بوابات SLO متصلة.
  • خطة التراجع، مفتاح القتل، الظل (إذا لزم الأمر).
  • تم تأكيد القيود الإقليمية وسياسة البيانات.

الحوادث

  • تم العثور على كتاب التشغيل وتحديثه.
  • الاتصال بالمستخدمين/الشركاء (نموذج، ETA).
  • تشريح الجثة في الساعة 48، بنود العمل مع التواريخ.

15) الأنماط المضادة

«إعادة التجميع لكل بيئة» (لا ترويج للقطع الأثرية).
نشر خطوات يدوية دون مراجعة/تكرار.
هجرات قاعدة البيانات «وجهاً لوجه»، استجابات API غير متوافقة.
أسرار في متغيرات CI أو في المستودع.
ميزات كارثية بدون علم/تراجع.
عدم وجود SLO/حواجز حماية عند إطلاق سراح الكناري.
سجلات مع PII/PAN، بدون قناع.

16) قوالب مجهرية مفيدة

الإفراج (للشركاء):
  • "نحن نطرح تحديث وحدة الدفع على مراحل (10%→100٪). من الممكن حدوث تأخيرات في التسجيل على المدى القصير تصل إلى 2 دقائق. ETA من الانتهاء - 9 مساءً EET"
الحادث (لافتة في المنتج):
  • "مزود الدفع X غير مستقر. يمكن أن يستغرق التسجيل ما يصل إلى 15 دقيقة. نحن نعمل على إصلاح. التحديث التالي للحالة في غضون 30 دقيقة"
التراجع:
  • "التحديث معلق بسبب التأخيرات المتزايدة. نعيد النسخة السابقة. تم حفظ البيانات والعمليات"

17) عملية التنفيذ (4 سباقات سريعة)

1. معايير الجودة وخط الأنابيب: SAST/Unit/CDC، صورة واحدة، توقيعات، SBOM.
2. بيئات GitOps +: Helm/Kustomize، ArgoCD، ترويج القطع الأثرية، السياسة السرية.
3. الإصدارات التدريجية وبوابات SLO: كناري/ظل، حواجز حماية، مركز تلقائي.
4. الموثوقية والتكلفة: اختبارات الفوضى، أحواض السباحة الذاتية/الدافئة، لوحات تحكم FinOps.

ورقة الغش النهائية

الجذع + الأعلام + الدفعات الصغيرة = سرعة خالية من الإجهاد.
قطعة أثرية موقعة واحدة + SBOM = سلسلة إمداد خاضعة للرقابة.
سياسات GitOps + = قابلية الاستنساخ والتدقيق.
بوابات Canary/Blue-Green + SLO = إصدارات آمنة.
التوسيع والعقد لـ DB = صفر توقف.
إمكانية الرصد و DORA = تحسينات يمكن التحكم فيها.
العزلة والامتثال الإقليميان = الامتثال للقوانين والثقة.

Contact

اتصل بنا

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

بدء التكامل

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

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

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