KoderKoder.ai
FiyatlandırmaKurumsalEğitimYatırımcılar için
Giriş YapBaşla

Ürün

FiyatlandırmaKurumsalYatırımcılar için

Kaynaklar

Bize UlaşınDestekEğitimBlog

Yasal

Gizlilik PolitikasıKullanım KoşullarıGüvenlikKabul Edilebilir Kullanım PolitikasıKötüye Kullanımı Bildir

Sosyal

LinkedInTwitter
Koder.ai
Dil

© 2026 Koder.ai. Tüm hakları saklıdır.

Ana Sayfa›Blog›Bulut Maliyeti ve Kullanım Tahsisi için Web Uygulaması Nasıl İnşa Edilir
30 Kas 2025·8 dk

Bulut Maliyeti ve Kullanım Tahsisi için Web Uygulaması Nasıl İnşa Edilir

Bulut fatura verilerini toplayan, kullanımı takımlara tahsis eden ve panolar, bütçeler ile uygulanabilir raporlar sunan bir web uygulamasının nasıl tasarlanıp inşa edileceğini öğrenin.

Bulut Maliyeti ve Kullanım Tahsisi için Web Uygulaması Nasıl İnşa Edilir

Sorunu tanımlayın: maliyetler, kullanım ve kim cevap arıyor

Ekranlar veya veri hatları inşa etmeden önce uygulamanızın hangi soruları cevaplaması gerektiğini netleştirin. “Bulut maliyetleri” bir fatura toplamı, bir takımın aylık harcaması, tek bir servisin birim ekonomisi veya müşteri odaklı bir özelliğin maliyeti anlamına gelebilir. Problemi baştan tanımlamazsanız, etkileyici görünen ama anlaşmazlıkları çözmeyen panolarla karşılaşırsınız.

Yardımcı bir çerçeve: ilk teslimatınız “bir pano” değil, paylaşılan bir doğruluk tanımıdır (sayıların ne anlama geldiği, nasıl hesaplandığı ve kimlerin bunlara göre hareket etmekten sorumlu olduğu).

Uygulamayı kim kullanacak?

Öncelikle birincil kullanıcıları ve hangi kararı vermeleri gerektiğini isimlendirin:

  • Finance / FinOps: ayı kapatmak, sapmaları açıklamak, politikalar belirlemek ve bütçe sorumluluğunu uygulamak.
  • Mühendislik: israfı tespit etmek, ortamları karşılaştırmak (prod vs dev) ve harcamayı deployment veya servislere bağlamak.
  • Takım liderleri / ürün sahipleri: kendi “faturalarını” anlamak, yatırımları gerekçelendirmek ve kapasite planlamak.
  • Yöneticiler (genellikle sadece okuma): trend görünürlüğü ve risk sinyalleri.

Farklı kullanıcılar farklı ayrıntı seviyeleri gerektirir. Finance stabil, denetlenebilir aylık rakamlar isterken mühendisler günlük ayrıntı ve derinlemesine inceleme isteyebilir.

Sonuçları (özellik değil) tanımlayın

İlk olarak hangilerini teslim edeceğinizi açıkça belirtin:

  • Showback: iç faturalandırma olmadan takım/servis bazında görünürlük.
  • Chargeback: bütçelere yansıyan gerçek iç faturalar ve tahsisler.
  • Tahminleme: ay sonu beklenen harcama ve senaryo planlaması.
  • Bütçe kontrolü: bütçeler, uyarı eşikleri ve onay iş akışları.

Kapsamı dar tutmanın pratik yolu bir “birincil sonuç” seçmek ve diğerlerini takip işleri olarak ele almaktır. Çoğu ekip showback ve temel anomali tespiti ile başlar, sonra chargeback'e geçer.

Bulut kapsama alanını belirleyin

İlk günde desteklemeniz gereken bulutları ve fatura varlıklarını listeleyin: AWS payer hesapları, Azure abonelikleri ve yönetim grupları, GCP fatura hesapları/projeleri ve paylaşılan servisler (logging, networking, security). Market yerücretleri ve üçüncü taraf SaaS ücretlerini dahil edip etmeyeceğinize karar verin.

Tazelik ve saklama

Hedef güncelleme sıklığını seçin: günlük finans ve çoğu ekip için yeterlidir; yakın-gerçek-zamanlı olay müdahalesi ve hızlı hareket eden organizasyonlar için faydalı olabilir ama karmaşıklık ve maliyeti artırır. Ayrıca saklama süresini belirleyin (ör. 13–24 ay) ve denetimler için değiştirilemez “ay-kapanışı” anlık görüntülerine ihtiyacınız olup olmadığını kararlaştırın.

Ne ölçeceğinizi kararlaştırın: veri modeli ve temel boyutlar

Tek bir CSV almadan veya fatura API'si çağırmadan önce uygulamanızdaki “gerçeğin” nasıl görüneceğine karar verin. Net bir ölçüm modeli sonrasında bitmeyen tartışmaları engeller (“Neden bu fatura ile eşleşmiyor?”) ve çoklu bulut raporlamasını öngörülebilir kılar.

Gerekli metriklerle başlayın

En azından, her fatura satırını tutarlı bir ölçüm seti ile bir kayıt olarak ele alın:

  • Maliyet: vergi öncesi maliyet, efektif maliyet (indirimler sonrası) ve faturalı maliyet (fatura toplamı).
  • Kullanım: miktar + birim (saat, GB-ay, istek). Birimi kullanıcı arayüzü metni olarak değil, veri olarak tutun.
  • Kredi ve indirimler: taahhütler, promosyon kredileri, kurumsal indirimler.
  • İadeler ve düzeltmeler: negatif satırlar birinci sınıf vatandaş olmalı.
  • Vergiler ve ücretler: genellikle ayrı raporlanır; finansın mutabakat yapabilmesi için bunları açıkça modelleyin.

