irdaweb Bilgi Teknolojileri
Telefon numaramız +90 541 209 02 05
E-posta adresimiz [email protected]
Konu 02 · Cloud & Altyapı

Cloud & altyapı: hipervisörden NVMe diske, birlikte keşfedelim.

Hipervizörden NVMe disk profillerine, snapshot stratejilerinden RTO/RPO planlamasına kadar — bulut altyapısının her durağını yan yana, sade bir dille tanıyacağız.

01 — Katmanlar

Üst üste duran üç katman vardır.

Bulutta gördüğünüz "sunucu", aslında üç farklı katmanın el sıkışmasıyla ortaya çıkar. Bu katmanları ayırt etmek, performans veya güvenlik tartışmasında doğru soruyu doğru yere sormanızı sağlar.

Katman · 01 Donanım

Bare metal

Veri merkezindeki fiziksel sunucu; CPU soketleri, RAM modülleri, NVMe disk dizileri ve yedekli ağ kartları. Bulutu mümkün kılan, ama doğrudan görmediğiniz katman.

Katman · 02 Hipervizör

KVM — Kernel-based VM

Linux çekirdeğinin bir parçası olan, donanım destekli (Intel VT-x / AMD-V) sanallaştırma motoru. Tek bir fiziksel makineden birbirinden izole birden çok sanal makine üretir.

Katman · 03 Misafir

Sanal makine — VM

Sizin yönettiğiniz, kendine özgü çekirdeği ve dosya sistemi olan sunucu. Aynı donanımdaki diğer misafirleri görmez, görmemelidir; izolasyon hipervizörün işidir.

VM ve konteyner aynı şey değildir. Konteyner (Docker, containerd) ana makinenin çekirdeğini paylaşır; çok hafif, çok hızlı, ama izolasyonu çekirdek namespace'leri ile sınırlıdır. VM ise kendi çekirdeğini taşır; biraz daha ağır, ama güvenlik sınırı net. Modern altyapıda ikisi de bir arada kullanılır: konteynerler VM'lerin içinde koşar.
02 — Sunucunun yolculuğu

Panele basıldıktan sonra kırk saniyelik koreografi.

"Cloud KVM" oluştur düğmesine bastığınız anla SSH'e bağlandığınız an arasında pek çok küçük adım vardır. Yan tarafta, panelden gelen tipik bir provision logu — adımları yan yana koyduk.

cloud-init · provision log
→ provision   Cloud KVM 4 vCPU / 8 GB RAM / 80 GB NVMe
→ image       ubuntu-24.04-server-cloudimg-amd64
→ network     enp0s3 → 10.10.4.42 (DHCP) · public 203.0.113.42
→ cloud-init  user-data okundu: hostname, ssh keys, paketler
→ packages    nginx, certbot, fail2ban, ufw kuruldu
→ firewall    22, 80, 443 açık · diğerleri kapalı
← ready       sshd dinliyor · 47 saniyede ayağa kalktı
1
Image — kalıp
Ubuntu, Debian, AlmaLinux gibi işletim sisteminin önceden hazırlanmış cloud-image'ı. Boş diske kurulum yapmaya gerek yok; kalıp kopyalanır, ilk açılışta kişiselleşir.
2
cloud-init — deklaratif başlangıç
İlk açılışta YAML formatında bir user-data dosyası okunur: hostname, SSH anahtarı, kurulacak paketler, çalıştırılacak komutlar. Aynı YAML'la her seferinde aynı sunucuyu üretebilirsiniz — tekrar üretilebilirlik (reproducibility) buradan başlar.
3
Ağ — özel + genel IP
VM, içeride özel ağdan (10.x.y.z) bir adres alır; dışarı açılması gerekiyorsa NAT ile genel bir IP'ye eşlenir ya da doğrudan public IP atanır. Güvenlik duvarı (security group) kuralları bu noktada uygulanır.
03 — Depolama profilleri

Diskin cinsi, performansın yarısıdır.

Bir veritabanı yavaşlıyorsa cevap çoğunlukla "daha çok CPU" değil, "daha hızlı disk" olur. Disk profillerini ayırt etmek için iki ölçü vardır: IOPS (saniyede I/O işlemi) ve throughput (saniyedeki bayt). Her ikisi birden yüksek olmaz; iş yükünüzün hangisini istediğini bilmek gerekir.

