---
title: 'Platform Ölçütleri'
source: 'https://academia.sh/tr/kurslar/platform-muhendisligi/platform-olcutleri'
course: 'Platform Mühendisliği'
language: tr
updated: '2026-08-17T18:09:10+00:00'
license: 'CC BY-SA 4.0'
---

# Platform Ölçütleri

Platformun işe yarayıp yaramadığının ölçülmesi: kırk ekip-yetenek çiftinden yalnız yirmi beşinin dolu olması, elli dört iş günlük iki yeteneğin en çok bir ekibe hizmet etmesi, dört teslimat ölçütündeki ham farkın %48-%77'sinin seçim yanlılığından gelmesi ve fark-farkının dördünde de grup içi yayılımdan küçük kalması, aynı 550 dakikalık kesintinin merkezî düzende 2.750 ekip-dakikaya çıkması ve benimsemeyi zorunlu kılmanın ölçütü %60 iyileştirirken kullanım başına işi %18 kötüleştirmesi.

Önceki ders beş ekibi dalgalar hâlinde taşıdı ve geride kalanı adıyla saydı. Bu konu boyunca
her ders platformun **ne yaptığını** saydı; hiçbiri bunların ekiplerin işini gerçekten
hızlandırıp hızlandırmadığını sormadı.

Dört teslimat ölçütü M22/K01'de tanımlandı ve burada tekrarlanmaz, girdidir. Ölçülen şey
ölçütler değil, **ölçütteki farkın nereden geldiğidir**. Through-line yine kurgu **bölgesel
ölçüm ağı** ve onun beş kurgu ekibidir.

## Benimsemeyi Bir Sayıya Bağlamak

**PT37:** sekiz yeteneğin her birinin kurulum işi, yıllık bakımı, kullanan ekip sayısı ve
kullanım sayısı yazılıdır. **PT38:** beş ekibin dört teslimat ölçütü benimseme öncesi ve sonrası
okunur. **PT39:** üç ekip benimsemiştir; sıra göç dalgasından gelir, yani engeli olmayan ekipler
önce taşınmıştır. **PT40:** platform bir bağımlılıktır; on iki ayda kesintiler, süreleri, o an
platformu kullanan ekip sayısı ve kaynağı yazılıdır. **PT41:** benimseme zorlanırsa her
ekip-yetenek çifti bir uyum işi getirir ve zorlananların yalnız bir bölümü kullanım üretir.
**PT42:** ekip başına yıllık destek isteği ve platform ekibinin kapasitesi yazılıdır.

Yetenekler, ölçütler ve kesintiler süreç içi bir **modeldir**; rastgelelik yoktur.

