Geçen hafta yeni bir CloudSpark müşterisinin BT müdürüyle ilk fatura gözden geçirme toplantısı yaptık. “Bekliyordum 22.000 TL, geldi 38.500 TL” dedi — ses tonu sıkıntılıydı ama suçlayıcı değildi. Birlikte WHMCS portal’ına girdik, fatura kalemlerini açtık. Hemen göründü: bir geliştirme VM’i (xlarge), iki ay önce demo için açılmış, sonra “geçici olarak” kapatmamış. Aylık 7.200 TL fazla. Etiketsiz, sahipsiz, fark eden olmamış. İşte FinOps’un pratik karşılığı: kim açtı, ne için açtı, ne zaman silinecek.
Bu yazıda CloudSpark Cloud’da kullanılan quota yönetimi, kullanım takibi, WHMCS entegrasyonu üzerinden faturalandırma ve sürpriz faturadan kaçınmak için kurduğumuz alarm/budget pratiklerini paylaşıyorum. Fiyat listesi yok — kişisel müşterilerin fiyatları farklı; ama yöntem aynı.
VHI’ın faturalama mimarisi
VHI, bulut sağlayıcı (yani CloudSpark) tarafında üç ana entegrasyon noktası sunar:
- WHMCS — yaygın hosting/CSP otomasyon platformu
- HostBill — alternatif faturalama platformu
- CloudBlue Commerce — kurumsal CSP marketplace
CloudSpark olarak WHMCS kullanıyoruz. Müşteri portal’ında (“Müşteri Alanı”) faturalarınızı, hizmet detaylarınızı, kalan kredinizi, ödeme yöntemlerinizi görürsünüz. VHI Self-Servis Portal’ından kullanım metrikleri otomatik olarak WHMCS’e akar — bu sayede “bu ay şu ana kadar 12.300 TL kullanım” gibi anlık bir görünüm mümkün.
Quota: hesabınızın tavanı
Her domain’in (yani her CloudSpark müşterisinin) bir quota’sı vardır. Quota domain seviyesindedir; sonra projeler arasında alt-quota olarak dağıtılabilir.
| Quota tipi | Örnek değer | Açıklama |
|---|---|---|
| vCPU | 64 | Tüm VM’lerde toplam CPU |
| RAM | 256 GiB | Toplam memory |
| Block storage (volumes) | 5 TiB | NVMe SSD |
| Object storage (S3) | 10 TiB | Buckets toplam |
| Backup storage | 3 TiB | Compressed |
| Floating IPs | 10 | Public IPv4 |
| Load balancers | 3 | Octavia LB |
| VM count | 50 | Toplam aktif VM |
| Snapshots per volume | 32 | Volume başına |
| Networks / routers | 10 / 5 | SDN kaynağı |
Quota’nız %80’e geldiğinde portal’ın Notifications sekmesinde uyarı çıkar. %100 olduğunda yeni kaynak oluşturma talepleri reddedilir — VM oluşturmaya çalışırsanız “Quota exceeded” hatası alırsınız. Quota artırımı CloudSpark’a talep ile yapılır; genellikle aynı gün içinde işlem tamamlanır.
Quota’yı projeler arasında dağıtmak
Domain quota 64 vCPU ise, projelere şöyle dağıtabilirsiniz:
Project: prod → 40 vCPU, 160 GiB RAM, 3 TiB volume
Project: staging → 16 vCPU, 64 GiB RAM, 1 TiB volume
Project: dev → 8 vCPU, 32 GiB RAM, 1 TiB volume
--------------------------------------
64 vCPU, 256 GiB RAM, 5 TiB volume
Bu sayede dev ekibi yanlışlıkla 32 vCPU’lık bir VM oluşturmaya kalktığında — quota engeller, sürpriz fatura olmaz. Domain admin Identity → Projects → seç → Quotas sekmesinden ayarlar.
Kullanım takibi: gerçek zamanlı görünüm
VHI Self-Servis Portal’da quota kullanımınızı her sekmede görürsünüz: sağ üstte “Used: 38 / 64 vCPU” gibi sayaç. Ayrıca Account → Usage altında detay grafikler var:
- Son 7 / 30 / 90 günde toplam vCPU-saat tüketimi
- Volume büyüme grafiği (ne kadar disk büyüdü)
- S3 bandwidth kullanımı (bucket’a yazılan/okunan byte)
- Network bandwidth (egress, çıkış trafiği — ingress ücretsiz)
Saha kuralı: CPU-saat metriğini haftalık takip edin, çünkü VHI’da fatura genellikle resource × time mantığıyla hesaplanır. Bir VM kapalı (shelved) iken vCPU/RAM tüketmez; ama volume yer tutmaya devam eder. “Sadece kullandığım kadar öderim” sözünün küçük yıldızı budur.
WHMCS müşteri portal’ında neler var
CloudSpark müşteri portal’ı (müşteri.cloudspark.com.tr veya hesap yöneticinizin paylaştığı URL) WHMCS üzerine kurulu. Görünen ana ekranlar:
| Ekran | Ne görürsünüz? |
|---|---|
| Anasayfa | Aktif hizmetler, bekleyen faturalar, kalan kredi |
| Hizmetlerim | CloudSpark Cloud paketi(leri), VHI domain bilgisi |
| Faturalarım | Geçmiş faturalar PDF, e-arşiv durumu, ödeme tarihleri |
| Bu ay kullanım | Anlık kullanım × birim fiyat = bu ana kadar tahakkuk |
| Ödeme yöntemleri | Kredi kartı, havale/EFT, otomatik ödeme |
| Destek talepleri | Açık ticket’lar, geçmiş yazışmalar, dosya ekleri |
| Profil & faturalandırma adresi | Vergi dairesi, vergi numarası, şirket bilgileri |
Faturanın okunuşu
WHMCS’in oluşturduğu CloudSpark fatura tipik kalemleri:
Fatura no: CS-2026-04-12345
Dönem: 01.04.2026 - 30.04.2026
[1] CloudSpark Cloud - vCPU 40 × 720 saat × ₺X = ₺...
[2] CloudSpark Cloud - RAM 160 GiB × 720 × ₺Y = ₺...
[3] NVMe SSD Volume 3.2 TiB × 30 gün = ₺...
[4] S3 Object Storage 1.8 TiB × 30 gün = ₺...
[5] Backup Storage 980 GiB × 30 gün = ₺...
[6] Floating IP 4 adet × 30 gün = ₺...
[7] Load Balancer (Octavia) 2 adet × 30 gün = ₺...
[8] Outbound bandwidth 420 GB × ₺Z = ₺...
--------
Ara toplam = ₺...
KDV (%20) = ₺...
GENEL TOPLAM = ₺...
Inbound bandwidth (giriş trafiği) ücretsizdir. Outbound (çıkış) belirli bir kotaya kadar dahil; üstü pay-as-you-go. CloudSpark’ta tek bölge (tr-ist-1) olduğu için region-arası trafik kalemi yok.
Sürpriz faturayı önlemek: pratik 6 adım
1. Tag stratejisi
Önceki yazıda (Post 17434) bahsetmiştim. cost-center, environment, owner tag’leri her VM’de zorunlu olsun. Aylık fatura geldiğinde “hangi cost center ne kadar yaktı” sorusu 5 dakikada cevaplanır.
2. Geliştirme VM’lerini gece kapat
Dev ortamı haftada 5×8 = 40 saat kullanılıyor; ama aylık 720 saat fatura ediyorsa parasının %94’ü boşa gidiyor. Cron + OpenStack CLI ile otomatize edin:
# /etc/cron.d/cloudspark-dev-shutdown (CI runner'da veya bastion'da)
# Her hafta içi 19:00 dev VM'leri shelve (kapatıp release et)
0 19 * * 1-5 ops /opt/scripts/shelve-dev.sh
# Her hafta içi 08:00 unshelve (geri aç)
0 8 * * 1-5 ops /opt/scripts/unshelve-dev.sh
# Hafta sonu boyunca kapalı kalır
#!/bin/bash
# /opt/scripts/shelve-dev.sh
source /opt/openstack/dev-rc.sh # CloudSpark API credentials
# 'environment=dev' tag'li tüm VM'leri shelve et
for vm in $(openstack server list --tags environment=dev -f value -c ID); do
openstack server shelve $vm
logger "Shelved dev VM: $vm"
done
Hesap kâğıt üzerinde: dev VM ayda 720 saat yerine 200 saat çalışır → maliyet ~%72 düşer.
3. Volume snapshot temizliği
Snapshot’lar arka planda yer tutar ama fark edilmesi zor. Aylık otomatik temizlik:
# 14 günden eski snapshot'ları sil
openstack volume snapshot list -f json |
jq -r '.[] | select(.["Created At"] | fromdate < (now - 14*86400)) | .ID' |
xargs -I {} openstack volume snapshot delete {}
Tabii ki “korumak istediğim” snapshot’lara keep=true tag’i ekleyip script’e exclude ettirin.
4. Backup retention’ı kalibre et
“90 gün retention” bir VM için gerekli olabilir, başka bir VM için lüks. backup=daily-30, backup=daily-90, backup=weekly-12 gibi tag’lerle politikayı VM seviyesinde belirleyin. KVKK gereği 7 yıl saklanması gereken finansal data ayrı bir backup vault’a, geliştirme ortamı kısa retention’a.
5. Floating IP ve LB envanteri
Public IP “kullanılmıyorken” de fatura keser (atanmamış olarak duran IP’ler). Aynı şey load balancer için. Üç ayda bir envanter çıkarın:
# Hangi floating IP atanmış değil?
openstack floating ip list --status DOWN
# Hangi LB üyesi yok / sağlıksız?
openstack loadbalancer list -f json | jq '.[] | select(.operating_status != "ONLINE")'
6. Aylık review ritüeli
CloudSpark’ta önerdiğimiz alışkanlık: ayın ilk Pazartesi sabahı, BT + Finans birlikte 30 dk WHMCS portal’a bakın. Geçen aya göre ne arttı, niye arttı, hangi cost-center? Bu küçük ritüel sürpriz faturanın %95’ini önler.
Quota uyarısını Slack’e götürmek
VHI’ın notification API’si var. Basit bir webhook forwarder ile kota uyarılarını ekibinizin Slack/Teams kanalına atabilirsiniz:
#!/usr/bin/env python3
# cloudspark-quota-watcher.py — saatlik cron'da çalışır
import os, requests, json
from datetime import datetime
# OpenStack credentials (cloudspark cloud)
import openstack
conn = openstack.connect(cloud='cloudspark')
# Quota durumunu çek
quota = conn.compute.get_quota_set(conn.current_project_id, usage=True)
# Eşik kontrol
WARN_THRESHOLD = 0.8
alerts = []
for resource in ['cores', 'ram', 'instances']:
used = quota[resource]['in_use']
limit = quota[resource]['limit']
if limit > 0 and (used / limit) >= WARN_THRESHOLD:
pct = round(used / limit * 100)
alerts.append(f"⚠️ {resource}: {used}/{limit} (%{pct})")
if alerts:
msg = f"*CloudSpark Quota Uyarısı* — {datetime.now():%Y-%m-%d %H:%M}n" + "n".join(alerts)
requests.post(
os.environ['SLACK_WEBHOOK_URL'],
json={'text': msg}
)
Bu script saatlik cron’a koyulduğunda kotanız %80’i aştığında Slack’e mesaj düşer. Sabah 06:00’da SMS yerine ekip kanalında uyarı görürsünüz; en geç bir saat içinde yansıma.
SSS
VHI’da rezerve (önceden satın alınmış) kapasite var mı?
CloudSpark’ta yıllık rezervasyon ile saatlik faturadan ciddi indirim alabilirsiniz. Tipik olarak 12 ay taahhüt %25-35, 36 ay taahhüt %40-50 indirim getirir. Production’a aldığınız core kapasiteyi rezerve edin, geçici/burst yükü saatlik kullanın — hibrit bir model en optimum.
S3 bandwidth fatura nasıl çalışır?
S3’e upload ücretsiz. Download (egress) kullandığınız kotanın üstündeyse pay-as-you-go. Statik web sitesi veya yedek arşivi bandwidth tüketimi yüksek olabilir; bunun için CloudSpark’ta CDN entegrasyonu sunuyoruz (CDN ile S3 arasında trafik dahildir, son kullanıcıya inen byte CDN üzerinden faturalandırılır).
Faturalandırma için saat dilimi nedir?
VHI metering Europe/Istanbul saatiyle çalışır. Aylık dönem her ayın 1’inde 00:00’da başlar. Bir VM ayın 15’inde açıldıysa o ay sadece 15 günlük fatura keser.
Ödeme yöntemleri?
Havale/EFT, kredi kartı (otomatik ödeme), kurumsal sözleşme bazlı net-30 / net-60 fatura. Otomatik ödeme aktif ise fatura tarihinde kart çekilir; başarısız olursa portal uyarı verir, 7 gün içinde manuel ödeme yapmazsanız hizmet uyarı statüsüne geçer (ama anında kesilmez — CloudSpark olarak grace period uyguluyoruz).
WHMCS API ile entegrasyon mümkün mü?
Evet. Müşteri portal’ı API token üretebilirsiniz (sadece domain admin), kendi finans sisteminizden fatura PDF’lerini otomatik çekebilirsiniz. CFO panellerinde aylık rakamı tekrar tekrar kopyala-yapıştır yapmaktan kurtarır.
Özet: FinOps’un üç temel disiplini
- Görünürlük: Her kaynak tag’lenmiş olsun. WHMCS portal’ında kim ne kadar yakıyor, anlık görülsün.
- Sorumluluk: Her cost-center kendi tüketiminin sahibi. Aylık review’da konu açıkça konuşulsun.
- Optimizasyon: Hot-plug ile right-sizing, gece kapatma, snapshot temizliği, rezervasyon. Üçü beraber faturanın %30-40’ını kurtarır.
CloudSpark Cloud fiyat teklifi, WHMCS portal demosu veya quota artırımı için iletişim formundan veya +90 (216) 528 14 14‘ten ulaşabilirsiniz. Doğru başlangıç, sürpriz faturanın olmadığı bir bulut için en önemli adımdır.



