---
title: 'Dağıtım Modelleri'
source: 'https://academia.sh/tr/kurslar/bulut-temelleri/dagitim-modelleri'
course: 'Bulut Temelleri'
language: tr
updated: '2026-08-17T18:06:53+00:00'
license: 'CC BY-SA 4.0'
---

# Dağıtım Modelleri

Genel, özel ve karma dağıtımın ölçüsü: altı bileşenlik aynı iş yükünde genel düzenin iki bileşeni yerleştirememesi ve yedi çağrı bağından altısının kurulamaması, denetimde kalan kalemin 8/24, 36/36, 20/36 ve 28/36 olması, sabit ayrılmış kapasitenin %0, %100, %45 ve %75, esneklik penceresinin 1,0, 21,0, 10,0 ve 16,0 gün olması, karmanın her iki biçiminde de 18 işletim kalemi, iki kimlik dizini ve altı eşleme kalemi ödemesi.

Önceki ders kiralamanın **derinliğini** ölçtü: aynı karar kümesinin üç hizmet modelinde nasıl
bölündüğünü. Bütün sayılar tek bir sessiz varsayım altında çıktı — kiralanan hizmet herkese açık
bir havuzdan alınıyor. Oysa aynı hizmet türü yalnız tek bir kuruma ayrılmış bir düzende de
kurulabilir, ya da iş yükünün bir kısmı birinde, kalanı ötekinde koşabilir.

Bu üç seçeneğin adı **genel bulut**, **özel bulut** ve **karma bulut**tur. Genel bulutta kaynak
paylaşımlı bir havuzdan gelir; özel bulutta havuz tek bir kuruma ayrılmıştır; karma bulutta iş
yükü ikiye bölünür. Bu ders aynı iş yükünü üçünde de kurar ve dört kalemi birlikte sayar:
**denetim altında kalan kalem**, **sabit ayrılmış kapasite**, **esneklik penceresi** ve verinin
nerede durabileceği kısıtı.

## İş Yükü ve Yerleşim Sınıfı

Örnek, kursun kurgu **bölgesel ölçüm ağı**dır: okuma toplayıcı, doğrulayıcı, faturalama, iş emri,
gecelik toplu iş ve abone portalı. Ağ da bileşenler de kurgudur; aşağıdaki yerleşim bir
**modeldir**, gerçek bir veri merkezi ya da sözleşme yoktur. Verinin nerede durabileceği burada
**tür** olarak ele alınır; hiçbir düzenlemenin adı geçmez.

**BK13:** iş yükü altı bileşen ve yedi çağrı bağıdır; her bileşenin bir kapasite payı ve bir veri
yerleşim sınıfı vardır. **BK14:** üç yerleşim sınıfı vardır — sınırsız, belirli sınır içinde,
yalnız kurum tesisinde. **BK15:** genel düzen ilk iki sınıfı karşılar, özel düzen üçünü de; karma
düzen bileşeni bileşen bölerek karşılar. **BK16:** denetim kalemleri altıdır; genel tarafta
bunlardan ikisi müşteride kalır, kurum tesisinde altısı da. **BK17:** esneklik penceresi genel
tarafta 1, kurum tesisinde 21 kurgu gündür; sabit ayrılmış kapasite, kurum tesisine düşen
bileşenlerin kapasite payıdır. **BK18:** işletim kalemi kümesi dokuzdur ve her kurulu düzen için
ayrı yürütülür; birden çok düzen varsa her bileşen için bir kimlik eşlemesi kalemi eklenir.