```js
// olcut/veri.mjs — platform olcutleri modeli: gercek bir olcum hatti yok; yetenekler, ekip
// olcutleri ve kesintiler bir veri yapisidir, rastgelelik yoktur. Olcut *tanimlari* M22/K01'de
// kuruldu ve burada girdidir. Is gunleri kurgudur.

export const EKIP = ["sayac-okuma", "dogrulama", "faturalama", "saha", "raporlama"];
export const BENIMSEYEN = [0, 1, 4];   // goc dalgasindan gelir: engeli olmayan ekipler once
export const BENIMSEMEYEN = [2, 3];    // kritik donem ve uyumsuz gereksinim

// yetenek: ad, kurulum isi, yillik bakim (is gunu), kullanan ekip, donemdeki kullanim
export const YETENEK = [
  ["istek uzerine ortam", 34, 7, 4, 60], ["iskelet uretimi", 22, 5, 5, 5],
  ["servis katalogu", 18, 6, 3, 5], ["politika kapisi", 27, 8, 5, 72],
  ["maliyet gorunurlugu", 15, 4, 3, 30], ["goc araci", 31, 3, 4, 4],
  ["gizli deger dondurme", 19, 5, 0, 0], ["ortak gosterge kitapligi", 24, 6, 1, 3],
];

// olcut: ad, birim, yon (+1 buyuk iyi, -1 kucuk iyi), benimseme oncesi, sonrasi (ekip sirasi)
export const OLCUT = [
  ["dagitim sikligi", "hafta", +1, [4.0, 3.5, 1.6, 1.1, 2.8], [8.4, 4.6, 2.4, 1.5, 5.9]],
  ["oncu sure", "saat", -1, [52, 61, 96, 120, 47], [18, 52, 84, 112, 12]],
  ["basarisizlik orani", "%", -1, [14, 11, 18, 21, 9], [6, 9.5, 15.5, 19, 4]],
  ["onarma suresi", "dk", -1, [190, 145, 240, 310, 160], [95, 130, 215, 300, 70]],
];

// kesinti: ay, sure (dk), o an platformu kullanan ekip sayisi, kaynak
export const KESINTI = [[2, 45, 1, "platform"], [4, 120, 2, "alt katman"],
  [6, 25, 3, "platform"], [8, 210, 3, "platform"], [10, 60, 3, "alt katman"],
  [12, 90, 3, "platform"]];

export const ISTEK_EKIP = 34, KAPASITE = 90;  // ekip basina yillik istek / platform kapasitesi
export const UYUM_ISI = 4, ZORLA_KULLANAN = 4, ZORLA_KULLANIM = 3;   // zorlamanin bedeli

export const topla = (v) => v.reduce((a, b) => a + b, 0);
const ort = (v) => topla(v) / v.length;
const grup = (g, d, y) => ort(g.map((i) => d[i])) * y;

// bir olcut icin ham fark, secim yanliligi, fark-farki ve benimseyen grubun kendi ici yayilimi
export function ayir([, , yon, once, sonra]) {
  const d = (i) => (sonra[i] - once[i]) * yon;         // iyilesme, isareti duzeltilmis
  const bd = BENIMSEYEN.map(d);
  return { sonraFark: grup(BENIMSEYEN, sonra, yon) - grup(BENIMSEMEYEN, sonra, yon),
    onceFark: grup(BENIMSEYEN, once, yon) - grup(BENIMSEMEYEN, once, yon),
    farkFarki: ort(bd) - ort(BENIMSEMEYEN.map(d)),
    yayilim: Math.max(...bd) - Math.min(...bd) };
}
```

```js
// olcut/olc.mjs — benimseme dokumu, dort olcutun ayristirilmasi, platformun kendi olcutu ve
// benimsemeyi zorunlu kilmanin olcute ne yaptigi.
import { EKIP, BENIMSEYEN, YETENEK, OLCUT, KESINTI, ISTEK_EKIP, KAPASITE, UYUM_ISI,
  ZORLA_KULLANAN, ZORLA_KULLANIM, topla, ayir } from "./veri.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 IS = topla(YETENEK.map((y) => y[1] + y[2])), KUL = topla(YETENEK.map((y) => y[4]));
const cift = topla(YETENEK.map((y) => y[3])), tumCift = YETENEK.length * EKIP.length;

console.log(`${EKIP.length} ekip, ${YETENEK.length} yetenek, ${BENIMSEYEN.length} benimseyen`);

console.log("\n1. benimseme: yetenek basina ekip ve kullanim");
const A = [-26, 8, 8, 9, 11, 14];
yaz(A, "yetenek", "kurulum", "bakim", "ekip", "kullanim", "kullanim/is");
for (const [ad, k, b, e, u] of YETENEK)
  yaz(A, ad, k, b, `${e}/${EKIP.length}`, u, u ? ((k + b) / u).toFixed(2) : "-");
yaz(A, "toplam", topla(YETENEK.map((y) => y[1])), topla(YETENEK.map((y) => y[2])),
  `${cift}/${tumCift}`, KUL, (IS / KUL).toFixed(2));
const bos = YETENEK.filter((y) => y[3] <= 1), bosIs = topla(bos.map((y) => y[1] + y[2]));
console.log(`  benimseme %${(100 * cift / tumCift).toFixed(1)}, ` +
  `${(cift / YETENEK.length).toFixed(2)} ekip/yetenek; en az kullanilan ` +
  `${bos.length} yetenek ${bosIs} is gunu (%${(100 * bosIs / IS).toFixed(0)})`);

console.log("\n2. dort teslimat olcutu: fark platformdan mi geliyor");
const B = [-24, 11, 17, 12, 10, 10];
yaz(B, "olcut", "ham fark", "secim yanliligi", "fark-farki", "yayilim", "ayrilir");
for (const o of OLCUT) {
  const r = ayir(o);
  yaz(B, `${o[0]} (${o[1]})`, r.sonraFark.toFixed(2), r.onceFark.toFixed(2),
    r.farkFarki.toFixed(2), r.yayilim.toFixed(2),
    Math.abs(r.farkFarki) > r.yayilim ? "evet" : "hayir");
}
const p = OLCUT.map((o) => { const r = ayir(o); return 100 * r.onceFark / r.sonraFark; });
console.log(`  secim yanliligi ham farkin %${Math.min(...p).toFixed(0)}-` +
  `%${Math.max(...p).toFixed(0)}'ini aciklar`);
