Avtomatlaşdırma alətləri
(Bölmə: Texnologiya və Infrastruktur)
Qısa xülasə
iGaming-də avtomatlaşdırma, fich (tez-tez downtime olmayan buraxılışlar) tədarükünü sürətləndirən, keyfiyyəti sabitləşdirən (vahid yoxlamalar), hadisələri azaltan (SRE) və dəyəri idarə edən (FinOps) sistemli bir təcrübə və alətlərdir. Açar təbəqələr: CI/CD, IaC, proqramların və məlumatların orkestri, sirlər və siyasətlər, müşahidə və avtomatlaşdırma, chat prosesləri, maliyyə avtomatlaşdırılması.
1) Avtomatlaşdırma xəritəsi: qatlar və rollar
Dev-qat: xidmət şablonları, SDK/müştərilərin avtomatik generasiyası, testlər, statistik analizlər.
Build/Release: CI konveyerləri, artefaktlar, konteynerləşdirmə, imzalar.
Deploy/Runtime: K8s/Helm/Argo operatorları, progressive delivery (canary/blue-green).
Data/ETL: DAĞ orkestrasiyası, inkremental modellər, DQ/lineage.
SRE: avtoskeyl, kod kimi runbooks, risklər → fəaliyyət.
Təhlükəsizlik/Compliance: Siyasət-as-Code, sirləri, audit.
FinOps: büdcələr, kvotalar, avto optimallaşdırma.
2) CI/CD: təchizat konveyerləri
Məqsədlər: sürətli, təkrarlanan və təhlükəsiz buraxılışlar.
Tipik pipeline
1. CI: linters, vahid, SCA/SAST, konteyner montaj, konteyner test.
2. Keyfiyyət testləri: e2e/müqavilə testləri, müvəqqəti DB miqrasiyası, mühit testi.
3. Artefaktların imzası: şəkillər/siyahılar, sertifikatlar (yığma yolu, asılılıq versiyası).
4. CD: kanar və ya blu-yaşıl deploy, SLO/metrik avtomatik geytalar.
5. Promosyon: Dev → Stage → Prod «yaşıl» yoxlamalar qaydasına əsasən.
yaml jobs:
build-and-test:
steps:
- run: make test
- run: docker build -t registry/app:${GIT_SHA}.
- run: trivy image --exit-code 1 registry/app:${GIT_SHA}
- run: cosign sign --key $COSIGN_KEY registry/app:${GIT_SHA}
3) Kod kimi infrastruktur (IaC) və platforma mühəndisliyi
Hədəf: mühiti determinik şəkildə yaratmaq və yeniləmək.
Terraform: yükləmə resursları (VPC, klasterlər, DB, növbələr).
Helm/ArgoCD: Kubernetes (GitOps) proqramlarının bəyannaməli buraxılışları.
Ansible: konfiqurasiya VM/bastions/sistem rolları.
Modullar və reuzlar: reyestrlər, növbələr, sirlər, alertlər üçün modullar kitabxanası.
hcl module "payments_db" {
source = "modules/mysql"
name = "payments"
size = "r6g.large"
backups = { retention_days = 7, pitr = true }
tags = { env = var.env, owner = "platform" }
}
4) Proqramların orkestri və buraxılış strategiyası
Kubernetes: автоскейл (HPA/KEDA), PodDisruptionBudget, readiness/liveness.
Progressive delivery: Argo Rollouts/Flagger — canary, blue-green, shadow.
Şəbəkə təbəqəsi: xidmət-meş (mTLS, retry/breaker, vaxt həddi).
Secrets: External Secrets/Sealed Secrets, rotasiya.
yaml spec:
strategy:
canary:
steps:
- setWeight: 10
- pause: { duration: 5m }
- setWeight: 50
- analysis:
templates: [{ templateName: slo-latency-check }]
5) Verilənlərin orkestri və analitikası
DAG orkestrləri (Airflow/analogları): asılılıqlar, retralar, SLA, alertlər.
İnkrementallıq: Partisionlara görə MERGE/overwrite, «su işarələri».
DQ/Lineage: avtomatik keyfiyyət testləri, asılılıq qrafiki.
Avto bərpa: eksponent fasilə ilə retralar, kompensasiya jobları.
python with DAG("ggr_daily", schedule="0 ") as dag:
bronze = ingest_cdc("bets")
silver = cleanse(bronze)
mart = build_mart_ggr(silver)
bronze >> silver >> mart
6) Policy-as-Code və Təhlükəsizlik
Məqsəd: avtomatik olaraq təhlükəli dəyişiklikləri rədd etmək.
OPA/Gatekeeper/Conftest: klasterlər və manifestlər üçün siyasət.
Image Scan və IaC: Trivy/Checkov - CI.
Sirlər: yalnız xarici menecerlər vasitəsilə manifestlərdə gizli qadağa.
RBAC şablonları: xidmətlər/komandalar üçün rollar, cluster-admin default qadağan.
rego deny[msg] {
input.kind == "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot msg:= "Containers must run as non-root"
}
7) Müşahidə və avto-remediasiya (SRE)
Metrika/log/treys: vahid agentlər, 'trace _ id' tərəfindən korelasiya.
SLO/alertlər: p95 latency, error-rate, saturation; Runabuk linkləri ilə alertlər.
Avtomatik hərəkətlər: deqradasiya zamanı podların yenidən başlaması, növbə ilə scale-out, ehtiyata keçid.
Kod kimi hadisələr: post-mortem şablonları, çek vərəqləri, kontekstin avtomatik toplanması.
yaml if: latency_p95 > 300ms for 5m do:
- scale: deployment/payments-api +3
- run: kubectl rollout restart deployment/gw
- notify: chatops#incidents
8) ChatOps və özünə xidmət
Chat komandaları: deploy/rollback, fich, cache qızdırılması.
Gaides-bot: komanda Runabuk və Dashboard links verir.
Approval-workflow: Prod, log audit üçün əl geytaları.
/deploy payments-api --version=1.24.3 --env=prod
9) Testlər və keyfiyyət: shift-left
API müqavilə testləri (OpenAPI/consumer-driven).
DB-miqrasiya: CI-də dry-run, müvəqqəti DB/namespace-də miq-test.
Perf testləri: latency p95/p99, RPS, versiyadan versiyaya deqradasiya.
Xaos testləri: qovşaqların bağlanması, şəbəkənin gecikməsi, rutin pozucu.
10) FinOps və dəyər nəzarəti (avtomatlaşdırma)
Kvotalar/limitlər: CPU/RAM/GPU, storage; bahalı siniflərin məhdudlaşdırılması.
Qiymətə avtoskeyl: gecə dev-klasterlərin söndürülməsi, spot-hovuzların hüquqları.
Budget-alertlər: gündəlik limitlər, namespace/komanda üzrə qiymət hesabatı.
Small files/replikalar: lake avtomatik kompakt, Bronze üçün TTL, log sıxılması.
yaml if: cluster.utilization < 20% and time in [20:00-07:00]
do:
- scale: jobs/dev- to 0
- hibernate: db-nonprod
11) Təhlükəsizlik və uyğunluğun avtomatlaşdırılması
PII axınları: datasetlərin etiketlənməsi, maskalanması, icazəsiz bölgələrə ixracın qadağan edilməsi.
Asılılıq taraması: CVE fiksasiyaları ilə avto-PR, kritik buraxılışın bloklanması.
Audit: dəyişməz qeydlər (WORM), məlumatlara/sirlərə giriş jurnalı.
Lisenziyalar: deploydan əvvəl şəkil/çəki/dataset lisenziyalarının yoxlanılması.
12) «Qutudan» şablonları (kitabxana)
Xidmət şablon: Dockerfile, Helm-chart, SLO-alertlər, dashboard.
Job-шаблон: CronJob + retry/backoff + idempotency lock.
Data product: DAG + DQ testləri + məhsul pasportu + xətt.
ML-xidmət: Triton/KServe manifest + canary + perf-gate.
13) Giriş çek siyahısı
1. Əsas xidmətlər və vitrinlər üçün SLO/SLA müəyyən edin.
2. GitOps daxil edin: bütün manifestlər və siyasətlər anbardadır.
3. Artefaktların imzası və keyfiyyətli geytlərlə CI/CD standartlaşdırın.
4. IaC modulları və Helm çartları kitabxanasını qurun.
5. Policy-as-Code və Secrets (Rotation/Shopping) konfiqurasiya.
6. Avtomatik hərəkətlər və Runabooklar ilə müşahidə etməyə başlayın.
7. ChatOps inteqrasiyası: deploy, geri dönüş, alert, yardım.
8. FinOps avtomatlaşdırın: büdcələr, kvotalar, gecə rejimləri.
9. CI-də hardeninq təhlükəsizliyi və uyğunluq çeklərini daxil edin.
10. Mütəmadi olaraq game-day və xaos testləri keçirin.
14) Antipattern
IaC olmadan əl deploes və «qar dənələri» mühit.
Təhlükəsizlik/asılılıq yoxlamaları olmadan və artefaktların imzası olmadan CI.
Anbarlarda/manifestlərdə sirlər.
Kanarilərdə SLO/geytlərin olmaması → «təsadüfi» buraxılışlar.
Avto-remediasiya və runabuk olmadan monitorinq.
büdcə/kvota → gözlənilməz dəyəri yoxdur.
Nəticələr
Yaxşı avtomatlaşdırma dəyişikliyin konveyer istehsalıdır: hər şey kodla təsvir olunur, avtomatik olaraq yoxlanır və təhlükəsiz şəkildə çatdırılır. CI/CD, IaC və GitOps, App və Data Orkestri, Policy-as-Code, SRE Auto Association və FinOps birləşdirərək, iGaming platforması sürətli buraxılışlar, proqnozlaşdırıla bilən p99, idarə edilə bilən dəyər və daha az gecə hadisələri əldə edir.