GH GambleHub

שיטות DevOps ו ־ CI/CD

1) מטרות ועקרונות

מהיר ובטוח: מחזורים קצרים, קבוצות קטנות של שינויים, בדיקות אוטומטיות.
יכולת חזרה: תשתית כקוד (ICC), סביבה = מדיניות קוד +.
יכולת תצפית: מדדים/שבילים/רישומים מחוץ לקופסה, SLO כחוזה.
ציות: ביקורת, שינוי שליטה, בידוד נתונים אזורי.

כלל הזהב: ”קודם איכות, אחר כך מהירות - אחרת מהירות לעולם לא תופיע”.

2) ענפים וסביבות

דגלים בסיסיים מבוססי תא מטען + - בחירה בסיסית.

קווי תכונה קצרים (2-5 ימים), מיזוג יומי בתא מטען.
דגלים בצד השרת למשלוח אינקרמנטלי וגלגולים מאובטחים.
סביבות Git: 'dev' au 'stage' # 'prod' (+ אזורי' prod-eu ',' prod-latam ').
קידום חפצים: תמונה אחת שנאספה מקודמת באמצעי התקשורת (תג בלתי ניתן לשינוי באמצעות עיכול).

כאשר GitFlow: שחרור נדיר של אסיפות רגולטוריות/SDKs - אז לשחרר ענפים + ”מתקשים”.

3) פירמידה איכותית ו ”קו אדום” ‏

1. ניתוח סטטי (SAST, לינטרים, רישיונות).
2. בדיקות מבוססות יחידה/נכס (שניות).
3. בדיקות חוזה (CDC) עבור API ואירועים (OpenAPI/ASyncAPI, Schema Registry).
4. אינטגרציה (Testcontainers, ברוקרים מקומיים).
5. E2E שבילים קריטיים: רישום # KYC # הפקדה = שיגור המשחק.
6. בדיקות עומס/כאוס לתשלומים/ארנק/ספקי משחק.

האיכות לא עוברת = ההפקדה חסומה. אין ”יוצאים מן הכלל ידני” ללא שינוי שיא.

4) שרשרת אספקה

SBOM עבור כל תמונה/חבילה (CyclonDX/SPDX).
חתימות חפצים (cosign), מדיניות ”חתומה רק” בכניסה.
SCA/Dependabot: נקודות תורפה ורישיונות.
מקורה/SLSA: אספות רבייה, סוכן מבנה סגור, תביעות.
סודות: במנהל (KMS/External Secrets), אף לא סוד אחד בריפו/יומן.

5) GitOps IaC

אינפרה כקוד: Terraform/Pulumi for Cloud; הגה/קוסטומייז עבור K8.
בקר GitOps (ArgoCD/Flux): מניפסוס הצהרתי, ביקורת יחסי ציבור, עקבות ביקורת.
חלונות/הקפאה: שבועות טורניר/שעות שיא - הפסקת ייצור אוטומטית.
מדיניות אופ "א/קיוורנו: לא 'עדכני', ללא שורש, ללא קריאה בלבד FS, hostPath Path disallow.

6) משלוח מתקדם

קנרית: 1. פי 5. פי 10. פי 25. פי 50. 100% על מדדי מעקה בטיחות (p95 latency, 5xx, שגיאות בתקציב).
כחול-ירוק: מתג מהיר + תוכנית רולבק.
Shadow/Mirroring: העתק בקשות מבלי להשפיע על התגובה (עבור מתאם PSP חדש).
דגלי תכונה: הכללה לפי קטע (אזור/תפקיד/שותף/ערוץ) + kill-switch.

7) נדידת מסד נתונים (התרחבות וחוזה)

שלב 1: להרחיב את התרשים (עמודות חדשות/אינדקסים) - תואם לקוד הישן.
שלב 2: זרוק קוד שכותב לשתי הגרסאות/שדות.
שלב 3: נדידת מידע מרקע ג 'ובה, מדדי התקדמות.
שלב 4: לעבור קריאה לשדות חדשים.
שלב 5: הסרת הישן היא שחרור נפרד.
חסימת איסור DDL בפריים טיים; לנדידה באינטרנט בשולחנות גבוהים.

8) יכולת תצפית ו ־ SLO