console.log("  fark-farki dordunde de yayilimdan kucuk: kalan pay ayrilamiyor");

console.log("\n3. platform bir bagimliliktir: ayni kesinti kac ekibi durduruyor");
const sure = topla(KESINTI.map((k) => k[1]));
const gercek = topla(KESINTI.map((k) => k[1] * k[2]));
const pk = KESINTI.filter((k) => k[3] === "platform");
console.log(`  ${KESINTI.length} kesinti ${sure} dk; platform kaynakli ${pk.length} kesinti ` +
  `(${topla(pk.map((k) => k[1]))} dk), alt katman ${KESINTI.length - pk.length} kesinti`);
const C = [-11, 14, 18, 15, 16];
yaz(C, "benimseyen", "dagitilmis", "merkezi ekip-dk", "destek istegi", "kapasite asimi");
for (const n of [1, 3, 5])
  yaz(C, n, `${sure} ekip-dk`, n * sure, n * ISTEK_EKIP,
    n * ISTEK_EKIP > KAPASITE ? `%${(100 * (n * ISTEK_EKIP / KAPASITE - 1)).toFixed(0)}` : "-");
console.log(`  gerceklesen ${gercek} ekip-dk (benimseme donem icinde buyudu), ` +
  `dagitilmisin ${(gercek / sure).toFixed(1)} kati`);

console.log("\n4. benimsemeyi zorunlu kilmak olcute ne yapiyor");
const zorlanan = tumCift - cift, ekIs = zorlanan * UYUM_ISI;
const ekKul = ZORLA_KULLANAN * ZORLA_KULLANIM;
const D = [-22, 14, 13, 20];
yaz(D, "duzen", "benimseme", "kullanim", "kullanim basina is");
yaz(D, "gonullu", `%${(100 * cift / tumCift).toFixed(1)}`, KUL, (IS / KUL).toFixed(2));
yaz(D, "zorunlu", "%100.0", KUL + ekKul, ((IS + ekIs) / (KUL + ekKul)).toFixed(2));
const iyi = (100 * (tumCift / cift - 1)).toFixed(0);
const kotu = (100 * ((IS + ekIs) / (KUL + ekKul) / (IS / KUL) - 1)).toFixed(0);
const uretmez = zorlanan - ZORLA_KULLANAN;
console.log(`  zorlanan ${zorlanan} ciftin ${uretmez} tanesi kullanim uretmez`);
console.log(`  benimseme %${iyi} iyilesirken kullanim basina is %${kotu} kotulesiyor`);

const ms = Number(process.hrtime.bigint() - t0) / 1e6;   // ham olcum basilmaz, bant denetlenir
console.log(`\ndort tablo 2000 ms bandinda: ${ms < 2000 ? "evet" : "hayir"}`);
```

```
5 ekip, 8 yetenek, 3 benimseyen