HDD
~ 100
~ 10 ms
Soğuk arşiv, log saklama, yedek deposu — hız önemli değilse maliyet en uygun.
SATA SSD
10K – 50K
~ 1 ms
Genel amaçlı web uygulamaları, küçük-orta veritabanları, statik dosya sunumu.
NVMe SSD
250K – 1M
~ 0.1 ms
OLTP veritabanları, mesaj kuyrukları, hot-path API'ler — düşük gecikme şart.
NVMe + cache
1M+
< 0.1 ms
Yüksek frekanslı işlem, finansal sistemler, gerçek zamanlı analitik.

Bir başka ayrım: ephemeral diskler hipervizörün yerel diskinde durur, VM'le birlikte yaşar — yeniden başlatınca silinir. Persistent diskler ise ağ üzerinden bağlanır; VM ölürse bile veri yerinde kalır. Veritabanları, kullanıcı dosyaları ve durum tutan her şey persistent diskte yaşamalıdır.

04 — Snapshot & yedek

Üç farklı şey, sıkça aynı isimle anılır.

"Yedek aldık" cümlesinin arkasında üç farklı teknik durabilir. Hangisi olduğu, bir gün veriyi kurtarmaya çalıştığınızda anlamını bulur — o yüzden ayrımı önceden netleştirmek gerekir. Yedekleme stratejisinin tamamı (3-2-1, doğrulama) için Yedekleme & Felaket Kurtarma.

Tür · 01 Anlık

Snapshot

Diskin belirli bir andaki durumunun, depolama altyapısı seviyesinde alınmış görüntüsü. Saniyeler içinde alınır, saniyeler içinde geri dönülür. Aynı altyapıda durduğu için bir yedek değildir.

  • İyi senaryo: hatalı bir göç sonrası geri dönmek
  • Kötü senaryo: depolama kaybı (çok düşük olasılık ama mümkün)
Tür · 02 Bağımsız

Backup — yedek

Verinin başka bir bölgeye kopyalanmış, çoğunlukla şifrelenmiş ve sürümlenmiş hâli. Donanım kaybında, ransomware'de ve yanlışlıkla silmede asıl kurtarıcı budur. Saatler-günler ölçeğinde kurtarma süresi.

  • 3-2-1 kuralı: 3 kopya, 2 farklı medya, 1 başka yer
  • Yedek alındığı kadar değil, geri yüklenebildiği kadar yedektir
Tür · 03 Eşzamanlı

Replikasyon

Verinin başka bir lokasyona sürekli, neredeyse anlık kopyalanması. Senkron veya asenkron olabilir. Replika, hatalı silmeyi de kopyalar — bu yüzden replikasyon backup'ın yerine değil, yanına gelir.

  • Senkron: gecikme artar, veri kaybı sıfıra yaklaşır
  • Asenkron: gecikme düşük, veri kaybı penceresi açıktır
Test edilmemiş yedek, yedek değildir. Düzenli olarak geri yükleme tatbikatı yapın: rastgele bir yedeği başka bir VM'ye açın, veritabanını ayağa kaldırın, uygulamayı bağlayın. Bunu hiç denemeden kötü günü beklemek, sigortayı kaza günü çıkarmaya benzer.
05 — Ölçekleme

Yukarı mı, yana mı?

Trafik arttığında iki yol vardır: aynı sunucuyu büyütmek ya da yan yana yenisini eklemek. Her ikisi de meşru, her ikisinin de bedeli farklıdır.

  • Stateless servisler doğal olarak yatay ölçeklenir — herhangi bir kopyaya istek gönderebilirsiniz.
  • Tek-yazıcı veritabanları önce dikey ölçeklenir, ancak eşik aşıldığında read replica, sharding veya dağıtık veritabanına geçilir.
  • Auto-scaling CPU, RAM ya da kuyruk uzunluğu gibi metriklere göre otomatik kopya açar; kötü tanımlanmış metrikler "scale flapping"e yol açar.
Yön · 01

Dikey — scale up

Aynı VM'ye daha fazla CPU, RAM, IOPS ekleyerek büyütmek. Kod değişikliği gerektirmez; tek bir tavanı vardır (tek bir fiziksel makine sınırı).

İyi:
Hızlı, basit, durum tutan servisler için pratik.
Zor:
Tavan vardır; tek nokta arıza riski sürer.
Yön · 02

Yatay — scale out

Birden çok kopyayı paralel çalıştırıp önlerine yük dengeleyici (load balancer) koymak. Pratik tavan yok denecek kadar uzaktır; kayıp toleranslıdır.

