Logo GH

תשתית טרפורמית כקוד

(סעיף: טכנולוגיה ותשתיות)

תקציר

Terraform הוא כלי IaC בסיסי ליצירת תשתיות ענן iGaming: VPC/subnets, Balancers, מסדי נתונים/אשכולות, תורים/אוטובוסים, KMS/סודות, מקבצי קוברנטס, CDN וניטור. ההצלחה נשענת על ארכיטקטורה מודולרית, מדיניות נוקשה ונעילה, גישת GitOP לשחרור, מדיניות-כקוד, בדיקות אוטומטיות ו-FinOps שקוף.

1) עקרונות IC עבור iGaming

הצהרה: תשתית המתוארת בקוד; אין צעדים ידניים.
Idempotency: ”חל” חוזר נותן את אותה התוצאה.
הפרדת סביבות: dev/stage/prod' מקוד יחיד עם פרמטרים.
הרכב מודול: קטלוג יחיד של מודולים עבור VPC, DB, תורים, K8s, ניטור.
אבטחה ברירת מחדל: רשתות משנה פרטיות, MTLS, זכויות מינימום של IAM.
תצפית ועלות: מדדים/התראות/תקציבים הם גם תחת Terraform.

2) מבנה המאגר

Monorepo variant (דוגמה):

iac/
modules/
vpc/
mysql/
kafka/
eks_aks_gke/
redis/
monitoring/
envs/
prod/
eu-west/
main. tf variables. tf backend. tf stage/
eu-west/
...
dev/
...
policies/
opa/
sentinel/
pipelines/
ci_cd/

האלטרנטיבה היא repo מודולרית (מאגר נפרד לכל מודול) + צרכנים.

3) מודולריות בסיסית (דוגמה ל ־ HCL)

מודול VPC (מודולים/vpc/main. tf):
hcl variable "name" {}
variable "cidr" {}
variable "az_count" { default = 3 }

cloud provider resources (summarized)
resource "cloud_vpc" "this" { name = var. name cidr = var. cidr }
resource "cloud_subnet" "private" {
count = var. az_count vpc_id = cloud_vpc. this. id type  = "private"
}
output "vpc_id" { value = cloud_vpc. this. id }
output "private_subnets" { value = cloud_subnet. private[].id }
צריכת מודול (קנאה/פרוד/eu-west/main. tf):
hcl module "vpc" {
source = "../../modules/vpc"
name  = "prod-eu-west"
cidr  = "10. 20. 0. 0/16"
}

module "mysql" {
source = "../../modules/mysql"
name  = "payments"
vpc_id = module. vpc. vpc_id subnets = module. vpc. private_subnets pitr  = true size  = "r6g. large"
kms_key = module. kms. key_id
}

4) ניהול המדינה ומנעולים

אחורי מרוחק (לדוגמה, אחסון אובייקטים) + מנעולים (DynamoDB/Blob-lock) - מנעו מירוצי הפעלה.
הצפנת גיבוב לאחור והצפנת מצב (KMS).
כללי גישה: רק ל-CI/CD ו-infra בעלים יש זכויות ”חל”; מפתחים - 'תכנית'.

מרחב עבודה נגד ספריות סביבה:
  • מרחב עבודה נוח לסביבות דומות (שכפול),
  • ספריות נפרדות לתצורות מבודדות וטופולוגיות שונות.
גיבוי לדוגמה. tf (מוכלל):
hcl terraform {
backend "s3" {
bucket     = "iac-state-prod"
key      = "eu-west/terraform. tfstate"
region     = "eu-west-1"
dynamodb_table = "iac-state-locks"
encrypt    = true
}
}

5) משתנים, סודות ונתונים רגישים

משתנים. tf + tfvars לסביבות; רגיש = נכון לערכים פרטיים.
סודות אינם מאוחסנים בגיט. השתמש במנהל הסודי/KMS דרך מקור נתונים או ספק.
הצפנת ברירת מחדל: עבור כרכים/גיבויים/תמונות/בסיסי נתונים.
סיבוב: מפתחות וסיסמאות מסתובבים באופן אוטומטי.

hcl variable "db_password" {
type   = string sensitive = true
}

data "external_secret" "db_password" {
conceptual secret source name = "prod/payments/db_password"
}

6) GitOps ו ־ CI/CD עבור Terraform