1. benimseme: yetenek basina ekip ve kullanim
yetenek                    kurulum   bakim     ekip   kullanim   kullanim/is
istek uzerine ortam             34       7      4/5         60          0.68
iskelet uretimi                 22       5      5/5          5          5.40
servis katalogu                 18       6      3/5          5          4.80
politika kapisi                 27       8      5/5         72          0.49
maliyet gorunurlugu             15       4      3/5         30          0.63
goc araci                       31       3      4/5          4          8.50
gizli deger dondurme            19       5      0/5          0             -
ortak gosterge kitapligi        24       6      1/5          3         10.00
toplam                         190      44    25/40        179          1.31
  benimseme %62.5, 3.13 ekip/yetenek; en az kullanilan 2 yetenek 54 is gunu (%23)

2. dort teslimat olcutu: fark platformdan mi geliyor
olcut                      ham fark  secim yanliligi  fark-farki   yayilim   ayrilir
dagitim sikligi (hafta)        4.35             2.08        2.27      3.30     hayir
oncu sure (saat)              70.67            54.67       16.00     26.00     hayir
basarisizlik orani (%)        10.75             8.17        2.58      6.50     hayir
onarma suresi (dk)           159.17           110.00       49.17     80.00     hayir
  secim yanliligi ham farkin %48-%77'ini aciklar
  fark-farki dordunde de yayilimdan kucuk: kalan pay ayrilamiyor

3. platform bir bagimliliktir: ayni kesinti kac ekibi durduruyor
  6 kesinti 550 dk; platform kaynakli 4 kesinti (370 dk), alt katman 2 kesinti
benimseyen     dagitilmis   merkezi ekip-dk  destek istegi  kapasite asimi
1             550 ekip-dk               550             34               -
3             550 ekip-dk              1650            102             %13
5             550 ekip-dk              2750            170             %89
  gerceklesen 1440 ekip-dk (benimseme donem icinde buyudu), dagitilmisin 2.6 kati

4. benimsemeyi zorunlu kilmak olcute ne yapiyor
duzen                      benimseme     kullanim  kullanim basina is
gonullu                        %62.5          179                1.31
zorunlu                       %100.0          191                1.54
  zorlanan 15 ciftin 11 tanesi kullanim uretmez
  benimseme %60 iyilesirken kullanim basina is %18 kotulesiyor

