Ders 01 / 12
Bulut Hizmet Modelleri ve Sorumluluk
Paylaşılan sorumluluk sınırının denetim listesine çevrilmesi: 21 yanlış olabilir kalem üç hizmet modelinde sınıflandırılır, otomatik denetlenebilen kalem 15'ten 12 ve 7'ye inerken denetim listesi dışında kalan kalem 6'dan 9 ve 14'e çıkar, tohum ağırlığının %35'i %51 ve %66 olur, sahipsiz kalem 0'dan 2 ve 4'e yükselir ve hiçbir listenin okuyamadığı 28 birimlik kör nokta üç modelde de sabit kalır.
İçindekiler
Bir önceki kurs kanıt hattını sonuna kadar kurdu ve her adımında aynı sessiz varsayımı taşıdı: incelenecek makineye erişilebiliyor. Kiralanmış altyapıda o varsayım düşer. Donanım başkasınındır, konak işletim sistemi görünmez, örneğin durduğu fiziksel makine adlandırılamaz. Bu, kanıt sorusunu sonraya bırakır ve daha önce gelen bir soruyu öne çeker: yanlış nerede olabilir ve o yanlış kimin listesinde.
Bu kurs tek bir ölçü kullanır: yayılma yarıçapı (blast radius) — tek bir kalem yanlışsa oradan kaç kaleme ulaşıldığı. Yarıçabı ölçebilmek için önce yanlışın yerleşebileceği kalemlerin listesi gerekir. Paylaşılan sorumluluk o listeyi ikiye böler; bu ders bölünmeyi bir denetim listesine çevirir ve listenin dışında kalanı sayar. Sorumluluk matrisinin kendisi Bulut Bilişim müfredatının Bulut Temelleri kursunda ölçüldü ve burada yeniden türetilmez — girdi olarak alınır.
- BG1. Aşağıdaki her şey kurgu bir bölgesel ölçüm ağına aittir: sayaç toplama, doğrulama,
fatura üretimi ve abone portalı kiralanmış altyapıda koşar. Gerçek bir sağlayıcı, hizmet, bölge
ya da kurum adı geçmez; ölçülen şey
nodeile yazılan bir modeldir. - BG2. Yanlış olabilir kalem, değeri yanlış ayarlandığında erişim açan bir yapılandırma kalemidir. Yirmi bir kalem sayılır; liste kapsayıcı değil, örnektir.
- BG3. Her kalem üç hizmet modelinde ayrı ayrı ya müşteri ayarlar, ya sağlayıcı ayarlar, ya da hiç kimse ayarlamaz. Üçüncü durum sözleşmeden değil, iki tarafın da ötekinin yaptığını varsaymasından doğar.
- BG4. Okunabilirlik ayrı bir özelliktir: kalemin yürürlükteki değeri ya yönetim düzleminden okunur ya da hiç okunmaz. Sağlayıcının ayarladığı kalem müşteri tarafından yalnız beyanla bilinir.
- BG5. Tohum ağırlığı, kalem yanlışsa doğrudan açılan kalem sayısıdır. Kurgu bir sayıdır ve bu derste yalnız kalemleri ağırlıklandırmak için kullanılır; yürüyüşün kendisi sonraki derste koşturulur.
- BG6. Denetim listesinin bir satırı ancak kalem hem sahipliyse hem okunabiliyorsa otomatik koşabilir. Diğer durumlarda satırın bedeli değişir.
Yanlış Olabilecek Kalemler
Model kalemleri üç sütunla yazıyor — hizmet modeli başına kimin ayarladığı — ve iki özellik daha taşıyor: okunabilirlik ve tohum ağırlığı. Bu üçünden dört sınıf türetiliyor.
// bulut/kalem.mjs — kiralanmis altyapida yanlis olabilecek kalemlerin MODELIDIR. // Kurgu bolgesel olcum agi; gercek saglayici, hizmet, bolge ya da sozlesme adi yoktur. export const MODEL = ['altyapi', 'platform', 'islev']; // Sutunlar: kalemi kim ayarliyor (M musteri, S saglayici, B kimse) x uc hizmet modeli. // oku: kalemin yururlukteki degeri musteri tarafindan nasil okunur. // arayuz = yonetim duzleminden okunur, hicbiri = ne arayuzden ne belgeden okunur. // dokunma: kalem yanlissa dogrudan acilan kalem sayisi (tohum agirligi, kurgu). export const KALEM = ` fiziksel-erisim S S S arayuz 6 hipervizor-yamasi S S S arayuz 14 kiracilik-komsulugu S S S arayuz 11 konak-cekirdek-yamasi M S S arayuz 9 calisma-zamani-surumu M M S arayuz 5 imaj-kaynagi M M S arayuz 7 ornek-meta-veri-surumu M B S arayuz 8 yonetim-ucu-acikligi M B B arayuz 10 ag-erisim-kurali M M B arayuz 6 ozel-uc-nokta-eslemesi M M B arayuz 4 gunluk-akisi-hedefi M M B arayuz 3 rol-guven-listesi M M M arayuz 12 kimlik-rol-tanimi M M M arayuz 9 depolama-izin-kumesi M M M arayuz 7 depolama-genel-bayragi M M M arayuz 5 anahtar-sahipligi M M M arayuz 8 sir-deposu-erisimi M M M arayuz 13 denetim-gunlugu-acik M M M arayuz 2 sablon-varsayilani M M M hicbiri 9 bagimlilik-surumu M M M hicbiri 4 is-yuku-ici-sir M M M hicbiri 15` .trim().split('\n').map((s) => { const [ad, ...k] = s.trim().split(/\s+/); return { ad, oku: k[3], dokunma: Number(k[4]), taraf: Object.fromEntries(MODEL.map((m, i) => [m, k[i]])) }; }); // Denetim listesi sinifi: kalem yanlis olursa bunu kim, neyle gorur. export const sinif = (k, m) => k.taraf[m] === 'B' ? 'sahipsiz' : k.taraf[m] === 'S' ? 'beyan' : k.oku === 'arayuz' ? 'denetlenir' : 'kor'; export const SINIF = ['denetlenir', 'beyan', 'kor', 'sahipsiz']; // Denetim satirinin bedeli: otomatik kosan kural, donemsel soru turu, ek duzenek, sahip atama. export const BEDEL = { denetlenir: 'kural', beyan: 'soru turu', kor: 'ek duzenek', sahipsiz: 'once sahip' }; export const kume = (m, c) => KALEM.filter((k) => sinif(k, m) === c); export const agirlik = (l) => l.reduce((a, k) => a + k.dokunma, 0); export const TOPLAM = agirlik(KALEM);
// bulut/kosum1.mjs — kac kalem musteride, kaci beyanda, kaci sahipsiz; kaci denetim listesi disi import { KALEM, MODEL, SINIF, TOPLAM, kume, agirlik, sinif } from './kalem.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 A = [-27, 12, 12, 12]; const degisen = KALEM.filter((k) => new Set(MODEL.map((m) => sinif(k, m))).size > 1); console.log(`${KALEM.length} yanlis olabilir kalem, tohum agirligi toplam ${TOPLAM}; ` + `sinifi uc modelde degisen ${degisen.length} kalem:\n`); yaz(A, 'kalem', ...MODEL); for (const k of degisen) yaz(A, k.ad, ...MODEL.map((m) => sinif(k, m))); console.log(''); yaz(A, 'sinif (21 kalemin dagilimi)', ...MODEL); for (const c of SINIF) yaz(A, c, ...MODEL.map((m) => kume(m, c).length)); yaz(A, 'denetim listesi disi kalem', ...MODEL.map((m) => SINIF.slice(1).reduce((a, c) => a + kume(m, c).length, 0))); yaz(A, ' tohum agirligi', ...MODEL.map((m) => SINIF.slice(1).reduce((a, c) => a + agirlik(kume(m, c)), 0))); yaz(A, ' agirligin yuzdesi', ...MODEL.map((m) => Math.round(SINIF.slice(1).reduce((a, c) => a + agirlik(kume(m, c)), 0) / TOPLAM * 100)));
21 yanlis olabilir kalem, tohum agirligi toplam 167; sinifi uc modelde degisen 8 kalem: kalem altyapi platform islev konak-cekirdek-yamasi denetlenir beyan beyan calisma-zamani-surumu denetlenir denetlenir beyan imaj-kaynagi denetlenir denetlenir beyan ornek-meta-veri-surumu denetlenir sahipsiz beyan yonetim-ucu-acikligi denetlenir sahipsiz sahipsiz ag-erisim-kurali denetlenir denetlenir sahipsiz ozel-uc-nokta-eslemesi denetlenir denetlenir sahipsiz gunluk-akisi-hedefi denetlenir denetlenir sahipsiz sinif (21 kalemin dagilimi) altyapi platform islev denetlenir 15 12 7 beyan 3 4 7 kor 3 3 3 sahipsiz 0 2 4 denetim listesi disi kalem 6 9 14 tohum agirligi 59 86 111 agirligin yuzdesi 35 51 66
Üst tablo yalnız sınıfı değişen sekiz kalemi gösteriyor; kalan on üç kalem üç modelde de aynı sınıfta duruyor. Alt tablo asıl sayıyı veriyor: müşterinin yönetim düzleminden okuyup otomatik denetleyebildiği kalem on beşten on ikiye, oradan yediye iniyor. Aynı yönde denetim listesinin dışında kalan kalem altıdan dokuza, oradan on dörde çıkıyor.
Tohum ağırlığı satırı bu değişimin neden düz bir devir olmadığını gösteriyor. Yüz altmış yedi
birimlik toplam ağırlığın denetim listesinin göremediği payı yüzde otuz beşten yüzde elli bire,
oradan yüzde altmış altıya çıkıyor. Kalem sayısı iki katından biraz fazla artarken ağırlık payı
neredeyse iki katına çıkıyor — çünkü listeden düşen kalemler ağır olanlardır. hipervizor-yamasi
on dört, is-yuku-ici-sir on beş, sir-deposu-erisimi on üç birim taşıyor.
Sınır Kaydıkça Liste Daralıyor
Üst tablo dört kalem grubunu birbirinden ayırıyor. konak-cekirdek-yamasi, calisma-zamani-surumu
ve imaj-kaynagi sağlayıcıya açıkça geçiyor: müşteri ayarlamıyor, sağlayıcı üstleniyor, denetim
beyana dönüşüyor. Bu bir kayıp değil, bir takas — kalem yanlış olabilir ama yanlışı yapan taraf onu
düzeltebilen taraftır.
ag-erisim-kurali, ozel-uc-nokta-eslemesi ve gunluk-akisi-hedefi başka bir yola giriyor.
Altyapı ve platform modelinde müşteri ayarlıyor; işlev modelinde çalışma ortamı bu kalemleri
soyutluyor ve sağlayıcı da onları sözleşmede üstlenmiyor. Sonuç sahipsizliktir: kalem hâlâ yanlış
olabilir, ama kimse ayarlamadığı için kimse denetlemez.
yonetim-ucu-acikligi iki modelde birden sahipsiz kalıyor ve on birimlik ağırlığıyla listedeki en
ağır sahipsiz kalem. ornek-meta-veri-surumu ise ilginç bir yol izliyor: altyapıda müşteri
ayarlıyor, platformda kimse ayarlamıyor, işlevde sağlayıcı üstleniyor. Devir derinleştikçe bir
kalem her zaman düz bir çizgide karşıya geçmiyor; arada bir modelde boşluğa düşebiliyor.
Denetim Listesinin Bedeli
Dört sınıfın her biri denetim listesine ayrı bir bedelle giriyor. Sahipli ve okunabilir kalem için bir kural yazılır ve sürekli koşar. Beyanla bilinen kalem için sağlayıcıya dönemsel bir soru sorulur; yanıtın doğruluğu sınanamaz, yalnız kaydedilir. Kör nokta için değeri çalışan sistemden çıkaracak ek bir düzenek gerekir. Sahipsiz kalem hiçbirine uymaz: satır yazılmadan önce kalemin sahibi atanmalıdır.
// bulut/kosum2.mjs — denetim listesi: kac satir otomatik kosuyor, kaci soru turu istiyor import { MODEL, SINIF, BEDEL, TOPLAM, kume, agirlik } from './kalem.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 B = [-13, -14, 11, 11, 10]; yaz(B, 'sinif', 'satirin bedeli', ...MODEL); for (const c of SINIF) yaz(B, c, BEDEL[c], ...MODEL.map((m) => `${kume(m, c).length} / ${agirlik(kume(m, c))}`)); console.log(' (hucre: kalem sayisi / tohum agirligi)\n'); const C = [-11, 9, 10, 7, 14, 12]; yaz(C, 'model', 'denetim', 'kapsanan', 'soru', 'sahibi yok', 'hic okunan'); yaz(C, '', 'satiri', 'agirlik', 'turu', 'kalem/agirlik', 'agirlik'); for (const m of MODEL) yaz(C, m, kume(m, 'denetlenir').length, `%${Math.round(agirlik(kume(m, 'denetlenir')) / TOPLAM * 100)}`, kume(m, 'beyan').length, `${kume(m, 'sahipsiz').length} / ${agirlik(kume(m, 'sahipsiz'))}`, agirlik(kume(m, 'kor')));
sinif satirin bedeli altyapi platform islev
denetlenir kural 15 / 108 12 / 81 7 / 56
beyan soru turu 3 / 31 4 / 40 7 / 60
kor ek duzenek 3 / 28 3 / 28 3 / 28
sahipsiz once sahip 0 / 0 2 / 18 4 / 23
(hucre: kalem sayisi / tohum agirligi)
model denetim kapsanan soru sahibi yok hic okunan
satiri agirlik turu kalem/agirlik agirlik
altyapi 15 %65 3 0 / 0 28
platform 12 %49 4 2 / 18 28
islev 7 %34 7 4 / 23 28
İlk tablo bedeli sınıf sınıf ayırıyor. Altyapı modelinde on beş satır otomatik koşuyor ve yüz sekiz birimlik ağırlığı kapsıyor; işlev modelinde yedi satır kalıyor ve kapsanan ağırlık elli altıya iniyor. Soru turu üçten yediye çıkıyor: her tur sağlayıcıya sorulan, yanıtı bekleyen ve sınanamayan bir kalemdir.
İkinci tablo aynı üç modeli tek satırda okutuyor. Otomatik kapsanan ağırlık yüzde altmış beşten yüzde otuz dörde iniyor. Sahibi olmayan kalem sıfırdan iki ve dörde, ağırlığı sıfırdan on sekiz ve yirmi üçe çıkıyor. Bu kalemler için müşterinin bir seçeneği vardır — sahipliği üstlenmek — ve üstlenildiğinde on sekiz ile yirmi üç birim listeye geri döner. Bedeli sözleşmede olmayan bir işin kendi ekibine yazılmasıdır.
Yanlış Kaç Gün Sonra Görülüyor
Satır sayısı listenin genişliğini verir, gecikmesini vermez. Otomatik koşan bir kural yanlışı konduğu gün görür; dönemsel bir soru turu ancak turun geldiği gün görür; ek düzenek haftalık toplarsa hafta içinde görür. Sahipsiz kalem hiç sorulmaz.
// bulut/kosum3.mjs — yanlis kalem kac gun sonra fark ediliyor; hangi agirlik hic fark edilmiyor import { MODEL, SINIF, TOPLAM, kume, agirlik } from './kalem.mjs'; // Fark edilme gecikmesi (gun): kural surekli kosar, soru turu donemseldir, // ek duzenek kurulmussa haftalik toplar, sahipsiz kalem hic sorulmaz. const GECIKME = { denetlenir: 0, beyan: 90, kor: 7, sahipsiz: null }; 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 = [-11, 9, 15, 16, 13]; yaz(D, 'model', 'gorulen', 'agirlikli', 'hic gorulmeyen', 'kor duzenek'); yaz(D, '', 'agirlik', 'gecikme (gun)', 'agirlik', 'kurulmazsa'); for (const m of MODEL) { const g = SINIF.filter((c) => GECIKME[c] !== null); const gor = g.reduce((a, c) => a + agirlik(kume(m, c)), 0); const top = g.reduce((a, c) => a + agirlik(kume(m, c)) * GECIKME[c], 0); yaz(D, m, gor, (top / gor).toFixed(1), TOPLAM - gor, TOPLAM - gor + agirlik(kume(m, 'kor'))); } console.log('\nkural yerine soru turuna dusen agirligin gecikmeye katkisi:'); for (const m of MODEL) console.log(` ${m.padEnd(10)}beyan agirligi ${String(agirlik(kume(m, 'beyan'))).padStart(3)}` + `, gecikmenin ${Math.round(agirlik(kume(m, 'beyan')) * 90 / (agirlik(kume(m, 'beyan')) * 90 + agirlik(kume(m, 'kor')) * 7) * 100)}%'i buradan`);
model gorulen agirlikli hic gorulmeyen kor duzenek
agirlik gecikme (gun) agirlik kurulmazsa
altyapi 167 17.9 0 28
platform 149 25.5 18 46
islev 144 38.9 23 51
kural yerine soru turuna dusen agirligin gecikmeye katkisi:
altyapi beyan agirligi 31, gecikmenin 93%'i buradan
platform beyan agirligi 40, gecikmenin 95%'i buradan
islev beyan agirligi 60, gecikmenin 96%'i buradan
Ağırlıklı gecikme on yedi virgül dokuz günden yirmi beş virgül beşe, oradan otuz sekiz virgül dokuz güne çıkıyor. Yani aynı yanlış kalem işlev modelinde ortalama iki katından fazla süre yerinde duruyor. Alt blok gecikmenin nereden geldiğini söylüyor: üç modelde de yüzde doksan üçten yüzde doksan altıya kadar olan pay beyan sınıfından gelir. Kör noktanın haftalık düzeneği gecikmeye neredeyse hiç katkı yapmıyor, çünkü yedi gün doksanın yanında küçüktür.
Son sütun bir uyarı taşıyor. Hiç görülmeyen ağırlık sıfır, on sekiz ve yirmi üçtür — ama bu sayı kör nokta için bir ek düzenek kurulduğunu varsayar. Düzenek kurulmazsa hiç görülmeyen ağırlık yirmi sekiz, kırk altı ve elli bire çıkar; işlev modelinde toplam ağırlığın yaklaşık üçte biri hiçbir listeye düşmez. Bu, denetim listesinin genişliğiyle ilgili bir eksiklik değildir: liste yirmi bir satırlık yazılabilir ve yine de o satırların bir bölümü hiçbir zaman değer okumaz.
Kör Nokta Devirle Değişmiyor
Son sütun bu dersin karar taşıyan sayısını veriyor: hiçbir listenin okuyamadığı ağırlık üç modelde de yirmi sekiz birimdir. Üç kalem — şablon varsayılanı, bağımlılık sürümü ve iş yükü içindeki sır — üç modelde de müşterinindir, üçünde de yanlış olabilir ve üçünde de yönetim düzleminden okunamaz.
Bunun anlamı şudur: hizmet modelini derinleştirmek kör noktayı küçültmez. Devir, kalemleri müşteri ile sağlayıcı arasında taşır; okunabilirliği taşımaz. Sahipsiz kalemi üstlenmek de kör noktayı kapatmaz — platformda iki sahipsiz kalem alındığında bile yirmi sekiz birim yerinde durur, çünkü sahiplik zaten müşterideydi, eksik olan görünürlüktü.
Denetim listesi bu yüzden üç ayrı işi birden yapmalıdır: sahipli ve görünür kalemi kuralla sürekli sınamak, sağlayıcının kalemini soru turuyla kaydetmek ve görünmeyen kalemi çalışan sistemden çıkarmak. Bu dersin sonundaki liste yirmi bir satırlıktır ve işlev modelinde satırların yalnız yedisi kendi başına koşar.
Özet
- 21 yanlış olabilir kalem dört sınıfa ayrılıyor: denetlenen, beyanla bilinen, kör nokta, sahipsiz. Toplam tohum ağırlığı 167 birimdir.
- Otomatik denetlenebilen kalem 15 → 12 → 7; denetim listesinin dışında kalan kalem 6 → 9 → 14. Kapsanan ağırlık %65 → %49 → %34.
- Ağırlık payı kalem sayısından hızlı düşüyor, çünkü listeden düşen kalemler ağır olanlardır:
hipervizor-yamasi14,is-yuku-ici-sir15,sir-deposu-erisimi13 birim taşır. - Sahipsiz kalem 0 → 2 → 4 ve ağırlığı 0 → 18 → 23. Bir kalem devir sırasında karşıya geçmek
yerine arada bir modelde boşluğa düşebiliyor;
ornek-meta-veri-surumubunun örneğidir. - Ağırlıklı fark edilme gecikmesi 17,9 → 25,5 → 38,9 gün. Gecikmenin %93 ile %96’sı beyan sınıfından gelir; kör noktanın haftalık düzeneği gecikmeye neredeyse hiç katkı yapmaz.
- Hiçbir listenin okuyamadığı ağırlık üç modelde de 28 birimdir. Devir kalemleri taşır, okunabilirliği taşımaz; sahipsiz kalemi üstlenmek de bu 28 birimi düşürmez.
Sonraki Adım
Liste artık yazılı: yirmi bir kalem, dört sınıf ve her kalemin bir tohum ağırlığı. Ama tohum
ağırlığı bu derste bir sayı olarak verildi, hesaplanmadı. sir-deposu-erisimi kaleminin on üç
taşıdığı söylendi; on üçün nereden geldiği, o on üç kalemin kaçına doğrudan, kaçına başka bir
kimliğin üzerinden ulaşıldığı sorulmadı. Sonraki ders bu kursun ölçü birimini kuruyor: kimlikler ve
kalemler bir erişim grafiği olarak yazılıyor, sızan tek bir kimlikten yürüyüş gerçekten koşturuluyor
ve yarıçap bir sayıya dönüşüyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.