זרימת PR: 'terraform fmt' au 'init' ix 'validate' ough 'tflint' au' plane 'עם הפלט ל PR * action' apple 'from CI.
קידום סביבתי: שינויים ראשונים ב ”במה”, ואז תג/התמזג ב ”פרוד”.
יומנים וחפצים: שמירת תכנית ודיפה, דו "ח-חפץ.

דוגמה CI (שבר):
yaml steps:
- run: terraform fmt -check
- run: terraform init -upgrade
- run: terraform validate
- run: tflint --enable-rule=terraform_standard_module_structure
- run: terraform plan -var-file=envs/stage/eu-west/vars. tfvars -out tfplan
- run: terraform show -no-color tfplan > plan. txt after April
- run: terraform apply tfplan

7) מדיניות כקוד (אופ "א/סנטינל)

מטרה: לדחות אוטומטית שינויים לא בטוחים/יקרים.

דוגמאות למדיניות:
  • יש צורך בהצפנת משאבים.
  • רק דרך רשימת יוצאי הדופן.
  • מגביל את הגודל של מקרים/אשכולות על ידי סביבה.
  • תגיות דרושות: env ',' בעלים ',' עלות _ מרכז '.
הרעיון מאחורי חוק אופ "א (rego) הוא:
rego deny[msg] {
input. resource. type == "db_instance"
not input. resource. encrypted msg:= "DB must be encrypted at rest"
}

8) בדיקת ICAC

בדיקת תחביר בסיסית מאומתת.
צהבהב בסגנון/אנטי פטריות/מפרנס-מפרט.
הערכת עלויות תקדימית ביחסי ציבור.
Terratest - בדיקות אינטגרציה (Go): להרים/לבדוק/להרוס את הדוכן.
מטבח-טראפורם - בדיקות יחידה עם משאבי אינווריאנטים.
סחיפה-גילוי: תוכנית תקופתית "בקריאה בלבד ו מחוץ לסנכרון התראה.

9) מודולים אופייניים לפלטפורמת ה ־ iGaming

רשת

VPC/VNets/VPC-Peering, רשתות משנה פרטיות/ציבוריות, ניתוב, NAT/Firewall, קבוצות אבטחה/NSG.
DNS/Inflover: Route-Route-Routh-Routh Must, בדיקת בריאות, ניתוב מבוסס ניתוב.

נתונים

MySQL/PostgreSQL: Multi-AZ, PITR, ”auto _ minor _ version _ religed”.
Redis/Memcashed: Multi-AZ, Snapshot/TTL policy.
אגם דאטה/לייקהאוס: דליים, מדיניות, שולחנות (קטלוג/מטסטור).
אשכולות ClickHouse/OLAP: רדידות/שכפול, מדיניות דיסק.

אוטובוסים/תורים

קפקא/פולסר/מנוהל וריאציות, ACL, שימור, תרשימי רישום.

K8s

EKS/AKS/GKE תחת השם NodeGroups, taints/collerations, IRSA/Workload Identity, Ingress/Service Mesh, autoscaling.
אינטגרציה של סודות חיצוניים, פרומתאוס/גראפנה, לוקי/ELK, מנהל-סלט.

Edge/CDN

הפצת CDN, כללי מטמון, WAF, הקלת בוט.

10) משתנים/יציאות/מקומיים - תרגול

מקומיים לערכים מחושבים (מסכות, שמות).
יציאות כמודול API: מינימום נדרש.
משאב בשם '<env> - <אזור> - <תחום> - <רכיב> ".
Tought: ”env”, ”בעלים”, ”cost _ center”, ”critality”, ”pii”.

hcl locals {
name_prefix = "${var. env}-${var. region}-${var. service}"
}
resource "cloud_lb" "api" { name = "${locals. name_prefix}-lb" }

11) ענן רב ואזורים

אבסטרקציה דרך אותם מודולים, ספקים שונים: ”aws',” azurerm', ”google”.
כינוי מספק למשאבים חוצים-אזוריים (DR/שכפול).
הבדלי שירות נסגרים על ידי תנאים ופישפלאגים במודולים.
נתונים הם מקומיים: דליים בודדים/DB לפי אזור (EU/TR/LATAM).

hcl provider "aws" { region = "eu-west-1" alias = "eu" }
provider "aws" { region = "sa-east-1" alias = "latam" }

12) יכולת תצפית והתראות כקוד

לוחות מחוונים, כללי התראה (p95/p99, קצב שגיאה, מעבד/IO), צגי SLO.
רישומי גישה/ביקורת (תולעת), מדדי עלות (על ידי תגית/שם).
תקריות: הודעות צ 'אט, כתובות רנטגן בהטבות משאבים.

