a plane flying through a cloud filled sky
Azure

Kilis merkezli sınır ticareti + esnaf finansman fintech şirketi, 14 microservice’inin SQL DB’sini Azure SQL Database üzerinde 6 ayda yeniden tasarladı. SKU seçimi, replikasyon, monitoring ve sahadaki notlar aşağıda.

Azure SQL Database Servis Tier’ları

Tier Use case Storage Compute
Basic Dev, light workload Max 2 GB Düşük
Standard (S0-S12) Stable workload Max 1 TB DTU bazlı
Premium (P1-P15) Mission-critical OLTP Max 4 TB DTU yüksek + IO
General Purpose (vCore) Standart OLTP Max 4 TB vCore
Business Critical (vCore) HA + low latency Max 4 TB local SSD vCore + read replica dahil
Hyperscale Çok büyük (100 TB) 100 TB Storage compute ayrı, hızlı backup/restore
Serverless Intermittent workload Auto-pause + auto-scale

Sahadaki Workload Profil

Microservice DB tipi Boyut Tier seçimi
identity-svc OLTP, küçük ~~12 GB GP S2 (vCore 2)
account-svc OLTP, orta ~~80 GB GP S4
transaction-svc OLTP, yoğun ~~~~280 GB BC vCore 8 (HA + read replica)
ledger-svc Analytical + büyük ~~12 TB (büyüyor) Hyperscale 8 vCore
kyc-svc OLTP, az erişim ~~28 GB Serverless GP (auto-pause)
notification-svc Yazma yoğun ~~18 GB Elastic Pool (5 servis paylaşır)
… 8 küçük servis OLTP küçük ~~5-15 GB her biri Elastic Pool

Elastic Pool (8 Küçük DB Birleştir)

Pool: small-services-pool
Tier: General Purpose, 8 vCore (paylaşımlı)
DTU/vCore range/DB:
  - Min: 0
  - Max: 4 vCore (her DB)
  
Avantaj:
  - 8 DB her biri ayrı GP S2 alsa: 8 × $200 = $1.600
  - Pool 8 vCore: ~$700
  - Tasarruf: ~%~~56
  
Çalışma prensibi:
  - DB'ler farklı zamanlarda yoğun (örn günü sabah account, gece raporlama)
  - Aynı pool'da kaynak paylaşımı
  - Her DB max'a kadar burst edebilir

Hyperscale (Ledger Servisi)

Avantajları:
  - Storage compute'tan ayrı (10 TB+ storage hızlı)
  - Backup/Restore hızlı (rapid restore)
  - Read replica'lar (4'e kadar)
  - Aynı sürede DB büyür, performans düşmez
  
Sınırlama:
  - Cross-DB query yok
  - Bazı premium feature'lar (TDE BYOK) farklı
  - Long-term retention farklı

Bu vakada:
  - 12 TB ledger data
  - Aylık ~~600 GB büyüme
  - Read replica analytics raporları için

Active Geo-Replication (DR)

Primary: Northeurope (TR'ye yakın)
Secondary: Westeurope (failover hedef)

Replication:
  - Async (RPO ~~~~5 sn)
  - Read-only access secondary'de
  - Manual failover (planned) veya
  - Auto-failover group (failover policy)

Failover test (quarterly):
  - Planned failover: 1 dk
  - Application connection string update: 0 (failover group endpoint kullanılır)
  - Smoke test: 10 dk
  - Total downtime: ~~12 dk

Query Store + Performance

-- Top expensive query
SELECT TOP 10
  q.query_id,
  qt.query_sql_text,
  rs.avg_duration / 1000 AS avg_duration_ms,
  rs.count_executions
FROM sys.query_store_query q
JOIN sys.query_store_query_text qt ON q.query_text_id = qt.query_text_id
JOIN sys.query_store_plan p ON q.query_id = p.query_id
JOIN sys.query_store_runtime_stats rs ON p.plan_id = rs.plan_id
WHERE rs.last_execution_time > DATEADD(hour, -24, SYSUTCDATETIME())
ORDER BY rs.avg_duration DESC;

-- Plan regression detect
-- Sentinel/Azure Monitor alert: avg_duration 24h öncesinden %~~50+ arttıysa

Index Tuning (Auto)

Azure SQL otomatik index önerileri sunar:

DROP_INDEX recommendations: 14 (kullanılmayan indeks)
CREATE_INDEX recommendations: 8 (eksik indeks)

Auto-tuning ON:
  - Auto-create index: Enabled
  - Auto-drop unused index: Enabled
  - Force last good plan: Enabled (regression rollback)

3 ay sonra etki:
  - Avg query duration: %~~38 düşüş
  - DTU/vCore kullanımı: %~~22 düşüş

Backup + Retention

Tip Retention
Point-in-time 7-35 gün (tier’a göre)
Long-term retention (LTR) Weekly 12w, monthly 12m, yearly 10y (compliance)
Geo-redundant backup Otomatik

Maliyet Optimizasyonu

Optimizasyon Tasarruf
Reserved Capacity (3 yıl, predictable workload) %~~33
Hybrid Benefit (mevcut SQL Server lisans) %~~25 (BC tier)
Elastic Pool (küçük DB’leri grupla) %~~50+
Serverless (intermittent workload, auto-pause) %~~60+ (kullanılmayan saatler)
Right-size (Query Store + DMV ile) %~~15-25

5 Neden — Sahada Test Edilmiş

  1. HA built-in: Business Critical 99.99% SLA, manuel patch yok, otomatik failover
  2. Auto-tuning: Index + plan regression manuel DBA müdahalesi azaltır
  3. Geo-replication kolaylığı: 5 dakikada cross-region replica
  4. Hyperscale ile büyüme: 100 TB’a kadar performans düşmez
  5. Pay-as-you-go + Reserved: Stable workload Reserved, burst pay-as-you-go

Sahada Düşülen Üç Tuzak

  1. Tüm DB’leri Premium tier’a koymak: Workload analiz edilmeden over-provision = ay sonu fatura şoku. Önce DTU/vCore baseline + scale.
  2. Auto-tuning’i kapatmak: “Microsoft index’imi yönetemez” yaklaşımı eski. Auto-tuning ON + monitor + nadiren override.
  3. Geo-replication’ı failover test etmemek: Replicate var ama failover prosedürü test edilmemiş = DR günü kaos. Quarterly drill şart.

CloudSpark olarak Azure SQL Database mimarisi, tier seçimi, Elastic Pool tasarımı, Hyperscale göçü, Active Geo-Replication ve performance tuning için danışmanlık veriyoruz.

Etiketler:
🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español