İyi:
Yüksek erişilebilirlik, kademeli yayın, otomasyon.
Zor:
Durum (state) ve oturum yönetimi tasarımı gerektirir.
Tipik akış
istek ──▶ load balancer
                  │
       ┌──────────┼──────────┐
       ▼          ▼          ▼
   app · 01   app · 02   app · 03
       │          │          │
       └──────────┼──────────┘
                  ▼
           veritabanı (primary + replica)
06 — RTO & RPO

Kötü gün için iki sayı belirleyin.

Felaket kurtarma planı, "yedek alıyoruz" cümlesinin bir adım ötesidir. İki net hedef konuşmak için iki kısaltmaya ihtiyacımız var.

RTO

Recovery Time Objective

Kabul edilebilir kesinti süresi. "Sistem çöktükten kaç dakika/saat sonra tekrar ayağa kalkmış olmalı?" sorusunun cevabı.

Düşük RTO → daha pahalı altyapı (sıcak yedek, çoklu lokasyon). Yüksek RTO → düşük maliyet, daha uzun kesinti.

RPO

Recovery Point Objective

Kabul edilebilir veri kaybı miktarı. "Olay anında en fazla kaç dakikalık veri kaybı bizi kabul edilebilir bulur?" sorusunun cevabı.

Düşük RPO → senkron replikasyon ya da sık snapshot. Yüksek RPO → günlük yedekle yetinmek mümkün.

Strateji merdiveni

RTO ve RPO hedeflerinize göre dört tipik seviyeden birinde dururuz. Her seviyenin altyapı maliyeti, bir öncekine göre kabaca 3-5 katına çıkar.

  1. 01

    Cold standby

    RTO: Saatler – günler · RPO: Günler

    Sadece yedek var; felaket anında VM kuruluyor, yedek yükleniyor, DNS yönlendiriliyor. Maliyeti en düşük yaklaşım, kritik sistemler için zayıf.

  2. 02

    Warm standby

    RTO: Dakikalar · RPO: Saatler

    Yedek altyapı kapalı bekler; snapshot ya da asenkron replika güncel tutulur. Olay anında açılır, trafik yönlendirilir.

  3. 03

    Pilot light

    RTO: Birkaç dakika · RPO: Dakikalar

    Kritik veritabanı sürekli replike edilir, uygulama katmanı ölçeklenmeye hazır şekilde minimumda durur. Olay anında uygulama yatay ölçeklenir.

  4. 04

    Hot standby — active-active

    RTO: Saniyeler · RPO: ≈ 0

    İki bölge eşzamanlı trafik alır; biri çökerse yük dengeleyici diğerine kayar. En pahalı, en hızlı kurtarma.

07 — Sık karıştırılanlar

Birbirine benzeyenler ama aynı olmayanlar.

Snapshot vs. Backup

Snapshot aynı altyapıdaki anlık görüntüdür; geri dönüş hızlıdır ama altyapı kaybında birlikte gider. Backup bağımsız bir lokasyona alınmış kopyadır. Strateji: ikisini birlikte tutmak — günlük snapshot + haftalık off-site backup.

Region vs. Availability Zone

Region coğrafi olarak ayrı bir veri merkezi grubudur (örn. eu-west). Availability Zone aynı region içinde fiziksel olarak izole, ama düşük gecikmeyle bağlı bir tesis. Çoklu-AZ erişilebilirliği artırır; çoklu-region felaket dayanıklılığı.

IOPS vs. Throughput

IOPS saniyedeki I/O işlem sayısı (küçük rastgele okuma/yazma için kritik — veritabanı). Throughput saniyedeki bayt (büyük sıralı okuma/yazma için kritik — yedek, video). Disk seçerken iş yükünüze hangisinin yakın olduğunu belirleyin.

Vertical scale vs. Horizontal scale

Dikey: aynı VM'yi büyütmek (kod değişmez, tavan var). Yatay: yan yana kopya eklemek (kod stateless olmalı, tavan pratikte yok). Pek çok sistem önce dikey büyür, sonra yataya geçer.

VM vs. Konteyner

VM kendi çekirdeğini taşır; izolasyon güçlü, açılış birkaç saniye. Konteyner ana çekirdeği paylaşır; çok hafif, çok hızlı. Çoğunlukla beraber çalışırlar — konteynerler VM'lerin içinde yaşar.

Birinci el kaynaklar

Konuyu tanımlayan resmi belgeler ve referans yayınlar.

Sıradaki adım

Cloud altyapınızı birlikte kuralım.

İhtiyacınıza uygun KVM profili, depolama tercihi ve yedekleme stratejisini birlikte tasarlayalım — sade ve şeffaf bir yol haritasıyla.