```js
// bulut/dagitim.mjs — kurgu olcum aginin uc dagitim duzeninde yerlesimi (model): gercek bir
// veri merkezi, gercek bir duzenleme ya da gercek bir sozlesme yok. Rastgelelik yok.

// yerlesim sinifi: sinirsiz < belirli-sinir < kurum-tesisi (en kisitli)
export const BILESEN = `
  toplayici      30  kurum-tesisi
  dogrulayici    20  belirli-sinir
  faturalama     15  kurum-tesisi
  is-emri        10  belirli-sinir
  gecelik-toplu  15  sinirsiz
  portal         10  belirli-sinir`
  .trim().split("\n").map((r) => {
    const [ad, pay, sinif] = r.trim().split(/\s+/);
    return { ad, pay: +pay, sinif };
  });

export const BAG = `
  toplayici dogrulayici / dogrulayici faturalama / dogrulayici gecelik-toplu /
  faturalama is-emri / portal faturalama / portal toplayici / is-emri toplayici`
  .trim().split("/").map((r) => r.trim().split(/\s+/));

// Dort kullanici akisi: her akis art arda cagri baglarindan gecer.
export const AKIS = `
  okuma-akisi        toplayici dogrulayici faturalama
  gecelik-akis       toplayici dogrulayici gecelik-toplu
  abone-sorgusu      portal faturalama is-emri
  saha-akisi         is-emri toplayici`
  .trim().split("\n").map((r) => {
    const [ad, ...yol] = r.trim().split(/\s+/);
    return { ad, yol };
  });

// Alti denetim kalemi; genel tarafta yalniz ikisi musteride kalir, kurum tesisinde altisi da.
export const DENETIM = ["fiziksel-erisim", "donanim-omru", "komsuluk", "yama-takvimi",
  "gunluk-kaydina-erisim", "anahtar-saklama-yeri"];
export const GENEL_DENETIM = ["gunluk-kaydina-erisim", "anahtar-saklama-yeri"];
export const ISLETIM = ["yama-akisi", "izleme", "yedekleme", "kimlik", "ag-kurali",
  "kapasite-plani", "gunluk-toplama", "surum-dagitimi", "olay-yordami"];
export const PENCERE = { genel: 1, ozel: 21 };   // esneklik penceresi (kurgu gun)

// Duzen: her bilesen "genel" ya da "ozel" tarafa dusuyor; null = yerlestirilemiyor.
export const DUZEN = {
  genel: (b) => (b.sinif === "kurum-tesisi" ? null : "genel"),
  ozel: () => "ozel",
  "karma-dar": (b) => (b.sinif === "kurum-tesisi" ? "ozel" : "genel"),
  "karma-genis": (b) => (b.sinif === "sinirsiz" || b.ad === "is-emri" ? "genel" : "ozel"),
};

export function kos(duzenAd) {
  const yer = Object.fromEntries(BILESEN.map((b) => [b.ad, DUZEN[duzenAd](b)]));
  const kurulu = BILESEN.filter((b) => yer[b.ad]);
  const taraf = [...new Set(kurulu.map((b) => yer[b.ad]))];
  const payToplam = kurulu.reduce((a, b) => a + b.pay, 0);
  const sabit = kurulu.filter((b) => yer[b.ad] === "ozel").reduce((a, b) => a + b.pay, 0);
  const denetim = kurulu.reduce((a, b) =>
    a + (yer[b.ad] === "ozel" ? DENETIM.length : GENEL_DENETIM.length), 0);
  const pencere = kurulu.reduce((a, b) => a + b.pay * PENCERE[yer[b.ad]], 0) / payToplam;
  const sinir = BAG.filter(([a, b]) => yer[a] && yer[b] && yer[a] !== yer[b]).length;
  const kopuk = BAG.filter(([a, b]) => !yer[a] || !yer[b]).length;
  const akis = AKIS.map((a) => {
    if (a.yol.some((x) => !yer[x])) return { ad: a.ad, gecis: null };
    let g = 0;
    for (let i = 1; i < a.yol.length; i++) if (yer[a.yol[i - 1]] !== yer[a.yol[i]]) g++;
    return { ad: a.ad, gecis: g };
  });
  return { duzen: duzenAd, akis, taraf: taraf.length, sinir, kopuk, dizin: taraf.length,
    yerlesmeyen: BILESEN.length - kurulu.length, sabit: Math.round((sabit / payToplam) * 100),
    denetim, hucre: kurulu.length * DENETIM.length,
    pencere: pencere.toFixed(1), isletim: ISLETIM.length * taraf.length,
    eslesme: taraf.length > 1 ? kurulu.length : 0 };
}
```