Pratik bir kural: bir değer finansın ne ödediğini veya bir takımın ne için ücretlendirileceğini değiştirebiliyorsa, kendi metriğine sahip olmalıdır.

Temel boyutları ("group by" alanları) tanımlayın

Boyutlar maliyetleri keşfedilebilir ve tahsis edilebilir kılar. Yaygın olanlar:

  • Hesap / abonelik / fatura varlığı
  • Proje / uygulama
  • Takım / maliyet merkezi / sahip
  • Ortam (prod, staging, dev)
  • Servis / SKU / metre
  • Bölge / zone

Boyutları esnek tutun: daha sonra (ör. “cluster”, “namespace”, “vendor”) ekleyeceksiniz.

Raporlama için zaman anahtarları seçin

Genellikle birden fazla zaman kavramına ihtiyacınız olur:

  • Fatura dönemi (finans mutabakatı için)
  • Gün (trendler ve anomali tespiti için)
  • Ay (yönetici raporlaması ve bütçeler için)

“Tahsis edilmiş” vs “tahsis edilmemiş” açık olmalı

Katı bir tanım yazın:

  • Tahsis edilmiş maliyet: etiketler veya tahsis kurallarıyla bir sahip/takıma atanmış maliyet.
  • Tahsis edilmemiş maliyet: sahipliği eksik/geçersiz olan maliyet; gizli bir şekilde atılmamalı, görünür kalmalı.

Bu tek tanım panolarınızı, uyarılarınızı ve sayılara duyulan güveni şekillendirir.

Fatura verisini toplayın: dışa aktarmalar, API'ler ve ingest akışı

Fatura alma, bir bulut maliyet yönetimi uygulamasının temelidir: ham girdiler eksik veya yeniden üretilemezse, her pano ve tahsis kuralı tartışma konusu olur.

Bağlayıcıları planlayın (ve farklı olduklarını kabul edin)

Her bulut için “yerel gerçeği” destekleyerek başlayın:

  • AWS: S3'e teslim edilen Cost and Usage Report (CUR) (genellikle saatlik veya günlük), ek metadata için API'ler opsiyonel.
  • Azure: Storage Account'a Cost Management dışa aktarımları (genelde günlük), farklı kapsamlar için ayrı uç noktalar (abonelik, yönetim grubu).
  • GCP: BigQuery'ye fatura dışa aktarma (en rahat), ya da dosya tabanlı pipeline tercih ediyorsanız dosya dışa aktarımları.

Her bağlayıcıyı aynı temel çıktıları üretecek şekilde tasarlayın: bir set ham dosya/satır ve bir ingest günlüğü (neyi çektiğiniz, ne zaman ve kaç kayıt).

Çekme vs itme ingest

Genellikle iki modelden biri seçilir:

  • Çekme (zamanlı import): uygulamanız S3/Blob/BigQuery'yi planlı olarak tarar. Anlaması ve yeniden denemesi daha kolaydır; fakat değişiklikleri yansıtmak daha yavaş olabilir.
  • İtme (olay-temelli): depolama olayları (ör. “yeni obje oluşturuldu”) ingest'i tetikler. Ölçeklenince daha hızlı ve ucuz olabilir, ama olaylar iki kez gelirse deduplikasyon gerektirir.

Birçok ekip hibrit çalışır: tazelik için itme, kaçan dosyaları yakalamak için günlük çekme sweeper'ı.

Zaman, para birimi ve faturalama sınırları

Ingest sırasında orijinal para birimini, zaman dilimini ve fatura dönemi semantiğini koruyun. Henüz hiçbir şeyi “düzeltmeyin” — sağlayıcının söylediğini yakalayın ve sağlayıcının dönem başlangıç/bitişini saklayın ki geç düzeltmeler doğru aya düşsün.

Değiştirilemez bir staging alanı tutun

Ham dışa aktarımları değiştirilemez, versiyonlanmış bir staging bucket/container/dataset içinde saklayın. Bu denetlenebilirlik, parsing mantığı değiştiğinde yeniden işleme ve anlaşmazlık çözümü için hangi kaynak dosyanın bir sayıyı ürettiğini göstermeyi mümkün kılar.

Normalleştirin ve doğrulayın: farklı bulutları karşılaştırılabilir kılın

AWS CUR, Azure Cost Management dışa aktarımları ve GCP Billing verilerini olduğu gibi içeri alırsanız, uygulamanız tutarsız hisseder: aynı şey bir dosyada “service”, diğerinde “meter” ve başka yerde “SKU” olarak adlandırılabilir. Normalizasyon, sağlayıcıya özgü terimleri tek bir öngörülebilir şemaya dönüştürme yeridir, böylece her grafik, filtre ve tahsis kuralı aynı davranır.

Birleşik bir şema tasarlayın

Sağlayıcı alanlarını güvenilir olarak kullanabileceğiniz ortak bir boyut setine eşleyerek başlayın:

  • Service (ör. “Compute”, “Object Storage”)
  • SKU (faturalandırılabilir öğe, genellikle en ayrıntılı tanımlayıcı)
  • Usage type (saatler, GB-ay, istekler vb.)

Ayrıca takip edilebilirlik için sağlayıcıya özgü ID'leri (AWS ProductCode, GCP SKU ID gibi) saklayın ki kullanıcı bir sayıyı tartıştığında orijinal kayda geri dönebilin.