מטריצות: RPS, p50/95/99, 4xx/5xx, רוויה (CPU/Mem/תור), DLQ/broker lag.
TTP (זמן משחק), TTW (זמן לארנק), FTD-הצלחה, KYC-TTV.
עקבות: איתור מהשער למסד הנתונים.
SLO: לדוגמה, ”הפקדה p95 יומן 300-500 mS”, הצלחה ms 98. 5%, זמינות 99. 9%`.
התראות קצב צריבה + הפוגה אוטומטית משחררת במהלך הידרדרות.

9) תקריות, לאחר המוות, משמרות

ספרי ריצה על זרמים קריטיים (הפקדה/פלט/ACC, משחק חי).
סולם עדיפות: P1...P4, בעלים, ETA, תקשורת (באנר, עמוד מצב, שותפים).
ללא דופי לאחר המוות עם פריטי פעולה ותאריכים.
חלופות בכוננות, התראות צ 'אט, עדכוני מצב כל N דקות.
נתיב רציף: מי/מתי/מה פורסם (להתחייב, חפץ, סביבה, דגל).

10) ביטחון ותאימות (DevSECOPs)

SAST/DAST/IAST, סריקה סודית במודיע.
servis↔servis MTLS, JWT עם TTL קטן, סיבוב מפתח.
מיסוך PII/PAN ברישומים/רצועות; יומני פעילות ניהול תולעת.
גיאו-הפרדה: אשכולות/מסדי נתונים לפי אזור, ניתוב שער.
שינוי ניהול: כרטיס/אישור לאזורים רגישים (ארנק/גבולות).

11) מדדים של דורה ואינפוזיה

תדירות פריסה (שחרור יומי קטן).
עופרת זמן לשינויים (אידיאלי: לצפות).
MTTR (התאוששות: דקות/שעות).
שינוי שיעור הכישלון (יעד סימון 15%).
FinOps: עלות של סביבות, פדיון RPS, בריכות חמות, הפוגה אוטומטית של עובדים, ”עלות לכל עסקה”.

12) מפרט iGaming

פסגות (טורנירים/חי): הקפאת שינויים גדולים, חימום מטמון/תמונות, מכסת מגברים.
תשלומים/ארנק: בריכות/צמתים בודדים, SLOS מוגבהת, Canary rollout by region, טלמטריה כפולה על ידי ספקי 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; פרוד-rolout - כנרית, עם מעקות בטיחות.

14) רשימות בדיקה

לפני המיזוג לעיקרי

[ ] יחידה/מרכז לבקרת מחלות/אינטגרציה ירוקה.
[ ] לינטרס/SAST/רישיונות נקיים.
[ ] תוכנות מעודכנות של OpenAPI/ASyncAPI ונדידת מסדי נתונים.
[ ] דגלי פיש נוספו, חסידים מוגדרים.

לפני שחרור בדרבן

[ ] תמונה חתומה, SBOM מצורף, פגיעות HIGH/CRIT סגור.
[ ] דאשבורדים/התראות נוצרו; שערי SLO מחוברים.
[ ] תוכנית Rollback, להרוג-מתג, צל (אם יש צורך).
[ ] ההגבלות האזוריות ומדיניות המידע אושרה.

תקריות

[ ] Runbook מצא ומעודכן.
[ תקשורת ] למשתמשים/שותפים (תבנית, זמן הגעה משוער).
[ ] לאחר המוות ב 48 שעות, פריטי פעולה עם תאריכים.

15) אנטי דפוסים

”הרכבה מחדש לכל סביבה” (ללא קידום חפץ).
פריסת צעדים ידנית ללא ביקורת/חזרה.
הגירת מסד נתונים ”ראש בראש”, תגובות API לא מתאימות.
סודות במשתנים מודיע או במאגר.
תכונות קטסטרופליות ללא דגל/רולבק.
היעדר מעקה בטיחות/SLO על שחרור כנרית.
יומנים עם PII/PAN, אין מיסוך.

16) תבניות מיקרוקופיה שימושיות

שחרור (לשותפים):
  • "אנחנו מגלגלים את העדכון של מודול התשלום בשלבים (10% -100%). עיכובים לטווח קצר של עד 2 דקות אפשריים. זמן הגעה משוער לסיום - 9 בערב"
תקרית (כרזה במוצר):
  • "ספק התשלומים אקס לא יציב. ההרשמה יכולה לקחת עד 15 דקות. אנחנו עובדים על תיקון. עדכון הסטטוס הבא בעוד 30 דקות"
רולבק:
  • "העדכון בהמתנה בשל עיכובים הולכים וגוברים. נחזיר את הגרסה הקודמת. נתונים ופעולות נשמרו" ‏

17) תהליך יישום (4 ספרינטים)

1. תקני איכות וצינור: SAST/Unit/CDC, תמונה אחת, חתימות, SBOM.
2. GitOps + סביבות: Helm/Kustomize, ArgoCD, קידום חפץ, מדיניות סודית.
3. שחרור מתקדם ושערי SLO: כנרית/צל, מעקות בטיחות, רכזת אוטומטית.
4. אמינות ועלות: בדיקות כאוס, אוטוסקלה/בריכות חמות, לוחות מחוונים.

גיליון רמאות סופי

תא מטען + דגלים + קבוצות קטנות = מהירות ללא לחץ.
חפץ אחד חתום + SBOM = שרשרת אספקה מבוקרת.
מדיניות GitOps + = רבייה וביקורת.
שערים Canary/Blue-Green + SLO = שחרור מאובטח.
הרחבה וחוזה עבור DB = אפס זמן השבתה.
תצפית ודורה = שיפורים הניתנים לניהול.
בידוד אזורי וציות = ציות לחוקים ואמון.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.