```js
// bulut/olc.mjs — ayni is yuku uc dagitim duzeninde: denetim, sabitlik, esneklik, sinir bedeli.
import { kos, BILESEN, BAG, AKIS, DUZEN, DENETIM, ISLETIM, PENCERE } from "./dagitim.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const D = Object.keys(DUZEN), R = Object.fromEntries(D.map((d) => [d, kos(d)]));

console.log(`is yuku: ${BILESEN.length} bilesen, ${BAG.length} cagri bagi, ` +
  `${DENETIM.length} denetim kalemi, ${ISLETIM.length} isletim kalemi; ` +
  `esneklik penceresi genel ${PENCERE.genel} / ozel ${PENCERE.ozel} gun`);

const A = [-16, 6, 12, 10, 12, 13];
console.log("\n1. hangi bilesen nereye dusuyor (veri yerlesim sinifina gore)");
yaz(A, "bilesen", "pay", ...D);
for (const b of BILESEN) yaz(A, b.ad, b.pay, ...D.map((d) => DUZEN[d](b) ?? "yerlesmez"));

const B = [-36, 10, 12, 13, 13];
console.log("\n2. ayni is yuku kalem kalem");
yaz(B, "olcu", ...D);
for (const [ad, f] of [
  ["yerlesemeyen bilesen", (r) => r.yerlesmeyen],
  ["denetimde kalan kalem (bilesen x 6)", (r) => `${r.denetim}/${r.hucre}`],
  ["sabit ayrilmis kapasite (%)", (r) => r.sabit],
  ["esneklik penceresi (gun, agirlikli)", (r) => r.pencere],
  ["kurulan duzen sayisi", (r) => r.taraf]])
  yaz(B, ad, ...D.map((d) => f(R[d])));

const C = [-36, 10, 12, 13, 13];
console.log("\n3. karmanin gizli bedeli");
yaz(C, "olcu", ...D);
for (const [ad, f] of [
  [`sinir gecen cagri bagi (${BAG.length} uzerinden)`, (r) => r.sinir],
  ["kurulamayan bag (bilesen yerlesmedi)", (r) => r.kopuk],
  ["yurutulen isletim kalemi", (r) => r.isletim],
  ["kimlik dizini", (r) => r.dizin],
  ["kimlik eslesmesi kalemi", (r) => r.eslesme]])
  yaz(C, ad, ...D.map((d) => f(R[d])));

const F = [-36, 10, 12, 13, 13];
console.log("\n4. dort kullanici akisi kac kez sinir geciyor (- = akis kurulamiyor)");
yaz(F, "akis", ...D);
AKIS.forEach((a, i) => yaz(F, `${a.ad} (${a.yol.length} durak)`,
  ...D.map((d) => R[d].akis[i].gecis ?? "-")));
yaz(F, "kurulabilen akis", ...D.map((d) => R[d].akis.filter((a) => a.gecis !== null).length));
yaz(F, "toplam sinir gecisi", ...D.map((d) =>
  R[d].akis.reduce((a, x) => a + (x.gecis ?? 0), 0)));

const E = [-36, 10, 12, 13, 13];
console.log("\n5. cikista ne yeniden kurulur");
yaz(E, "olcu", ...D);
for (const [ad, f] of [
  ["sokulecek duzen", (r) => r.taraf],
  ["yeniden kurulacak sinir bagi", (r) => r.sinir],
  ["tasinamayan denetim kalemi", (r) => r.hucre - r.denetim],
  ["denetimde kalan oran (%)", (r) => Math.round((r.denetim / r.hucre) * 100)]])
  yaz(E, ad, ...D.map((d) => f(R[d])));
```

```
is yuku: 6 bilesen, 7 cagri bagi, 6 denetim kalemi, 9 isletim kalemi; esneklik penceresi genel 1 / ozel 21 gun

1. hangi bilesen nereye dusuyor (veri yerlesim sinifina gore)
bilesen            pay       genel      ozel   karma-dar  karma-genis
toplayici           30   yerlesmez      ozel        ozel         ozel
dogrulayici         20       genel      ozel       genel         ozel
faturalama          15   yerlesmez      ozel        ozel         ozel
is-emri             10       genel      ozel       genel        genel
gecelik-toplu       15       genel      ozel       genel        genel
portal              10       genel      ozel       genel         ozel

2. ayni is yuku kalem kalem
olcu                                     genel        ozel    karma-dar  karma-genis
yerlesemeyen bilesen                         2           0            0            0
denetimde kalan kalem (bilesen x 6)       8/24       36/36        20/36        28/36
sabit ayrilmis kapasite (%)                  0         100           45           75
esneklik penceresi (gun, agirlikli)        1.0        21.0         10.0         16.0
kurulan duzen sayisi                         1           1            2            2

3. karmanin gizli bedeli
olcu                                     genel        ozel    karma-dar  karma-genis
sinir gecen cagri bagi (7 uzerinden)         0           0            6            3
kurulamayan bag (bilesen yerlesmedi)         6           0            0            0
yurutulen isletim kalemi                     9           9           18           18
kimlik dizini                                1           1            2            2
kimlik eslesmesi kalemi                      0           0            6            6

4. dort kullanici akisi kac kez sinir geciyor (- = akis kurulamiyor)
akis                                     genel        ozel    karma-dar  karma-genis
okuma-akisi (3 durak)                        -           0            2            0
gecelik-akis (3 durak)                       -           0            1            1
abone-sorgusu (3 durak)                      -           0            2            1
saha-akisi (2 durak)                         -           0            1            1
kurulabilen akis                             0           4            4            4
toplam sinir gecisi                          0           0            6            3

5. cikista ne yeniden kurulur
olcu                                     genel        ozel    karma-dar  karma-genis
sokulecek duzen                              1           1            2            2
yeniden kurulacak sinir bagi                 0           0            6            3
tasinamayan denetim kalemi                  16           0           16            8
denetimde kalan oran (%)                    33         100           56           78
```