Yaygın veri sorunlarını temizleyin

Normalizasyon sadece sütunların yeniden adlandırılması değildir—veri hijyenidir.

Eksik veya bozuk etiketleri “unknown” ile “unallocated” olarak ayırın ki sorunları gizlemeyin. Yeniden denemelerden kaynaklanan çift sayımları önlemek için kararlı bir anahtar (kaynak satır kimliği + tarih + maliyet) ile deduplikasyon yapın. Kısmi günlere (özellikle “bugün”e yakın veya dışa aktarım gecikmelerinde) dikkat edin ve bunları geçici/provisional olarak işaretleyin ki panolar beklenmedik şekilde dalgalanmasın.

Soyu ve versiyonları takip edin

Her normalize satır lineage meta verisi taşımalıdır: kaynak dosya/dışa aktarma, import zamanı ve dönüşüm versiyonu (ör. norm_v3). Eşleme kuralları değiştiğinde yeniden işlemeyi güvenle yapıp farkları açıklayabilirsiniz.

Kullanıcılar için doğrulama ve özet yayınlayın

Otomatik kontroller oluşturun: günlük toplamlar, negatif-maliyet kuralları, para birimi tutarlılığı ve “hesap/abonelik/proje bazında maliyet”. Ardından UI'da bir import özeti yayınlayın: içe alınan satırlar, reddedilen satırlar, zaman kapsaması ve sağlayıcı toplamları ile farkı. Kullanıcılar ne olduğuna (sadece nihai sayı değil) bakabildiğinde güven artar.

Etiketleme ve sahiplik: ham maliyetleri hesap verebilir maliyetlere dönüştürün

Maliyet verileri birinin "bu kimin?" sorusunu tutarlı şekilde cevaplayabildiği zaman kullanışlıdır. Tagging (AWS), labels (GCP) ve resource tags (Azure) harcamayı takımlara, uygulamalara ve ortamlara bağlamanın en basit yoludur—ama bunlara kurumsal veri gibi davranmazsanız sadece iyi niyet girişimi olmaya devam eder.

Kurallar tanımlayın: gerekli anahtarlar ve izin verilen değerler

Tahsis motorunuzun ve panolarınızın güveneceği küçük bir zorunlu anahtar setini yayınlayarak başlayın:

  • team
  • app
  • cost-center
  • env (prod/stage/dev)

Kuralları açık yapın: hangi kaynakların etiketlenmesi gerektiği, hangi etiket formatlarının kabul edildiği (ör. küçük harf kebab-case) ve bir etiket eksik olduğunda ne olacağı (ör. “Unassigned” kovası artı uyarı). Bu politikayı uygulama içinde görünür tutun ve daha derin rehberlik için /blog/tagging-best-practices gibi referans noktalarını gösterin.

Dağınık gerçeklik için bir eşleme UI'si oluşturun

Politikalar olsa bile sürüklenme göreceksiniz: TeamA, team-a, team_a veya takımın yeniden adlandırılması gibi. Finans ve platform sahiplerinin geçmişi yeniden yazmadan değerleri normalize edebilmesi için hafif bir "eşleme" katmanı ekleyin:

  • Birden çok ham değeri tek bir kanonik değere eşleyin (ör. TeamA, team-a → team-a)
  • Zaman bağlı eşlemeleri destekleyin (eski isim bir kesme tarihine kadar geçerli)
  • Değişikliği yapanı ve nedeni kaydedin (audit notları)

Bu eşleme UI'si ayrıca zenginleştirme için kullanılabilir: app=checkout varsa ama cost-center eksikse, bir uygulama kaydından bunu çıkarım yoluyla tamamlayabilirsiniz.

İstisnaları hesap verebilirliği bozmadan ele alın

