Ders 21 / 21
Satıcı Bağımlılığı
Kiralanan on iki kalem taşınabilirlik derecesine ayrılır ve fatura ağırlığının taşınabilirliği hiç ölçmediği çıkar: aylık faturanın %48,3'ü kolay taşınır iki kalemden, %9,6'sı hiç taşınamayan üç kalemden gelir. Çıkış faturası 879 kurgu birimdir ve %52'si bayt değil istek ücretidir; yine de toplam taşıma bedelinin yalnız %9,1'i, gerisi 257 kişi-günlük iş yüküdür. Bağımlılığı azaltmanın üç yolu hazırlık, taşıma ve kaybettiği yetenekle ölçülür: en düşük başabaş noktası %48,9'dur ve bir yolun başabaşı %466'dır — taşıma kesin olsa bile ödemez.
İçindekiler
Önceki ders sınırları ölçek planına kattı ve her satırda aynı şey durdu: sınırın değerini de artırılıp artırılamayacağını da kiralanan taraf belirliyor. Bu dersin sorusu o cümlenin sonundadır — başka bir yere gitmek ne kadar mümkün ve ne tutar.
Kalemler, Dereceler ve Çıkış Faturası
Örnek kurgu bölgesel ölçüm ağıdır: beş ekip, üç ortam, kiralanmış makine, ağ, depo, işlev ve
kenar katmanı. Kalemler ve tutarlar kurgudur; para birimi de kurgudur ve br diye anılır.
BM31: on iki kalem dört taşınabilirlik derecesine ayrılır — standart arayüzle taşınan, uyarlamayla taşınan, yeniden yazım gerektiren, taşınamayan. BM32: her kalemin bir taşıma iş yükü vardır; taşınamaz kalemlerde bu sayı yerine kurulacak şeyin iş yüküdür. BM33: her kalem sağlayıcıya özgü bir yetenek kümesi kullanır ve hazırlık bunların bir kısmını kaybettirir. BM34: çıkış ücreti bir kereliktir ve iki parçadan oluşur — bayt ve istek. BM35: ufuk 36 aydır; hazırlık bu süre boyunca, taşıma yalnız taşıma olursa ödenir.
Kalemler ve yollar süreç içi bir modeldir.
// maliyet/tasinabilirlik.mjs — kiralanan kalemlerin tasinabilirlik modeli: gercek bir envanter // yok. Her kalem bir *tasinabilirlik derecesine*, bir tasima is yukune ve saglayiciya ozgu // yetenek sayisina baglidir. Para birimi kurgudur ve `br` diye anilir; birim fiyatlar bu // konunun ilk dersindeki kurgu listeden alinmistir. export const KISI_GUN = 34; // bir kisi-gunun kurgu bedeli (br) export const CIKIS_GB = 0.082, OKUMA = 0.36; // GB basina cikis, milyon istek basina okuma export const UFUK = 36; // degerlendirme ufku (ay) // ad, derece, is yuku (kisi-gun), aylik br, GB, nesne (milyon), ozel yetenek, yerine ne konur export const KALEM = [ ["ham olcum deposu", "standart arayuz", 4, 6.5, 308.6, 1244.16, 0, "-"], ["kiralanmis makine", "standart arayuz", 6, 535.7, 0, 0, 0, "-"], ["anlik goruntu", "uyarlama", 9, 102.7, 2140, 0.4, 2, "-"], ["kayit deposu", "uyarlama", 7, 23.1, 1360, 8, 1, "-"], ["ozel baglanti", "uyarlama", 9, 46.0, 0, 0, 3, "-"], ["yonetilen dizi depo", "uyarlama", 18, 196.0, 640, 3, 4, "-"], ["olay kuyrugu", "yeniden yazim", 22, 58.0, 90, 6, 5, "-"], ["islev calistirma", "yeniden yazim", 34, 47.2, 0, 0, 6, "-"], ["kimlik ve politika", "yeniden yazim", 41, 0, 0, 0, 7, "-"], ["anahtar yonetimi", "tasinamaz", 38, 34.0, 0, 0, 3, "kendi anahtar deposu"], ["denetim kaydi hatti", "tasinamaz", 24, 23.1, 620, 5, 2, "kendi kayit hatti"], ["tehdit tespiti", "tasinamaz", 45, 51.0, 0, 0, 4, "kural yazimi ve bakim"], ]; export const DERECE = ["standart arayuz", "uyarlama", "yeniden yazim", "tasinamaz"]; // bagimliligi azaltmanin yollari. Carpanlar dort dereceye sirayla uygulanir: hazirlik // yapilmisken tasima is yukunun ne kadari kalir. Cikis carpani veri karsi tarafta duruyorsa // duser. ad, bir kerelik kisi-gun, aylik kisi-gun, aylik ek br, carpanlar, cikis, yetenek kaybi export const YOL = [ ["hicbir sey", 0, 0.0, 0.0, [1.00, 1.00, 1.00, 1.00], 1.00, 0.00], ["soyutlama", 25, 0.6, 0.0, [1.00, 0.25, 0.35, 1.00], 1.00, 0.45], ["iki saglayici", 45, 0.0, 512.3, [0.00, 0.00, 0.50, 1.00], 0.05, 0.75], ["ortak ozellik", 0, 3.2, 0.0, [0.60, 0.30, 0.35, 0.00], 1.00, 0.85], ]; export const topla = (v) => v.reduce((a, b) => a + b, 0); export const kova = (d) => KALEM.filter((k) => k[1] === d);
// maliyet/cikis.mjs — kalemler tasinabilirlik derecesine ayrilir, cikis faturasi toplanir ve // bagimliligi azaltmanin uc yolu hazirlik, tasima ve *kaybettigi yetenek* ile olculur; tasima // olasiligi taranarak her yolun basabas noktasi cikarilir. Sayilar yalniz modelden turer. import { KALEM, DERECE, YOL, KISI_GUN, CIKIS_GB, OKUMA, UFUK, topla, kova } from "./tasinabilirlik.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 t0 = process.hrtime.bigint(); const AYLIK = topla(KALEM.map((k) => k[3])), IS = topla(KALEM.map((k) => k[2])); const GB = topla(KALEM.map((k) => k[4])), NES = topla(KALEM.map((k) => k[5])); const YET = topla(KALEM.map((k) => k[6])), CIKIS = GB * CIKIS_GB + NES * OKUMA; console.log(`${KALEM.length} kiralanmis kalem, aylik ${AYLIK.toFixed(1)} br (kurgu birim)`); console.log("\n1. tasinabilirlik derecesi, fatura agirligi ve cikis faturasi"); const A = [-17, 6, 6, 10, 8, 8, 8, 11, 10]; yaz(A, "derece", "kalem", "is", "aylik br", "fatura", "yetenek", "GB", "nesne (mn)", "cikis br"); for (const d of DERECE) { const g = kova(d), br = topla(g.map((k) => k[3])); const gb = topla(g.map((k) => k[4])), n = topla(g.map((k) => k[5])); yaz(A, d, g.length, topla(g.map((k) => k[2])), br.toFixed(1), `%${(100 * br / AYLIK).toFixed(1)}`, topla(g.map((k) => k[6])), gb.toFixed(0), n.toFixed(2), (gb * CIKIS_GB + n * OKUMA).toFixed(1)); } yaz(A, "toplam", KALEM.length, IS, AYLIK.toFixed(1), "%100", YET, GB.toFixed(0), NES.toFixed(2), CIKIS.toFixed(1)); console.log(" tasinamaz kalemlerin yerine: " + kova("tasinamaz").map((k) => k[7]).join(", ")); const ham = KALEM[0]; console.log(` cikisin %${(100 * NES * OKUMA / CIKIS).toFixed(0)}'si istek ucreti: ham olcum`); console.log(` deposunda ${(ham[4] * CIKIS_GB).toFixed(1)} br bayta karsilik ` + `${(ham[5] * OKUMA).toFixed(1)} br istek dusuyor`); console.log(` cikis ${CIKIS.toFixed(0)} br, aylik faturanin ` + `%${(100 * CIKIS / AYLIK).toFixed(0)}'i; is yuku ${(IS * KISI_GUN).toFixed(0)} br`); console.log(` cikis toplam tasima bedelinin ` + `%${(100 * CIKIS / (CIKIS + IS * KISI_GUN)).toFixed(1)}'i`); const olc = (y) => { const [, birKerelik, aylikGun, aylikBr, carp, cikisCarp, kayip] = y; const is = topla(DERECE.map((d, i) => topla(kova(d).map((k) => k[2])) * carp[i])); return { hazirlik: birKerelik * KISI_GUN + UFUK * (aylikGun * KISI_GUN + aylikBr), is, tasima: is * KISI_GUN + CIKIS * cikisCarp, kayip: YET * kayip }; }; console.log("\n2. bagimliligi azaltmanin uc yolu (36 aylik ufuk)"); const C = [-15, 13, 10, 11, 9, 10]; yaz(C, "yol", "hazirlik br", "kalan is", "tasima br", "yetenek", "basabas"); const taban = olc(YOL[0]); for (const y of YOL) { const o = olc(y), p = y === YOL[0] ? null : o.hazirlik / (taban.tasima - o.tasima); yaz(C, y[0], o.hazirlik.toFixed(0), o.is.toFixed(1), o.tasima.toFixed(0), o.kayip ? `-${o.kayip.toFixed(0)}` : "0", p === null ? "-" : `%${(100 * p).toFixed(1)}`); } console.log(` ${YET} ozel yetenek var; her yol tasima bedelini yetenekle satin aliyor`); console.log("\n3. tasima olasiligi taraniyor: beklenen bedel ve en ucuz yol"); const D = [9, 12, 11, 15, 15, 16]; yaz(D, "olasilik", ...YOL.map((y) => y[0]), "en ucuz"); for (const p of [0.05, 0.25, 0.50, 0.70, 1.00]) { const v = YOL.map((y) => { const o = olc(y); return o.hazirlik + p * o.tasima; }); yaz(D, `%${(100 * p).toFixed(0)}`, ...v.map((x) => x.toFixed(0)), YOL[v.indexOf(Math.min(...v))][0]); } const ps = YOL.slice(1).map((y) => [y[0], olc(y).hazirlik / (taban.tasima - olc(y).tasima)]); const en = ps.reduce((a, b) => (a[1] <= b[1] ? a : b)); console.log(` en dusuk basabas ${en[0]}: %${(100 * en[1]).toFixed(1)}; altinda hicbir ` + `hazirlik odemiyor`); console.log(` ${ps.filter((x) => x[1] > 1).length} yolun basabasi %100'un ustunde: tasima ` + `kesin olsa bile odemiyor`); const ms = Number(process.hrtime.bigint() - t0) / 1e6; // ham olcum basilmaz, bant denetlenir console.log(`\nuc tablo 2000 ms bandinda: ${ms < 2000 ? "evet" : "hayir"}`);
12 kiralanmis kalem, aylik 1123.3 br (kurgu birim)
1. tasinabilirlik derecesi, fatura agirligi ve cikis faturasi
derece kalem is aylik br fatura yetenek GB nesne (mn) cikis br
standart arayuz 2 10 542.2 %48.3 0 309 1244.16 473.2
uyarlama 4 43 367.8 %32.7 10 4140 11.40 343.6
yeniden yazim 3 97 105.2 %9.4 18 90 6.00 9.5
tasinamaz 3 107 108.1 %9.6 9 620 5.00 52.6
toplam 12 257 1123.3 %100 37 5159 1266.56 879.0
tasinamaz kalemlerin yerine: kendi anahtar deposu, kendi kayit hatti, kural yazimi ve bakim
cikisin %52'si istek ucreti: ham olcum
deposunda 25.3 br bayta karsilik 447.9 br istek dusuyor
cikis 879 br, aylik faturanin %78'i; is yuku 8738 br
cikis toplam tasima bedelinin %9.1'i
2. bagimliligi azaltmanin uc yolu (36 aylik ufuk)
yol hazirlik br kalan is tasima br yetenek basabas
hicbir sey 0 257.0 9617 0 -
soyutlama 1584 161.7 6377 -17 %48.9
iki saglayici 19973 155.5 5331 -28 %466.0
ortak ozellik 3917 52.8 2676 -31 %56.4
37 ozel yetenek var; her yol tasima bedelini yetenekle satin aliyor
3. tasima olasiligi taraniyor: beklenen bedel ve en ucuz yol
olasilik hicbir sey soyutlama iki saglayici ortak ozellik en ucuz
%5 481 1903 20239 4051 hicbir sey
%25 2404 3179 21306 4586 hicbir sey
%50 4808 4773 22638 5255 soyutlama
%70 6732 6048 23704 5790 ortak ozellik
%100 9617 7961 25304 6593 ortak ozellik
en dusuk basabas soyutlama: %48.9; altinda hicbir hazirlik odemiyor
1 yolun basabasi %100'un ustunde: tasima kesin olsa bile odemiyor
uc tablo 2000 ms bandinda: evet
Sayılar ölçüm sınıfındadır; girdileri yukarıdaki varsayımlardır.
Fatura Ağırlığı Taşınabilirliği Ölçmüyor
Birinci tablo iki sıralamayı yan yana koyar ve ikisi terstir. Faturanın %48,3’ü standart arayüzle taşınan iki kalemdendir ve o iki kalemin iş yükü 10 kişi-gündür. Yeniden yazım gerektiren üç kalem faturanın %9,4’ünü tutar ama 97 kişi-gün, taşınamayan üçü %9,6’yı tutar ve 107 kişi-gün ister.
Aynı ters ilişki yetenek sütununda da vardır: faturanın yarısını tutan iki kalem sağlayıcıya özgü sıfır yetenek kullanır, %19’unu tutan yedi kalem 27 yeteneğin tamamını. Bağımlılık harcanan parayla değil kullanılan özellikle birikir.
Taşınamayan üç kalemin yerine ne konacağı adıyla yazılıdır: kendi anahtar deposu, kendi kayıt hattı, kural yazımı. Üçünde de yerine konan şey hizmet değil sürekli bir iştir.
Çıkış Faturası Nerede Birikiyor
Çıkış faturası 879 birimdir — aylık faturanın %78’i, tek seferde. Bunun %52’si bayt değil istek ücretidir ve farkı tek kalem üretir: ham ölçüm deposunda 25,3 birimlik bayta karşılık 447,9 birim istek düşer. Konunun ilk dersindeki parçalama kararı burada ikinci kez ödenir.
Ama çıkış taşımanın büyük kalemi değildir: 257 kişi-günlük iş 8.738 birim tutar ve çıkış toplamın yalnız %9,1’idir. Çıkış tek satırda görünür; asıl kalem hiçbir faturada görünmez.
Hazırlığın Bedeli Yetenektir
İkinci tablo üç azaltma yolunu ölçer. Soyutlama katmanı 36 ayda 1.584 birim tutar, taşımayı 9.617’den 6.377 birime indirir ve 37 yetenekten 17’sini kaybettirir. İki sağlayıcıda birden koşmak taşımayı 5.331 birime indirir ve çıkışı neredeyse sıfırlar, ama hazırlığı 19.973 birimdir — taşımanın kendisinden iki kat pahalı. Yalnız ortak özellikleri kullanmak en ucuz taşımayı verir (2.676 birim), hazırlığı 3.917’dir ve 37 yeteneğin 31’ini alır.
Üç yolun ortak yanı sütunda durur: hiçbiri taşınabilirliği parayla satın almaz, yetenekle takas eder. Taşınamayan üç kaleme hiçbiri dokunmaz.
Bağımlılığın Kabul Edilebilir Olduğu Yer
Üçüncü tablo taşıma olasılığını tarar. %5 ve %25’te en ucuz yol hiçbir şey yapmamaktır; %50’de soyutlama, %70 ve üstünde ortak özellik öne geçer. En düşük başabaş %48,9’dur: üç yıl içinde taşıma olasılığı bunun altındaysa hiçbir hazırlık kendini ödemez.
İki sağlayıcıda koşmanın başabaşı %466’dır; bir olasılık olarak anlamsız oluşu sonucun kendisidir. Üç yıllık ikinci fatura tek seferlik taşımadan pahalı olduğu için o yol, taşıma kesin olsa bile ödemez.
Bağımlılık bu tabloda bir hata değil bir fiyattır; ölçü “bağımlı mıyız” değil, “taşıma olasılığımız %48,9’un üstünde mi” sorusudur.
Özet
- Fatura ağırlığı taşınabilirliği ölçmez: faturanın %48,3’ü en kolay taşınan iki kalemdendir ve o iki kalem sıfır özel yetenek kullanır; %19’unu tutan yedi kalem 27 yetenek kullanır.
- Üç kalem hiç taşınmaz; yerlerine konan şey hizmet değil sürekli iştir (107 kişi-gün).
- Çıkış faturası 879 birimdir ve %52’si istek ücretidir — ham ölçüm deposunda baytın on yedi katı. Yine de taşımanın %9,1’idir; 257 kişi-günlük iş 8.738 birimle asıl kalemdir ve hiçbir faturada görünmez.
- Üç yol da taşınabilirliği yetenekle takas eder (17, 28, 31 yetenek) ve hiçbiri taşınamayan üç kaleme dokunmaz. En düşük başabaş %48,9, en yükseği %466’dır.
Kurs Kapanışı
| Ders | Kim yapabiliyor / görebiliyor | Sınır ve kalan | Daraltmanın ya da ölçmenin bedeli |
|---|---|---|---|
| kimlik/01 | grupta 231 etkin izin, 157 gerekli | 4 ayrılandan 3’ü kapanmıyor | kısma 142 meşru izni düşürür |
| kimlik/02 | tek yıldız 132 kat kapsam açıyor | 88 istekte açık ret kazanıyor | koşul 130 meşru okumayı durdurur |
| kimlik/03 | 840 isteğin 131’i izinli | 555 istek hesap sınırını aşıyor | belgeler kalkınca 15 iş durur |
| kimlik/04 | 30 çiftin 17’si güven listesinde | çağrı sınırına 480 kaldı | rol kapanınca günde 90 işlem durur |
| kimlik/05 | 79 anahtar kopyası, 49’u kayıtsız | 30 örneğin 3’ü kimlik alamıyor | konak kapsamı 54 fazla izin |
| kimlik/06 | 46 kalem açık, gereken 27 | güvenli eşik 275 gün, gözlenen 90 | 1 günlük pencere 8 yol durdurur |
| kimlik/07 | patlama yarıçapı 24 → 8 → 3 | kotada 1.142 aşım, 580 kalan | 24 belge 57 belgeye çıkıyor |
| güvenlik/01 | çözebilen çift 45’ten 20’ye | anahtar dönemine 43 gün kaldı | günde 132 meşru okuma durur |
| güvenlik/02 | 16 bacağın 4’ü bilinmiyor | geçiş penceresine 29 gün kaldı | 34 istemci yükseltilemiyor |
| güvenlik/03 | 90 günde 34 sırrı insan okudu | 17 sır hiç döndürülmedi | sıfır kaçıran pencere 601.584 dk |
| güvenlik/04 | 480 olayın 273’ü, varsayılanda 88 | kaydı 11 özne silebilir | ayrı hesap 6 meşru işi durdurur |
| güvenlik/05 | 46 ateşlemenin 32’si gerçek | tarama kotası 240, kalan 108 | düzelt kipi 8 yapılandırma bozar |
| güvenlik/06 | 25 erişimin 14’ü genel internetten | 18 uçtan 12 dolu, 6 boşta | kapatma 12 meşru erişimi kırar |
| güvenlik/07 | 11 zararlının 9’u, 8’i tek kaynakla | toplama 60 GB/gün, kalan 5 | eşik 3’te yakalanan 7’ye iner |
| güvenlik/08 | 26 kanıtın 7’si sağlayıcıdan | kanıt deposu 12 GB, kalan 4,28 | yılda 139 br, 160 kişi-saat |
| maliyet/01 | faturanın %50,8’i platform kararı | 14 ayrım var, 90 gerekli | istek kesişimi 693.370 kalem |
| maliyet/02 | geçerli kapsam %75,0 | etiket anahtarı 10, kalan 3 | zorunluluk 511,9 birimlik işi durdurur |
| maliyet/03 | ilk uyarıda bütçenin %86,4’ü gitmiş | kalan 204 br | uyarı 90 günün 68’inde açık |
| maliyet/04 | p95 doluluk %31,4 | merdivende 16 kademe kaldı | tasarrufun %88,0’ı kesinti ister |
| maliyet/05 | 6/8 sınır beş ekipte ortak | en dolusunda 3 birim kaldı | 116 sınır-gün, 2.195 br |
| maliyet/06 | faturanın %48,3’ü kolay taşınır | 3 kalem taşınamaz, 37 özel yetenek | başabaş %48,9’un altında ödemez |
| Kurs | Ölçü ekseni | Ölçü birimi |
|---|---|---|
| K01 Bulut Temelleri | kiralamanın bedeli | devredilen karar |
| K02 Bulutta Hesaplama ve Ağ | devredilen karar somut kalemde | geri alınamayan kalem |
| K03 Bulutta Depolama ve Veri | veri kiralandığında | çıkış ve aktarım |
| K04 Sunucusuz ve Kenar Bilişim | devredilen karar kısıt olarak geri gelir | kısıt kalemi |
| K05 Bulut Yönetişimi, Güvenlik ve Maliyet | kiralananın sahibi ve sınırı | yetki, görünürlük, kota |
M23 boyunca sorulan tek soru neyi devrettiğin ve karşılığında neyi bıraktığındı. Beş kurs aynı kiralanmış ağı beş kez ölçtü ve her ölçüm aynı biçimi aldı: bir karar devredildi, bir kalem geri alınamaz oldu. Bu kursta o kalem bir sahip ve bir sınır kazandı.
Çıkış sütunu beş kursta da taşındı ve toplamı burada okundu: taşınamayan üç kalem, 257 kişi-günlük iş, 879 birimlik çıkış faturası, %48,9’luk başabaş. Bağımlılık kiralamanın kusuru değil fiyatıdır.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.