Otomasyon araçları
(Bölüm: Teknoloji ve Altyapı)
Kısa özet
IGaming'de otomasyon, özelliklerin sunulmasını hızlandıran (kesinti olmadan sık sık serbest bırakılan), kaliteyi dengeleyen (tek tip kontroller), olayları azaltan (SRE-otomatik eylemler) ve maliyeti kontrol eden (FinOps) bir dizi uygulama ve araçtır. Anahtar katmanlar: CI/CD, IaC, uygulama ve veri orkestrasyonu, sırlar ve politikalar, gözlemlenebilirlik ve otomatik işlem, sohbet süreçleri, finansal otomasyon.
1) Otomasyon haritası: katmanlar ve roller
Dev katmanı: hizmet şablonları, SDK/istemci otomatik oluşturma, testler, statik analiz.
Build/Release: CI boru hatları, artifacts, containerization, imzalar.
Dağıtım/Çalışma Zamanı: K8s/Helm/Argo operatörler, aşamalı teslimat (kanarya/mavi-yeşil).
Veri/ETL: DAG orkestrasyonu, artımlı modeller, DQ/soy.
SRE: autoscale, kod olarak runbook, alerty, deystviya.
Güvenlik/Uyumluluk: Kod Olarak Politika, sırlar, denetim.
FinOps: bütçeler, kotalar, otomatik optimizasyon.
2) CI/CD: dağıtım konveyörleri
Hedefler: Hızlı, tekrarlanabilir ve güvenli sürümler.
Tipik boru hattı
1. CI: astarlar, birimler, SCA/SAST, konteyner montajı, konteyner testi.
2. Kalite kontrolleri: e2e/sözleşme testleri, geçici veritabanına geçişler, çevre testi.
3. Eser imzası: görüntüler/grafikler, onaylar (yapı yolu, bağımlılık sürümleri).
4. CD: kanarya veya mavi-yeşil dağıtım, SLO/metriklere göre otomatik kapılar.
5. Promosyon: Dev - Aşama - "Yeşil" kontroller kuralına göre Prod.
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 olarak altyapı (IaC) ve platform mühendisliği
Görev: belirleyici olarak ortamlar oluşturun ve güncelleyin.
Terraform: Bulut kaynaklarının sağlanması (VPC, kümeler, veritabanları, kuyruklar).
Helm/ArgoCD: Kubernetes'te (GitOps) bildirimsel uygulama sürümleri.
Ansible: VM/bastion/sistem rolü yapılandırmaları.
Modüller ve sürümler: kayıtlar, kuyruklar, sırlar, uyarılar için modüllerin kütüphanesi.
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) Uygulama orkestrasyonu ve serbest bırakma stratejileri
Kubernetes: автоскейл (HPA/KEDA), PodDisruptionBudget, readiness/liveness.
Aşamalı teslimat: Argo Rollouts/Flagger - kanarya, mavi-yeşil, gölge.
Ağ katmanı: servis ağı (mTLS, yeniden deneme/kırıcı, zaman aşımı sınırları).
Sırlar: Dış Sırlar/Mühürlü Sırlar, rotasyonlar.
yaml spec:
strategy:
canary:
steps:
- setWeight: 10
- pause: { duration: 5m }
- setWeight: 50
- analysis:
templates: [{ templateName: slo-latency-check }]
5) Veri orkestrasyonu ve analitiği
DAG orkestratörleri (Hava akışı/analogları): bağımlılıklar, retrays, SLA, uyarılar.
Artımlılık: BIRLEŞTIRME/üzerine yazma taraf, filigranlar.
DQ/Lineage: otomatik kalite testleri, bağımlılık grafiği.
Otomatik kurtarma: üstel duraklama, telafi jabs ile retrays.
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) Kod Olarak Politika ve Güvenlik
Amaç: Güvenli olmayan değişiklikleri otomatik olarak reddetmek.
OPA/Gatekeeper/Conftest: kümeler ve manifestolar için politika.
Tarama görüntüleri ve IaC: Trivy/Checkov - CI.
Sırlar: Manifestolarda gizli, sadece dış yöneticiler aracılığıyla yasaklayın.
RBAC şablonları: hizmetler/komutlar için roller, varsayılan olarak küme yöneticisini devre dışı bırakma.
rego deny[msg] {
input.kind == "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot msg:= "Containers must run as non-root"
}
7) Gözlemlenebilirlik ve otomatik iyileştirme (SRE)
Metrikler/günlükler/yollar: tek aracılar, 'trace _ id'ile korelasyon.
SLO/uyarılar: p95 gecikme, hata oranı, doygunluk; Runabook bağlantıları ile uyarılar.
Otomatik işlemler: ocakların bozulma üzerine yeniden başlatılması, sırayla ölçeklendirme, koruma değiştirme.
Kod olarak olaylar: ölüm sonrası şablonlar, kontrol listeleri, otomatik bağlam koleksiyonu.
yaml if: latency_p95 > 300ms for 5m do:
- scale: deployment/payments-api +3
- run: kubectl rollout restart deployment/gw
- notify: chatops#incidents
8) ChatOps ve self servis
Sohbetteki komutlar: dağıtma/geri alma, özelliği etkinleştirme, önbelleği ısıtma.
Guides-bot: komut konularında runabook ve panolara bağlantılar.
Onay-iş akışı: Prod için manuel kapılar, denetim günlüğü.
/deploy payments-api --version=1.24.3 --env=prod
9) Testler ve kalite: shift-left
Sözleşme API testleri (OpenAPI/tüketici odaklı).
DB geçişleri: CI'da kuru çalışma, geçici veritabanı/ad alanı üzerinde anlık test.
Perf testleri: gecikme p95/p99, RPS, sürümden sürüme bozunma.
Kaos testleri: düğümlerin kesilmesi, ağ gecikmeleri, yük devretme rutinleri.
10) FinOps ve maliyet kontrolü (otomasyon)
Kotalar/limitler: CPU/RAM/GPU, depolama; pahalı sınıfları sınırlamak.
Fiyat için Autoscale: geceleri dev kümeleri kapatma, spot havuzları hakları.
Bütçe uyarıları: günlük limitler, ad alanına/ekibe göre maliyet raporu.
Küçük dosyalar/kopyalar: Gölde otomatik sıkıştırma, Bronz için TTL, log sıkıştırma.
yaml if: cluster.utilization < 20% and time in [20:00-07:00]
do:
- scale: jobs/dev- to 0
- hibernate: db-nonprod
11) Güvenlik ve uyumluluk otomasyonu
PII akışları: veri kümelerini etiketleme, maskeleme, yetkisiz bölgelere ihracatı yasaklama.
Bağımlılıkların taranması: CVE düzeltmeleriyle otomatik PR, critlerde serbest bırakma engelleme.
Denetim: değişmez günlükler (WORM), veri/gizli erişim günlüğü.
Lisanslar: Resim/ağırlık/veri kümesi lisanslarının tükenmeden önce kontrol edilmesi.
12) Kutudan çıkan şablonlar (kütüphane)
Servis şablonu: Dockerfile, Helm chart, SLO uyarıları, pano.
İş- шаблон: CronJob + yeniden deneme/geri alma + idempotency kilidi.
Veri ürünü: DAG + DQ testleri + ürün pasaportu + soy.
ML hizmeti: Triton/KServe manifestosu + kanarya + perf kapısı.
13) Uygulama kontrol listesi
1. Anahtar hizmetler ve vitrinler için SLO/SLA'ları tanımlayın.
2. GitOps yazın - tüm manifestolar ve politikalar depolardadır.
3. CI/CD'yi eser imzası ve kalite kapıları ile standartlaştırın.
4. IaC modülleri ve Helm grafiklerinden oluşan bir kütüphane oluşturun.
5. Policy-as-Code ve sırları (rotasyonlar/kapsamlar) yapılandırın.
6. Otomatik eylemler ve runabooklarla gözlenebilirliği başlatın.
7. ChatOps'u entegre edin: dağıtma, geri alma, uyarılar, yardım.
8. FinOps'u otomatikleştirin: bütçeler, kotalar, gece modları.
9. Güvenlik sertleştirme ve uyumluluk kontrollerini CI'ye dahil edin.
10. Düzenli olarak oyun günü ve kaos testleri yapın.
14) Antipatterns
Manuel deploes ve IaC olmayan ortamların "kar taneleri".
Güvenlik/bağımlılık kontrolleri olmadan ve eser imzalama olmadan CI.
Depolardaki/manifestolardaki sırlar.
Kanaryalarda SLO/kapı eksikliği - "rastgele" serbest bırakır.
Otomatik iyileştirme ve runabooks olmadan izleme.
Bütçe/kota yok - öngörülemeyen maliyet.
Sonuçlar
İyi otomasyon, değişikliklerin boru hattı üretimidir: her şey kodla tanımlanır, otomatik olarak kontrol edilir ve güvenli bir şekilde teslim edilir. CI/CD, IaC ve GitOps, uygulama ve veri düzenleme, Kod Olarak Politika, SRE otomatik işlemleri ve FinOps'u birbirine bağlayarak, iGaming platformu hızlı sürümler, öngörülebilir p99, yönetilebilir maliyet ve daha az gece olayı alır.