dort tablo 2000 ms bandinda: evet
```

Sayılar **ölçüm** sınıfındadır; girdileri yukarıdaki varsayımlardır.

## Benimseme Üç Sayıdır, Bir Değil

Kırk ekip-yetenek çiftinin yirmi beşi doludur (**%62,5**) ve yetenek başına 3,13 ekip düşer.
Üçüncü sütun tabloyu değiştirir: kullanım başına iş `politika kapisi` yeteneğinde 0,49 iş günü,
`ortak gosterge kitapligi` yeteneğinde **10,00 iş günü** tutar — yirmi kat fark.

İki yetenek karşılıksızdır. `gizli deger dondurme` hiç kullanılmaz: 19 iş günü kurulum, 5 iş
günü bakım, sıfır kullanım. `ortak gosterge kitapligi` tek ekibe hizmet eder. İkisi birlikte
**54 iş günü**, toplam yatırımın **%23'ü** — platformun kazandırmadığı durum burada bir sütunda
okunur: iş yapılmış, karşılığı doğmamıştır.

## Fark Platformdan mı Geliyor

Ham fark iki grubun benimseme sonrasındaki farkıdır ve dört ölçütte de büyüktür: haftada 4,35
dağıtım, 70,67 saat öncü süre, 10,75 puan başarısızlık oranı, 159,17 dakika onarma süresi.

İkinci sütun bu farkın ne kadarının **benimsemeden önce de var olduğunu** yazar: öncü sürede
70,67 saatlik farkın **54,67'si**, başarısızlık oranında 10,75 puanın 8,17'si. Karıştırıcı
etkenin adı **seçim yanlılığı**dır ve nedeni önceki derste ölçüldü — platforma ilk taşınan
ekipler engeli olmayanlardı, zaten daha hızlıydılar. Ham farkın **%48 ile %77'sini** açıklar.

Üçüncü sütun ikisinin farkını alır. Fark-farkı, benimsemeyen grubun aynı dönemdeki kendi
iyileşmesini de düşer — ikinci karıştırıcı etken olan **ortak eğilimi** temizler. Geriye dağıtım
sıklığında 2,27, öncü sürede 16,00 saat kalır.

Dördüncü sütun kalanı da çürütür. Benimseyen üç ekibin kendi aralarındaki yayılım dağıtım
sıklığında 3,30, öncü sürede 26,00'dır; her ölçütte fark-farkından **büyüktür** ve son sütun
dördünde de `hayır` yazar: **fark vardır ama nereden geldiği ayrılamaz.**

## Platform Bir Bağımlılıktır

Üçüncü tablo platformun kendi ölçütünü sayar: on iki ayda altı kesinti ve 550 dakika, dördü
platform kaynaklı (370 dakika). Asıl sayı süre değil, **ekip-dakika**dır. Dağıtılmış düzende bir
arıza bir ekibi durdurur: 550 ekip-dakika. Merkezî düzende aynı 550 dakika benimseyen ekip
sayısıyla çarpılır — beş ekipte **2.750 ekip-dakika**. Gerçekleşen 1.440'tır, dağıtılmışın
**2,6 katı**.

Soyutlamanın sızdığı yer budur: tek bir katman gizlendiği için tek bir arıza beş ekibi birden
durdurur. **Platform ne kadar başarılıysa bir kesintisi o kadar pahalıdır.** Destek isteği de
kapasiteyi beş ekipte **%89** aşar.

## Ölçütün Yanlış Yönlendirdiği Yer

Dördüncü tablo benimseme oranını hedef almanın sonucudur. Zorunlu kılınca oran %62,5'ten
%100'e çıkar; zorlanan on beş çift 60 iş günü uyum işi getirir ve **on biri hiç kullanım
üretmez**. **Ölçüt %60 iyileşirken kullanım başına iş 1,31'den 1,54'e, %18 kötüleşir** — ölçüt
hareket eder, ölçmesi gereken şey etmez.

İkinci yanlış yönlendirme ikinci tablodadır. Kolay ekipleri önce taşımak göç programı için
doğru karardır, ama aynı karar teslimat ölçütlerindeki farkın %48 ile %77'sini üretir: sıralama
bir yerde verimlilik, başka bir yerde yanlılıktır.

## Özet

- Kırk ekip-yetenek çiftinin 25'i doludur (%62,5); kullanım başına iş 0,49 ile 10,00 iş günü
  arasında değişir ve en az kullanılan iki yetenek yatırımın %23'ünü (54 iş günü) tutar.
- Dört teslimat ölçütünde ham farkın %48-%77'si seçim yanlılığından gelir; fark-farkı ortak
  eğilimi de temizler ama dördünde de grup içi yayılımdan küçük kalır — farkın nereden geldiği
  ayrılamaz.
- Aynı 550 dakikalık kesinti dağıtılmış düzende 550, beş ekipte 2.750 ekip-dakikadır;
  gerçekleşen 1.440, dağıtılmışın 2,6 katı ve destek isteği kapasiteyi %89 aşar.
- Benimsemeyi zorunlu kılmak oranı %100'e çıkarır ve zorlanan 15 çiftin 11'i hiç kullanım
  üretmez; kullanım başına iş %18 kötüleşir.

## Kurs Kapanışı

| Ders | Gizlenen katman | Kaç ekip, ne kadar kazanç | Sızma ya da dışına çıkma |
|---|---|---|---|
| Platform Mühendisliği Nedir | 18 kalem, 666 iş günü | eşik 7 ekip; 5'te −121 gün | artık %30,6; 9/18'de muafiyet |
| Ürün Olarak Platform | istek→ihtiyaç, 20→14 yetenek | 5 ekip, 132 iş günü | ürün ekiplerine 128 gün (%97) |
| Altın Yollar | 10 destek kalemi, üç eksen | 64 iş günü/yıl; 1/5 sığar | `saha` on kalemi de kaybeder |
| Standart ve Özerklik Dengesi | kip seçimi, 80 iş günü | karma düzen +10 iş günü | duvar 10 meşru gereksinimi tutar |
| Kendi Kendine Hizmet | talep kuyruğu, 1.551 istek | 6/12 tür, 79 iş günü | `bolge tasima` −32 iş günü |
| İstek Üzerine Ortam Sağlama | ortam kurulum adımları | 336 insan-saat; eşik 5 ekip | havuz 16/90 gün dolu; `saha` dışarıda |
| Şablon ve İskelet Üretimi | 19 karar, 3 cevaba iner | 5 servis, 95→15 cevap | sürüm 2'de 4/5 servis geride |
| Geliştirici Portalı ve Servis Kataloğu | ters kenar ve sahiplik | 32→28,8 dk; eşik 2 olay | 6/12 kayıt uyuşmaz |
| Politika ve Uyumluluk Otomasyonu | 6 kuralın metni | 5 ekip, 830→152 dk | 4 muafiyet, ömrü 3,2 kat |
| Maliyet Görünürlüğü | fatura ve muhasebe hattı | 85 br/gün; eşik 3 ekip | 408 br/gün denetim dışı |
| Göç Stratejileri | göçün 14 adımından 10'u | dalga=1'de 4 ekip, 40 adım | 1–3 ekip geride, eski düzen süresiz |
| Platform Ölçütleri | ölçüm hattının kendisi | 3 ekip, 25/40 çift (%62,5) | 1.440 ekip-dk kesinti |

On iki satırın hiçbirinde üçüncü sütun dördüncüsüz değildir. Kazanç her derste bir sayıya
bağlandı ve yanında bir bedel durdu: **soyutlama gizlediği katmanı ortadan kaldırmaz** —
kazancını ekip sayısıyla çarpar, bedelini sızma ve dışına çıkmayla ödetir. Eşik üç derste
açıkça çıktı (7, 5 ve 3 ekip) ve üçünde de altında kalmak platformu zararlı yaptı.

| Kurs | Ölçü ekseni | Ölçü birimi |
|---|---|---|
| K01 DevOps Kültürü ve Temelleri | fark nerede saklı | fark kalemi |
| K02 Konteynerler | yalıtım bir bütçedir | bayt, katman, kaynak |
| K03 Konteyner Orkestrasyonu | kararı devretmenin bedeli | bilgi kalemi |
| K04 Sürekli Tümleştirme ve Teslimat | her kapı neyi tutar, neyi kaçırır | marjinal kapı değeri |
| K05 Kod Olarak Altyapı | kayıt ile gerçek arasındaki fark | kayıt kalemi |
| K06 Gözlemlenebilirlik ve İşletim | veri değil, soru | soru başına maliyet |
| K07 Sunucu, Ağ ve Sertleştirme | varsayılanın kendisi | açık yüzey kalemi |
| K08 Platform Mühendisliği | soyutlamanın bedeli | gizlenen katman |

Sekiz kurs sekiz ayrı konu anlattı ama tek bir biçimde ölçtü. Fark kalemi de, açık yüzey kalemi
de, gizlenen katman da aynı üç şeyi soruyordu: **bir karar, bir sayı ve o sayının karşılığında
ödenen bedel.** K02'de yalıtımın bedeli baytla, K04'te bir kapının değeri yakaladığı ihlalle,
K08'de soyutlamanın değeri kurtardığı ekip sayısıyla ölçüldü. Hiçbirinde "iyidir" tek başına
karar taşımadı.

Ölçmenin kendisi de bedelsiz değildi: K06 ölçen tarafın faturada ayrı bir kalem olduğunu saydı,
K08 ölçüm yatırımının %23'ünün karşılıksız kaldığını gösterdi. **Ölçülemeyeni ölçülmüş gibi
yazmamak da bir ölçüm kararıdır** — ve bu müfredatın son satırı odur.