13) פינוקס: ערך תחת שליטה

אינפרא-אקוסט בהתראות בתקציב יחסי ציבור +.
מכסות סביבה: הגבלת שיעורי דוגמה/מחסן.
היגיינה אוטומטית: TTL עבור משאבי dev, מדיניות שימור דלי/לוג.
מקום/מראש למשימות לא קריטיות, הזמנה לפרוד.

14) תהליכי נדידה/שינוי

ייבוא של משאבים משפטיים (מיד לאחר מכן - ”תוכנית ”/” ליישם”).
"זז "/" הוסר 'בלוקים בעת חידוש כדי להימנע מהרס.
שינויי זמן אפס: גלגול כפול (כחול-ירוק) עבור קווי מתאר קריטיים (DB/balancers).
שלב אחר שלב: קבוצת משאבים חדשה קודם, אחר כך תנועה, ואז פירוק.

15) בטיחות וציות

חיסיון מינימלי: מודולים יוצרים רק את הזכויות הנדרשות, אל תשתמש "

KMS בכל מקום: הצפנה של כרכים/גיבויים/סודות/מצבים.
סריקת Terraform/IAC ב- CI (SAST for IAC).
סודות מחוץ לגיט: מנהלים סודיים בלבד; סיבוב וביקורת גישה.
אזורי PII: תגי גישה/מדיניות, איסור יצוא בין-אזורי.

16) תבניות לדוגמה

מסד נתונים יחסותי עם PITR (רעיון):
hcl module "db" {
source   = "../../modules/mysql"
name    = "wallet"
multi_az  = true storage_gb = 500 pitr    = true backup_retention_days = 14 deletion_protection  = true
}
מעקב והתראת SLO:
hcl module "slo_latency" {
source = "../../modules/monitoring/slo"
name  = "api-latency-p95"
target_ms = 250 window  = "30m"
alert_channels = ["chatops#incidents"]
}
התפלגות WAF/CDN:
hcl module "cdn" {
source = "../../modules/cdn"
domain = "example. com"
waf_enabled = true cache_ttl  = 600
}

17) רשימת יישום Terraform/ICC

1. בחר את מבנה המאגר (module monorepos + environment directories).
2. הגדרת מצב מרוחק עם מנעולים והצפנה (KMS).
3. הזן GitOps-pipeline: fmt/validate/tflint/plane # review חל.
4. יצירת ספריית מודול (VPC, K8s, DB, תורים, ניטור, CDN, סודות).
5. אפשר סריקות מדיניות-כקוד (OPA/Sentinel) וסריקות IAC במצ "ח.
6. ארגן סודות דרך המנהל, מפתחות - KMS, סיבובים.
7. תוסיף מבחנים: Terratest עבור מודולים קריטיים, Infracost in PR.
8. הגדר SLO/התראות ו ”ניטור כקוד”.
9. הגדרת מכסות/תקציבים ו TTL עבור משאבים שאינם קריטיים.
10. תוכנית הגירה בשלבים (כחול ירוק/שתי מסילות).

18) תרופות אנטי ־ פטריות

מדריך ”פתיתי שלג” של משאבים מחוץ Terraform * סחיפה ותאונות כאשר ”ליישם”.
אחסון מצב מקומי/ללא מנעולים * מירוץ ואובדן עקביות.
סודות בגיט/in 'tfvars ללא הצפנה.
”אלוהים מודול” עבור מאות משאבים = חוסר היכולת לבחון/להשתמש מחדש.
יישום ישיר ממחשב נייד למזון ללא יחסי ציבור וביקורת תוכניות.
התעלמות ממדיניות כקוד/סריקות = דליפות, IP/דליים ציבוריים.
חוסר בתקציבים/אינפרא-אקוסט * עלות בלתי צפויה.

תקציר

Terraform/ICC מעניק לפלטפורמת iGaming יכולת רבייה, מהירות, ובטיחות/עלות מבוקרת. עיצוב מודולרי, מצב נוקשה ו-GitOps, מדיניות אבטחה, אוטוטקסטים ו-FinOps הופכים את התשתית ל ”צינור” אמין - שחרור מהיר ללא השבתה, p99 צפוי ומוכנות לטורנירי שיא ודרישות רגולטוריות.

Contact

צרו קשר

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

Telegram
@Gamble_GC
התחלת אינטגרציה

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

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

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