Sayılar **ölçüm** sınıfındadır; girdileri BK13–BK18'dir.

## Yerleşim Kısıtı Bir Maliyet Değil, Bir Olabilirlik

İkinci tablonun ilk satırı diğer bütün satırlardan önce okunur: genel düzende **iki bileşen hiç
yerleşemez**. Toplayıcı ham sayaç okumasını, faturalama abone kimliğiyle tutarı tutar; her ikisi
de kurum tesisi sınıfındadır. Bu iki bileşen yerleşemeyince üçüncü tablodaki `kurulamayan bag`
satırı yedi bağdan **altısını** siler — geriye yalnız doğrulayıcı ile gecelik toplu iş arasındaki
bağ kalır.

Bu, "genel bulut daha ucuz ama daha az denetimli" biçiminde bir denge sorusu değildir. Denge
kurulmadan önce bir olabilirlik kapısı vardır: **tek bir bileşenin yerleşim sınıfı, bütün bir
düzeni eleyebilir.** Genel düzenin denetimde kalan 8/24 kalemi ve 1,0 günlük esneklik penceresi
teknik olarak doğrudur ama yalnız dört bileşen için geçerlidir; kalan iki bileşen için hiçbir
sayı yoktur.

Özel düzen kısıtı tümüyle karşılar ve denetim kalemlerinin **36'sının 36'sını** elde tutar. Bedeli
alt iki satırdadır: sabit ayrılmış kapasite %100 ve esneklik penceresi 21,0 gündür. Yani ilk
dersin ölçtüğü 30 günlük bekleme özel düzende yirmi bire iner ama sıfıra inmez; kaynak kurumun
kendi tesisindeyse, isteğe bağlılık kurumun kendi tedarik hızıyla sınırlıdır.

## Karma Bir Ayar Değil, Bir Eğri

Karma düzen iki biçimde kuruldu. **Dar karma** yalnız zorunlu iki bileşeni kurum tesisine koyar:
sabit kapasite %45, esneklik penceresi 10,0 gün, denetimde kalan kalem 20/36. Ama yedi çağrı
bağından **altısı sınırı geçer** — çünkü kurum tesisine düşen iki bileşen ağın merkezindedir ve
neredeyse her yol onlardan geçer.

**Geniş karma** doğrulayıcıyı ve portalı da kurum tesisine alır. Sınır geçen bağ altıdan **üçe**
iner ve denetimde kalan kalem 28/36'ya çıkar. Karşılığında sabit kapasite %45'ten %75'e, esneklik
penceresi 10,0'dan 16,0 güne çıkar.

İki karma sütunu yan yana okunduğunda karma düzenin bir düğme değil bir **eğri** olduğu görünür:
sınır bağını azaltmanın tek yolu daha çok bileşeni sabit tarafa taşımaktır, ve sabit tarafa taşınan
her bileşen esneklik penceresini geri büyütür. Üç sınır bağı kazanmak, sabit kapasitede otuz puan
ve esneklik penceresinde altı gün ödemek demektir. **Karmada bölme çizgisi veri sınıfının çizdiği
yerde değil, çağrı grafiğinin en ince yerinde durmalıdır** — ve bu iki yer aynı olmak zorunda
değildir.

## Karmanın Sabit Girişi

Üçüncü tablonun alt üç satırı iki karma sütununda **aynıdır**: 18 işletim kalemi, 2 kimlik dizini,
6 kimlik eşlemesi kalemi. Dokuz işletim kalemi iki düzen için ayrı ayrı yürütülür; yama akışı iki
kez kurulur, izleme iki kez, yedekleme iki kez. Kimlik iki dizine ayrılır ve altı bileşenin her
biri için bir eşleme kalemi doğar.

