Ders 03 / 10
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.
İçindekiler
Ö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 buluttur. 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.
// 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 }; }
// 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.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.