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

צרו קשר

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

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

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

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

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