Bu, yerleşimden bağımsız bir **giriş bedelidir**. Bölme çizgisi ne kadar iyi seçilirse seçilsin,
karma düzene geçmek işletim kalemini dokuzdan on sekize çıkarır. Tek düzenli iki seçenek — genel
ve özel — bu satırlarda 9, 1 ve 0 yazar. Karma, denetim ile esneklik arasında bir orta yol sunar,
ama o orta yolun kapısında sabit bir ücret vardır ve bu ücret bileşen sayısı arttıkça büyür.

## Sınır Nereden Geçiyor

Dördüncü tablo bağ sayısını kullanıcı akışına çevirir. Genel düzende dört akışın **dördü de**
kurulamaz — her akış yolunun üstünde yerleşemeyen bir bileşen vardır. Toplam sınır geçişi sütunu
orada sıfır yazar, ama bu sıfır bir başarı değil, akış olmadığının sonucudur; iki satır birlikte
okunmazsa tablo yanıltır.

Dar karmada okuma akışı iki kez, abone sorgusu iki kez, gecelik akış ve saha akışı birer kez sınır
geçer. Geniş karmada okuma akışı sınıra hiç dokunmaz; kalan üç akışın her biri bir kez geçer.
Bölme çizgisi doğrulayıcıyı kurum tarafına aldığında **en sık koşan akış tümüyle tek tarafta
toplanır**; ödenen bedel doğrulayıcının 20 birimlik kapasite payının artık esnek olmamasıdır.

## Çıkışta Ne Yeniden Kurulur

Beşinci tablo çıkışı sayar. Tek düzenli seçeneklerde sökülecek düzen birdir ve yeniden kurulacak
sınır bağı yoktur. Karmada iki düzen sökülür ve sınır bağları — altı ya da üç — yeni yerde baştan
kurulur. Taşınamayan denetim kalemi genel düzende 16, dar karmada 16, geniş karmada 8, özel
düzende 0'dır.

Son satır kursun ölçü eksenini bu derse çevirir: denetimde kalan oran %33, %100, %56 ve %78. Bu
oran ne kadar düşükse, çıkışta yeniden pazarlık edilecek kalem o kadar çoktur. Dar karma denetimde
%56 tutar ve altı sınır bağı taşır; geniş karma %78 tutar ve üç bağ taşır — ama ikisi de aynı
sabit girişi ödemiştir.

## Özet

- Genel düzen altı bileşenin ikisini yerleştiremez ve yedi çağrı bağının altısı kurulamaz;
  yerleşim sınıfı bir denge kalemi değil, dengeden önce gelen bir olabilirlik kapısıdır.
- Denetimde kalan kalem 8/24, 36/36, 20/36 ve 28/36'dır; karşılığında sabit ayrılmış kapasite
  %0, %100, %45 ve %75, esneklik penceresi 1,0, 21,0, 10,0 ve 16,0 gündür.
- Özel düzen denetim kalemlerinin tamamını tutar ama esneklik penceresi 21,0 günde kalır: kaynak
  kurumun tesisindeyse isteğe bağlılık kurumun kendi tedarik hızıyla sınırlıdır.
- Karma bir düğme değil bir eğridir: sınır geçen bağı 6'dan 3'e indirmek sabit kapasiteyi %45'ten
  %75'e ve esneklik penceresini 10,0'dan 16,0 güne çıkarır. Dört kullanıcı akışında toplam sınır
  geçişi 6'dan 3'e iner ve geniş karmada okuma akışı sınıra hiç dokunmaz.
- Karmanın gizli bedeli yerleşimden bağımsızdır ve iki biçimde de aynıdır: 18 işletim kalemi
  (dokuzun iki kez yürütülmesi), 2 kimlik dizini, 6 kimlik eşlemesi kalemi.
- Çıkışta karma iki düzeni söker ve altı ya da üç sınır bağını yeniden kurar; denetimde kalan
  oran %33, %100, %56 ve %78'dir.

## Sonraki Adım

Bu ders dağıtım düzenlerini denetim, sabitlik ve esneklik cinsinden karşılaştırdı; hiçbirinde
para geçmedi. Oysa "sabit ayrılmış kapasite %100" ile "%0" arasındaki fark asıl kendini bir
ödeme biçiminde gösterir: biri önden ve bir kez, öteki sürekli ve kullanıma göre. Sonraki ders
aynı iş yükünü sabit yatırım ile değişken kira arasında koşturur, **başabaş noktasını** çıkarır ve
kullanım eğrisi değiştikçe o noktanın nereye kaydığını sayar. Fiyatlar kurgudur ve kurgu bir
birimle yazılır.
