Detailed view of a server rack with a focus on technology and data storage.
CloudSpark

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

  1. Görünürlük: Her kaynak tag’lenmiş olsun. WHMCS portal’ında kim ne kadar yakıyor, anlık görülsün.
  2. Sorumluluk: Her cost-center kendi tüketiminin sahibi. Aylık review’da konu açıkça konuşulsun.
  3. 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.

Yorum yapabilmek için oturum açmalısınız.
🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español