Bazı maliyetler düzgün etiketlenmez:

  • Paylaşılan kaynaklar (Kubernetes cluster'ları, paylaşılan VPC'ler, NAT gateway'ler)
  • Platform maliyetleri (CI, gözlemlenebilirlik, dahili araçlar)
  • Güvenlik araçları (merkezi tarayıcılar, SIEM)

Bunları "paylaşılan servisler" olarak modelleyin ve net tahsis kuralları belirleyin (ör. kişi başına, kullanım metriklerine göre veya orantılı harcama). Amaç mükemmel atıf değil—tutarlı sahipliktir; böylece her doların bir evi ve açıklayabilecek bir kişi olur.

Tahsis motoru: kurallar, bölüşümler ve paylaşılan maliyet stratejileri

Takımınız için çalışır hale getirin
İç aracı ekibiniz için konuşlandırın ve ardından özelleştirilmiş domaine taşıyın.
Dağıt

Tahsis motoru normalize fatura satırlarını “bu maliyeti kim sahiplenir ve neden” haline getirir. Amaç sadece matematik değil—paydaşların anlayabileceği, itiraz edebileceği ve iyileştirebileceği sonuçlar üretmektir.

Temel tahsis yöntemleri

Çoğu ekip tüm maliyetler temiz sahiplikle gelmediği için karışık yaklaşımlara ihtiyaç duyar:

  • Doğrudan etiketler/label'lar: bir satır zaten bir sahip etiketi içeriyorsa doğrudan atayın.
  • Kullanım sürücülerine göre bölüşüm: paylaşılan servisleri ölçülebilir tüketime göre tahsis edin (CPU saatleri, depolanan GB, istek sayısı, log ingest, node-saat).
  • Sabit yüzdeler: kararlı anlaşmalar için uygundur (ör. platform takımı paylaşılan networking'in %30'unu karşılar), ama düzenli gözden geçirilmeli.

Politika gibi davranan kurallar

Tahsisi öncelik ve geçerlilik tarihleri olan sıralı kurallar olarak modelleyin. Böylece: “10 Mart'ta hangi kural uygulandı?” sorusuna cevap verebilirsiniz ve politikayı güvenle güncelleyebilirsiniz.

Pratik bir kural şeması genellikle şunları içerir:

  • Eşleşme koşulları (bulut, hesap/abonelik, servis, SKU, etiket varlığı, proje, bölge)
  • Tahsis hedefi (takım/ürün/ortam)
  • Tahsis yöntemi (doğrudan, kullanım bazlı, yüzde)
  • Geçerlilik penceresi (başlangıç/bitiş tarihi) ve öncelik

Paylaşılan maliyetleri ele almak (zor kısım)

Paylaşılan maliyetler—Kubernetes cluster'ları, networking, veri platformları—nadiren tek takıma birebir bağlanır. Önce bunları “havuz” olarak ele alın, sonra dağıtın.

Örnekler:

  • Kubernetes: cluster maliyetlerini havuzlayın, sonra namespace kullanımına göre bölün (pod CPU/bellek istekleri veya gerçek kullanım).
  • Networking: NAT gateway ve egress'i VPC/proje başına aktarılan byte'a göre tahsis edin.
  • Veri platformları: data warehouse/stream maliyetlerini sorgu süresine, kredi kullanımına veya işlenen GB'e göre paylaştırın.

Sonuçları açıklanabilir kılın

Önce/sonra görünümleri sağlayın: orijinal sağlayıcı satırları vs. sahip bazlı tahsis sonuçları. Her tahsis satırı için bir “açıklama” saklayın (kural ID'si, eşleşen alanlar, sürücü değerleri, bölüşüm yüzdeleri). Bu denetim izi itirazları azaltır ve özellikle chargeback/showback dönemlerinde güven oluşturur.

Depolama ve performans: hızlı kalan veri ambarı tabloları

Bulut fatura dışa aktarımları hızla büyür: kaynak başına satır öğeleri, saatlik, birden fazla hesap ve sağlayıcı. Uygulamanız yavaş hissettirdiğinde kullanıcılar ona güvenmeyi bırakır—bu yüzden depolama tasarımı ürün tasarımıdır.

Bir veri ambarı + OLAP-dostu görünümler seçin

Yaygın bir kurulum, doğruluk ve basit join'ler için ilişkisel bir veri ambarı (küçük konuşlandırmalar için Postgres; hacim arttıkça BigQuery veya Snowflake), artı analitik için OLAP tarzı görünümler/materialize edilmiş tablolar kullanmaktır.

Ham fatura satırlarını alındıkları gibi saklayın (artı import zamanı ve kaynak dosya gibi birkaç ingest alanı). Ardından uygulamanızın sorgulayacağı küratör tablolar oluşturun. Bu, “ne aldık” ile “nasıl raporluyoruz”u ayırır ve denetimler ile yeniden işlemeyi daha güvenli kılar.

Eğer sıfırdan inşa ediyorsanız, ilk iterasyonu hızlandırmak için mimariyi hızlıca iskeletleyebilen bir platform kullanmayı düşünün. Örneğin Koder.ai (vibe-coding platformu) ekiplerin sohbet yoluyla çalışan bir web uygulaması üretmesine yardımcı olabilir—genelde React frontend, Go backend ve PostgreSQL ile—böylece güveni belirleyen veri modeli ve tahsis mantığını doğrulamaya daha fazla zaman ayırabilirsiniz.

İnsanların sorduğu sorulara göre partition yapın

Çoğu sorgu zaman ve sınır (bulut hesap/abonelik/proje) filtreler. Buna göre partition ve cluster/index belirleyin:

  • Kullanım tarihine göre partition (günlük partitionlar faturalama için iyi çalışır)
  • Bulut hesap ve sağlayıcıya göre cluster/index
  • Yüksek kardinaliteli alanları (resource ID'ler) ana pano yollarının dışında tutun

Böylece “Son 30 gün, Takım A” sorgusu toplam geçmiş çok büyük olsa bile hızlı kalır.

Panolar için ön-aggregate yapın

Panolar ham satırları tarayıp yüklenmemeli. Kullanıcıların keşfettiği tanegranüllerde aggregate tablolar oluşturun:

  • Takım, servis ve ortam bazında günlük maliyet
  • Gerekli yerde servis/SKU bazında günlük kullanım
  • Finans için aylık özetler

Bu tabloları zamanlı (veya artımlı) olarak materialize edin ki grafikler saniyeler içinde yüklensin.

Backfill ve yeniden hesaplama planlayın

Tahsis kuralları, etiket eşlemeleri ve sahiplik tanımları değişecek. Tarihi yeniden hesaplamak için tasarlayın:

  • Tahsis çıktılarınızı versiyonlayın (kural seti ID + çalıştırma zaman damgası)
  • Hedeflenmiş backfill destekleyin (belirli tarih aralıkları/hesaplar)
  • Ham + küratör veriyi değiştirilemez tutarak yeniden çalıştırma yapılmadan izlenebilirliği koruyun

Bu esneklik bir maliyet panosunu güvenilen bir sisteme dönüştürür.

UX ve panolar: maliyetleri keşfetmeyi ve açıklamayı kolaylaştırın

Tahsis mantığınızı daha hızlı test edin
Öncelik ve geçerlilik tarihleri olan bir tahsis kuralları arayüzü başlatın, sonra güvenle yineleyin.
Şimdi Oluştur

Bir maliyet tahsis uygulaması, insanların yaygın sorulara saniyeler içinde cevap bulabildiğinde başarılı olur: “Harcamadaki sıçrama neden oldu?”, “Bu maliyet kime ait?” ve “Bunun için ne yapabiliriz?” UI, toplamdan detaya açık bir hikaye anlatmalı, kullanıcıları fatura jargonunu anlamaya zorlamamalıdır.

Kullanıcıların gerçekten ihtiyaç duyduğu temel sayfalar

Küçük, öngörülebilir bir görünüm setiyle başlayın:

  • Overview: toplam harcama, önceki döneme göre trend, en büyük maliyet sürücüleri ve kısa bir “ne değişti” paneli.
  • Team view: sahip bazında maliyetler (takım/maliyet merkezi), paylaşılan tahsisler ve tahsis edilmemiş öğeler dahil.
  • Service breakdown: bulut ürünü bazında harcama (ör. compute, storage), bölge veya hesap/aboneliğe göre pivot yapma yeteneği ile.
  • Anomalies: sıra öncelikli olağan dışı sıçramalar listesi, sade dilde açıklamalar ve ilgili satırlara bağlantılar.

Tutarlı filtreler ve stabil bir zihinsel model

Her yerde aynı filtre çubuğunu kullanın: tarih aralığı, bulut, takım, proje ve ortam (prod/stage/dev). Filtre davranışını tutarlı tutun (aynı varsayılanlar, tüm grafiklere uygulama), aktif filtreleri görünür yapın ki ekran görüntüleri ve paylaşılan linkler kendini açıklasın.

Dead-end olmadan drill-down

Niyetli bir yol tasarlayın:

Fatura toplamı → tahsis edilmiş toplam → servis/kategori → hesap/proje → SKU/satır öğeleri.

Her adımda sayının yanına “neden”i gösterin: uygulanan tahsis kuralları, kullanılan etiketler ve varsayımlar. Kullanıcı bir satır öğesinde olduğunda hızlı eylemler sunun: “sahip eşlemesini görüntüle” (metin gösterimi: /settings/ownership) veya “eksik etiket bildir” (metin gösterimi: /governance/tagging).

İzinlere saygılı dışa aktarımlar ve paylaşım

Her tablodan CSV dışa aktarımı ekleyin, ama filtreleri koruyan paylaşılabilir linkler de sunun. Linkleri rapor gibi ele alın: rol tabanlı erişimi göstersin, bir denetim izi olsun ve isteğe bağlı olarak süresi dolsun. Bu, iş birliğini kolaylaştırır ve hassas harcama verilerini kontrol altında tutar.

Bütçeler, uyarılar ve anomaliler: sadece rapor değil, aksiyon üretin

Panolar olanları açıklar. Bütçeler ve uyarılar ise bir sonraki adımı değiştirir. Eğer uygulamanız bir takıma “aylık bütçenizi aşmak üzere olduğunuzu” söyleyemiyorsa (ve doğru kişiyi bilgilendiremiyorsa), sadece raporlama aracı olmaya devam eder.

Sahiplenilebilen bütçeler

Tahsis ettiğiniz düzeyde (takım, proje, ortam, ürün) bütçelerle başlayın. Her bütçe şunlara sahip olmalı:

  • Net bir sahibi (kişi veya on-call rotasyonu) ve isteğe bağlı izleyiciler
  • Bir dönem (aylık en basit; hızlı hareket eden takımlar için haftalık ekleyin)
  • Eşikler (ör. %50/%80/%100) ve farklı bildirim acil seviyesi
  • Kapsam kuralları tahsis modelinizle uyumlu olmalı (etiketler, hesap/abonelik, maliyet merkezi)

UI'yi basit tutun: miktar + kapsam + sahip ayarlamak için tek bir ekran ve “bu kapsamdaki geçen ay harcaması” önizlemesi.

"Harcamalar yüksek"ten daha öte uyarılar

Bütçeler yavaş seyreden sapmaları yakalar, ama ekiplerin anlık sinyallere ihtiyacı da var:

  • Harcamada ani sıçramalar (bugün vs son ortalama)
  • Eksik etiketler (yüksek maliyetli yeni kaynaklar etiketlenmemiş)
  • Olağandışı kullanım değişiklikleri (ör. veri egress iki katına çıktı, CPU saatleri arttı)

Uyarıları uygulanabilir yapın: en büyük sürücüleri (servis, bölge, proje) ve kısa bir açıklama ekleyin ve explorer görünümüne bağlanacak filtrelenmiş bir yol sunun (metin olarak örnek: /costs?scope=team-a&window=7d).

ML'den önce basit anomali mantığı

Makine öğrenmeden önce izlenmesi kolay ve debug edilebilir temel karşılaştırmalar uygulayın:

  • Bir bazal pencere seçin (ör. son 14 günün trailing'i, son 1 günü hariç tutarak)
  • Güncel pencereyi (ör. son 24saat) bazal ortalama/medyan ile karşılaştırın
  • Hem oransal değişim (ör. +%60) hem de mutlak delta (ör. +$200) eşiklerini aştığında tetikleyin

Bu, küçük harcama kategorilerinde gürültülü uyarıları engeller.

Döngüyü kapatın: eylem sonuçlarını kaydedin

Her uyarı olayını şöyle saklayın: acknowledged, muted, false positive, fixed veya expected. Kimin ne yaptığını ve ne kadar sürede yaptığını takip edin.

Zamanla bu geçmişi kullanarak gürültüyü azaltın: tekrar eden uyarıları otomatik bastırın, kapsam başına eşikleri iyileştirin ve sürekli etiketlenmeyen takımları tespit ederek bildirim yerine işlem akışlarını düzeltin.

Güvenlik, erişim kontrolü ve denetlenebilirlik

Maliyet verisi hassastır: satıcı fiyatlamasını, dahili projeleri ve hatta müşteri taahhütlerini açığa çıkarabilir. Maliyet uygulamanızı finansal bir sistem gibi ele alın—birçok ekip için gerçekten öyledir.

Gerçek iş akışlarına uygun roller ve izinler

Küçük bir rol seti ile başlayın ve anlaşılır yapın:

  • Admin: bulut bağlayıcılarını, global ayarları ve erişimi yönetir.
  • Finance: tahsis kurallarını düzenleyebilir ve chargeback/showback dışa aktarımlarını onaylayabilir.
  • Takım lideri: kendi takımlarının maliyetlerini görebilir, takım düzeyinde etiket/sahipliği yönetebilir ve kural değişiklikleri önerir.
  • Viewer: sadece okuma ve drill-down.

Bunları sadece UI'da değil, API'de de uygulayın ve kaynak düzeyinde kapsam ekleyin (ör. bir takım lideri diğer takımların projelerini göremesin).

Güvenli bağlayıcılar ve secret rotasyonu

Bulut fatura dışa aktarımları ve kullanım API'leri kimlik bilgileri gerektirir. Sırları özel bir secret manager'da (veya KMS ile şifrelenmiş şekilde) saklayın, asla düz veritabanı alanlarında tutmayın. Rotasyonun güvenli olması için bağlayıcı başına birden fazla aktif kimlik bilgisi ve “etkili tarih” desteği sağlayın ki anahtar değişimlerinde ingest kesilmesin.

Pratik UI ayrıntıları yardımcı olur: son başarılı senkron zamanı, izin kapsamı uyarıları ve açık bir “yeniden kimlik doğrulama” akışı gösterin.

Güvenilir denetim günlükleri

Eklemeli (append-only) denetim günlükleri ekleyin:

  • tahsis kural değişiklikleri (önce/sonra, kim, ne zaman)
  • import/eksport ve indirilen raporlar
  • bağlayıcı değişiklikleri ve credential güncellemeleri

Günlükleri aranabilir ve dışa aktarılabilir (CSV/JSON) yapın ve her günlük girdisini etkilenen objeye bağlayın.

Ürün içindeki veri işleme ve saklama politikası

Ham fatura dosylarının ne kadar süre saklandığı, hangi noktada agregat tabloların ham verinin yerini aldığı ve kimlerin veri silebileceği gibi saklama/gizlilik ayarlarını UI'da belgeleyin. Basit bir “Data Handling” sayfası (ör. metin gösterimi: /settings/data-handling) destek biletlerini azaltır ve finance ile güvenlik ekiplerinin güvenini artırır.

Entegrasyonlar ve API'ler: insanların zaten kullandığı araçlara bağlanın

Harcamadaki değişiklikleri görünür kılın
Raporlamadan ziyade aksiyon alan uyarılar ve bütçe/gösterge panoları prototipleyin.
Uyarı Ekle

Bir maliyet tahsis uygulaması, veriler insanların zaten kullandığı yerde görünür olduğunda davranışı değiştirir. Entegrasyonlar raporlama yükünü azaltır ve maliyet verisini ortak operasyonel bağlama dönüştürür—finance, mühendislik ve liderlik aynı sayılara günlük araçlarında erişir.

Sohbet uyarıları (Slack / Microsoft Teams)

İlk adım olarak bildirimlerle başlayın; bunlar anında aksiyon sağlar. Kısa mesajlar gönderin: sahip, servis, delta ve uygulamadaki tam görünüme geri dönen bir yol (filtrelenmiş) ekleyin.

Tipik uyarılar:

  • Bütçe eşiği aşıldı (80%, 100%)
  • Haftaya göre olağandışı harcama sıçraması
  • Yüksek maliyetli kaynaklarda eksik etiket

SSO ve kimlik (Okta, Azure AD, Google Workspace)

Erişim zor ise benimsenme zor olur. SAML/OIDC SSO'yu destekleyin ve kimlik gruplarını maliyet “sahipleri”ne (takımlar, maliyet merkezleri) eşleyin. Bu offboarding'i kolaylaştırır ve izinleri organizasyon değişiklikleriyle uyumlu tutar.

Dahili bir Cost API (portallar ve otomasyon için)

İç sistemlerin “takım/proje bazlı maliyet”i ekran kazıma yapmadan alması için kararlı bir API sağlayın.

Pratik bir şekil:

  • GET /api/v1/costs?team=payments\u0026start=2025-12-01\u0026end=2025-12-31\u0026granularity=day
  • Döndürülen: tahsis edilmiş maliyet, tahsis edilmemiş maliyet, kullanım birimleri ve kullanılan kural seti/versiyonu

Rate limitler, cache başlıkları ve idempotent sorgu semantiğini belgeleyin ki tüketiciler güvenilir pipeline'lar kurabilsin.

Olay kancaları (Webhooks)

Webhooks uygulamanızı reaktif kılar. budget.exceeded, import.failed, anomaly.detected ve tags.missing gibi olaylar tetikleyici olabilir.

Yaygın hedefler: Jira/ServiceNow ticket oluşturma, olay araçları veya özel runbook'lar.

BI dışa aktarımları (Looker, Power BI, Tableau)

Bazı ekipler kendi panolarından vazgeçmez. Yönetilen bir dışa aktarım (veya salt okunur ambar şeması) sunun ki BI raporları aynı tahsis mantığını kullansın—kendi formüllerini yeniden uygulamasınlar.

Eğer entegrasyonları eklenti olarak paketlerseniz, kullanıcıları plan ayrıntıları için /pricing gibi yerlere yönlendirebilirsiniz.

Test, izleme ve dağıtım: sayılara güveni sürdürün

Bir maliyet tahsis uygulaması ancak insanların ona inanmasıyla çalışır. Bu güven, tekrarlanabilir testler, görünür veri kalite kontrolleri ve ekiplerin mevcut bildikleri sayılarla karşılaştırma yapabildiği bir rollout ile kazanılır.

Gerçek fatura örnekleriyle test edin (çirkin kısımlar dahil)

Başlangıç olarak sağlayıcı dışa aktarımlarından ve faturalarından bir küçük örnek kitaplığı oluşturun; bu örnekler kredi, iade, vergi/KDV, bayi ücretleri, ücretsiz katman, taahhüt bazlı indirimler ve destek ücretleri gibi yaygın uç durumları içermeli. Bu örnekleri saklayın ki parsing veya tahsis mantığı her değiştiğinde testleri yeniden çalıştırabilesiniz.

Testleri sadece parsing değil, sonuç odaklı tutun:

  • Toplamların servis/hesap bazında öngörülebilir olduğu “bilinen bir ay” testi.
  • Tahsis kuralı değişiklikleri (ör. %60/%40 bölüşüm) yalnızca beklenen çıktıları değiştirmeli.
  • Günlük vs aylık düzeyde yuvarlama davranışı.

Sağlayıcı toplamları ile eşleşen veri kalitesi testleri

Hesapladığınız toplamların sağlayıcı raporlarına bir tolerans içinde uyduğunu doğrulayan otomatik testler ekleyin (yuvarlama veya zamanlama farkları nedeniyle küçük sapmalar olabilir). Bu kontrolleri zaman içinde takip edin ve “Bu sapma ne zaman başladı?” sorusuna cevap verebilecek veriyi saklayın.

Yararlı doğrulamalar:

  • Fatura dönemi bazında toplam maliyet ihraca/externale göre eşleşir.
  • Beklenmedik negatif maliyet yoktur (iade/kredi bekleniyorsa harici işaretleme olsun).
  • Para birimi ve döviz kuru işlemleri tutarlı.

İzleme: ingest, tazelik ve sorgu sağlığı

Ingest hataları, duraklayan pipeline'lar ve “veri güncellenmeyeli X zaman oldu” eşikleri için uyarılar kurun. Yavaş sorguları ve pano yükleme sürelerini izleyin, hangi raporların ağır taramalar yaptığını kaydedin ki doğru tabloları optimize edebilin.

Yayılma planı: pilot, eğitim ve geri bildirim döngüleri

Önce birkaç takımla pilot çalıştırın. Onlara mevcut spreadsheet veya raporlarıyla karşılaştırma görünümü verin, tanımlarda anlaşın, sonra kısa eğitim ve net bir geri bildirim kanalı ile genişletin. Bir değişiklik günlüğü yayınlayın (örneğin metin gösterimi: /blog/changelog) ki paydaşlar ne değiştiğini ve nedenini görebilsin.

Eğer pilot sırasında ürün gereksinimlerini hızlıca yinelemeniz gerekiyorsa, Koder.ai gibi araçlar UI akışlarını (filtreler, drill-down yolları, tahsis kural editörleri) prototiplemek ve tanımlar değiştikçe çalışan versiyonları tekrar üretmek için faydalı olabilir—aynı zamanda kaynak kodu dışa aktarma, dağıtım ve rollback üzerinde kontrol sizde kalır.

SSS

Bir bulut maliyet tahsis web uygulaması inşa etmeden önce ne tanımlamalıyım?

Uygulamanın desteklemesi gereken kesin kararları tanımlamakla başlayın (ay kapanışı açıklama, israfı azaltma, bütçe sorumluluğu, tahminleme). Sonra birincil kullanıcıları (Finance/FinOps, Mühendislik, takım liderleri, yöneticiler) ve önce teslim edeceğiniz minimum çıktıları belirleyin: showback, chargeback, forecasting veya budget control.

Panoları inşa etmeden önce "iyi"nin ne olduğunu ve sağlayıcı faturalarıyla nasıl mutabakat yapılacağını yazılı hale getirmekten kaçınmayın.

Bir maliyet tahsis uygulamasında showback ile chargeback arasındaki fark nedir?

Showback, kimin ne harcadığını görünür kılar fakat dahili faturalandırma yapmaz. Chargeback, tahsislerin bütçelere yansıdığı ve genellikle onay/günlüğe ihtiyaç duyulan uygulanabilir iç faturalamadır.

Sert sorumluluk gerekiyorsa, showback ile başlasanız bile baştan chargeback için gerekli özellikleri tasarlamaya başlayın (değiştirilemez ay-kapama anlık görüntüleri, açıklanabilir kurallar ve resmi dışa aktarmalar).

Mutabakat sorunlarını önlemek için veri modelinde hangi metrikler olmalı?

Her sağlayıcı satırını tutarlı ölçümlerle bir kayıt olarak modelleyin:

  • Maliyet: vergi öncesi, efektif (indirim sonrası), faturalandırılmış/fatura tutarı
  • Kullanım: miktar artı birim veride saklanmalı
  • Kredi/indirimler, iade/ayarlamalar, vergiler/ücretler

Pratik bir kural: eğer bir değer finansın ödediğini veya bir takımın ücretlendirileceğini değiştirebiliyorsa, onu birinci sınıf metrik yapın.

Bulut harcamasını gruplamak ve tahsis etmek için hangi boyutlar en önemli?

Kullanıcıların gerçekten "grup" yaptığı boyutlarla başlayın:

  • Faturalama varlığı (hesap/abonelik/fatura hesabı)
  • Proje/uygulama
  • Takım/maliyet merkezi/sahip
  • Ortam (prod/stage/dev)
  • Servis ve SKU/meter
  • Bölge/zone

Boyutları esnek tutun; ileride cluster/namespace/vendor gibi eklemeler yapabilmelisiniz.

Faturalama raporlarında zaman dönemlerini (gün vs fatura dönemi) nasıl ele almalıyım?

Farklı iş akışları farklı saat kavramlarına dayanır; birden fazla zaman anahtarı saklayın:

  • Fatura dönemi: finans mutabakatı için
  • Gün: trendler ve anomali tespiti için
  • Ay: yönetici raporları ve bütçeler için

Ayrıca sağlayıcının orijinal zaman dilimini ve faturalama sınırlarını saklayın ki geç gelen düzeltmeler sağlayıcının niyet ettiği aya düşsün.

Faturalama alımı günlük mü yoksa gerçek zamanlı mı olmalı?

Gerçek zamanlı (near-real-time) acil müdahale ve hızlı hareket eden organizasyonlar için faydalıdır, fakat karmaşıklık (çift alma, kısmi günler) ve maliyeti artırır.

Finans ve çoğu ekip için günlük güncelleme genellikle yeterlidir. Yaygın bir hibrit yaklaşım: tazelik için event-driven ingestion ve kaçan dosyaları yakalamak için günlük bir "sweeper" iş.

Ham fatura dışa aktarmalarını neden değiştirilemez bir staging alanında saklamalıyım?

Ham sağlayıcı dışa aktarmalarını immutable, versiyonlanmış bir staging alanda saklayın (S3/Blob/BigQuery tabloları gibi) ve bir ingest günlüğü (ne çekildi, ne zaman, kaç kayıt) tutun.

Bu, denetimler için, parser değiştiğinde yeniden işleme için ve bir sayının hangi kaynak dosyadan geldiğini gösterebilmek için önemlidir.

AWS, Azure ve GCP faturalarını tek bir şemaya nasıl normalleştirirsiniz?

Sağlayıcıya özgü kavramları birleşik bir şemaya (örneğin: Service, SKU, Usage Type) dönüştürün ve izlenebilirlik için sağlayıcıya ait ID'leri koruyun.

Ardından şu hijyen adımlarını uygulayın:

  • Kararlı anahtarlarla dedupe (kaynak satır öğesi ID + tarih gibi)
  • Kısmi günleri provisional olarak işaretle
  • Eksik etiketleri gerçek unallocateddan ayır
  • Soyutlama alanlarında lineage alanları (kaynak dosya, import zamanı, dönüşüm versiyonu) ekleyin

Bu, multi-cloud grafiklerin ve tahsis kurallarının öngörülebilir davranmasını sağlar.

Etiketleri/label'ları nasıl uygular ve karışık etiket değerleriyle nasıl başa çıkarsınız?

Küçük bir required key seti tanımlayın (örneğin team, app, cost-center, env) ve kabul edilen formatları ve eksik etiketlerde yapılacakları netleştirin.

Üründe bir eşleme katmanı ekleyin ki gerçek dünyadaki sapmayı düzeltip tarihçeyi bozmadan değerleri kanonik hale getirebilesiniz (ör. TeamA → ). Değişikliklerin kim tarafından ve neden yapıldığını kaydedip zaman bağlı eşlemeleri destekleyin.

Paylaşılan maliyetleri ve itirazları ele almak için tahsis motoru neleri desteklemeli?

Tahsis işlemini öncelikli ve geçerlilik tarihli sıralı kurallar olarak modelleyin. Birden fazla yöntem destekleyin:

  • Tag/label ile doğrudan atama
  • Paylaşılan servisler için kullanım tabanlı paylaştırma (CPU saatleri, depolama GB, egress byte)
  • Sabit yüzdeler (ör. platform takımı %30 öder)

Sonuçları açıklanabilir kılın: her tahsis satırı için hangi kuralın uygulandığını, eşleşen alanları, sürücü değerlerini ve pay yüzdelerini saklayın.

İçindekiler
Sorunu tanımlayın: maliyetler, kullanım ve kim cevap arıyorNe ölçeceğinizi kararlaştırın: veri modeli ve temel boyutlarFatura verisini toplayın: dışa aktarmalar, API'ler ve ingest akışıNormalleştirin ve doğrulayın: farklı bulutları karşılaştırılabilir kılınEtiketleme ve sahiplik: ham maliyetleri hesap verebilir maliyetlere dönüştürünTahsis motoru: kurallar, bölüşümler ve paylaşılan maliyet stratejileriDepolama ve performans: hızlı kalan veri ambarı tablolarıUX ve panolar: maliyetleri keşfetmeyi ve açıklamayı kolaylaştırınBütçeler, uyarılar ve anomaliler: sadece rapor değil, aksiyon üretinGüvenlik, erişim kontrolü ve denetlenebilirlikEntegrasyonlar ve API'ler: insanların zaten kullandığı araçlara bağlanınTest, izleme ve dağıtım: sayılara güveni sürdürünSSS
Paylaş
Koder.ai
Build your own app with Koder today!

The best way to understand the power of Koder is to see it for yourself.

Start FreeBook a Demo
team-a