---
title: 'Erişilebilirliğin Sayısal İfadesi'
source: 'https://academia.sh/tr/kurslar/sistem-tasarimina-giris/erisilebilirligin-sayisal-ifadesi'
course: 'Sistem Tasarımına Giriş'
language: tr
updated: '2026-08-17T18:10:56+00:00'
license: 'CC BY-SA 4.0'
---

# Erişilebilirliğin Sayısal İfadesi

Hizmet erişilebilirliği yüzdesinin bir kesinti bütçesine çevrilmesi: yüzdelerin yıl, ay, hafta ve gün başına süreye dönüştürülmesi, bütçenin planlı işler ile arıza arasında bölünmesi, hedefin yükseltilmesinin planlı işleri olanaksız kılması ve seri bir zincirde çarpımın, kopyalamada tümleyenin bileşik erişilebilirliğe etkisinin hesaplanması.

Önceki üç ders sistemin çalıştığı varsayımıyla ölçüm yaptı: yük, kapasite, hızlanma ve maliyet.
Bir birim durduğunda sorulacak sorular başkadır. Sistemin ne kadarı durur, ne kadar süre durur,
ve bu süre kabul edilebilir mi? Üçüncü soru bir yüzdeyle yanıtlanır ve yüzde tek başına hiçbir
şey söylemez.

Bu ders yüzdeyi bir süreye çevirir, o süreyi harcanabilir bir bütçe olarak ele alır ve
bileşenlerin birleştirilmesinin bütçeye ne yaptığını hesaplar. Bütün sayılar hesap sınıfındadır;
girdileri açıkça adlandırılmış varsayımlardır.

## İki Erişilebilirlik ve İki Tanım

**Hizmet erişilebilirliği** (availability), sistemin isteklere yanıt verebildiği zamanın toplam
zamana oranıdır. Terim, arayüz **erişilebilirliği** (accessibility) ile karıştırılmamalıdır;
ikincisi bir arayüzün yardımcı teknolojilerle kullanılabilmesidir ve Erişilebilir Bileşen Kalıpları
kursunun konusudur. Bu derste geçen erişilebilirlik daima hizmet erişilebilirliğidir ve kısaltılmaz.

Oranın iki tabanı vardır ve aynı kesinti iki tabanda farklı görünür. **Zaman tabanlı** ölçüm
çalışan süreyi toplam süreye böler; kesinti dakikası sayılır. **İstek tabanlı** ölçüm başarılı
isteği toplam isteğe böler; kaç kullanıcının etkilendiği sayılır. İkisi ayrışır çünkü trafik
düzgün dağılmaz: Kabaca Büyüklük Hesabı dersinin tepe çarpanı 3 olduğuna göre, tepe saatte
düşen beş dakika, ortalama yükte düşen beş dakikanın üç katı isteği etkiler. Bu ders bütçeyi
zaman tabanlı kurar, çünkü bütçe önceden ayrılan bir miktardır ve trafiği bilmeden ayrılır.

## Yüzdeyi Süreye Çevirmek

Yüzde biçimi karşılaştırmayı yanıltır: yüzde 99,9 ile yüzde 99,99 arasındaki 0,09 puanlık fark
küçük görünür. Aynı fark dakikaya çevrildiğinde görünmez olmaktan çıkar.

```js
// hizmet/butce.mjs — hizmet erisilebilirligi yuzdesinin donem basina kesinti butcesine cevrilmesi
const DONEM = [["yil", 365 * 24 * 60], ["ay", 30 * 24 * 60], ["hafta", 7 * 24 * 60], ["gun", 24 * 60]];
const YUZDE = [99, 99.5, 99.9, 99.95, 99.99, 99.999];

const yaz = (dk) => (dk >= 60 ? `${(dk / 60).toFixed(1)} sa` : dk >= 1 ? `${dk.toFixed(1)} dk` : `${(dk * 60).toFixed(1)} sn`);

console.log(`${"yuzde".padEnd(9)}${DONEM.map(([a]) => a.padStart(12)).join("")}`);
for (const y of YUZDE) {
  const kesir = 1 - y / 100;
  console.log(`${`%${y}`.padEnd(9)}${DONEM.map(([, dk]) => yaz(kesir * dk).padStart(12)).join("")}`);
}

const bir = 1 - 99.9 / 100;
const iki = 1 - 99.99 / 100;
console.log(`\n%99.9 -> %99.99: aylik butce ${yaz(bir * 43200)} yerine ${yaz(iki * 43200)}, ` +
  `${(bir / iki).toFixed(0)} kat daralma`);
console.log(`bir dokuz eklemek kesinti payini her seferinde 10'a boler; yuzde 0.09 puanlik fark ` +
  `aylik ${yaz((bir - iki) * 43200)} demektir`);
```

```
yuzde             yil          ay       hafta         gun
%99           87.6 sa      7.2 sa      1.7 sa     14.4 dk
%99.5         43.8 sa      3.6 sa     50.4 dk      7.2 dk
%99.9          8.8 sa     43.2 dk     10.1 dk      1.4 dk
%99.95         4.4 sa     21.6 dk      5.0 dk     43.2 sn
%99.99        52.6 dk      4.3 dk      1.0 dk      8.6 sn
%99.999        5.3 dk     25.9 sn      6.0 sn      0.9 sn

%99.9 -> %99.99: aylik butce 43.2 dk yerine 4.3 dk, 10 kat daralma
bir dokuz eklemek kesinti payini her seferinde 10'a boler; yuzde 0.09 puanlik fark aylik 38.9 dk demektir
```

Ay, otuz gün olarak alınmıştır; ayların uzunluğu eşit olmadığı için bütçenin dönemi baştan
tanımlanmalıdır, yoksa aynı yüzde şubatta başka bir dakika sayısı verir.

Tablonun ilk sonucu ölçek farkıdır. Sözlü tartışmada "yüzde doksan dokuz erişilebilir" cümlesi
güçlü durur; karşılığı bir yılda 87,6 saat, yani üç buçuk günü aşan bir kesintidir. Yüzde
99,999 aynı yılda 5,3 dakikadır — tek bir yeniden başlatma bu bütçenin tamamını harcar.

İkinci sonuç dönem seçiminin ölçüsüdür. Yüzde 99,9 bir ayda 43,2 dakika, bir günde 1,4 dakika
verir. İki sayı aynı hedefi anlatır ama farklı davranışa izin verir: aylık bütçe tek bir 43
dakikalık kesintiyi kabul eder, günlük bütçe etmez. **Hedefin dönemi hedefin kendisi kadar
belirleyicidir.**

## Bütçe Harcanır

Kesinti bütçesinin asıl kullanımı, kesintiyi başa gelen bir şey olmaktan çıkarıp harcanan bir
kaynağa çevirmesidir. Bütçenin bir kısmı bilinçli olarak harcanır: her sürüm geçişinde süreçler
kapanıp açılır, planlı bakımda hizmet durur. Kalan kısım arızaya ayrılmış paydır.

Aşağıdaki hesap dört varsayım alır. **Hedef yüzde 99,9**; gerekçesi takip sorgusunun ticari bir
taahhüt taşıması ama ödeme akışı olmamasıdır. **Ayda 20 dağıtım** ve **dağıtım başına 15 saniye
yanıtsızlık**; gerekçesi sürüm geçişinde eski sürecin kapanıp yenisinin açılmasıdır. **Ayda 10
dakika planlı bakım.** Bir de **kurtarma süresi 10 dakika**; İlişkisel Veritabanı Yönetimi
kursundaki kurtarma süresi hedefiyle aynı büyüklüktür.

```js
// hizmet/harcama.mjs — aylik kesinti butcesinin planli islere ve arizaya bolunmesi
const AY = 30 * 24 * 60;           // dakika
const HEDEF = 99.9;                // varsayim: hizmet erisilebilirligi hedefi
const DAGITIM = 20;                // varsayim: aylik dagitim sayisi
const DAGITIM_SN = 15;             // varsayim: dagitim basina yanitsizlik (saniye)
const BAKIM_DK = 10;               // varsayim: aylik planli bakim (dakika)
const KURTARMA_DK = 10;            // varsayim: bir arizanin kurtarma suresi (dakika)

function butce(hedef, dagitim) {
  const toplam = (1 - hedef / 100) * AY;
  const planli = (dagitim * DAGITIM_SN) / 60 + BAKIM_DK;
  return { toplam, planli, ariza: toplam - planli, adet: (toplam - planli) / KURTARMA_DK };
}

console.log("hedef      dagitim   aylik butce   planli   arizaya kalan   kaldirilan ariza");
for (const [hedef, dagitim] of [[HEDEF, DAGITIM], [HEDEF, DAGITIM * 2], [99.99, DAGITIM]]) {
  const b = butce(hedef, dagitim);
  console.log(`%${String(hedef).padEnd(9)}${String(dagitim).padStart(7)}` +
    `${b.toplam.toFixed(1).padStart(14)} dk${b.planli.toFixed(1).padStart(9)} dk` +
    `${b.ariza.toFixed(1).padStart(16)} dk${b.adet.toFixed(2).padStart(19)}`);
}

const b = butce(HEDEF, DAGITIM);
console.log(`\nplanli islerin butcedeki payi = ${((b.planli / b.toplam) * 100).toFixed(1)}%`);
console.log(`hedef %99.99 olsa planli isler butcenin ${((butce(99.99, DAGITIM).planli / butce(99.99, DAGITIM).toplam) * 100).toFixed(0)}%'i olur`);
```

```
hedef      dagitim   aylik butce   planli   arizaya kalan   kaldirilan ariza
%99.9          20          43.2 dk     15.0 dk            28.2 dk               2.82
%99.9          40          43.2 dk     20.0 dk            23.2 dk               2.32
%99.99         20           4.3 dk     15.0 dk           -10.7 dk              -1.07

planli islerin butcedeki payi = 34.7%
hedef %99.99 olsa planli isler butcenin 347%'i olur
```

İlk satır bütçenin nasıl bölündüğünü gösteriyor: 43,2 dakikanın 15,0'ı planlı işlere gidiyor,
yani bütçenin yüzde 34,7'si daha hiçbir arıza olmadan harcanmış durumda. Arızaya kalan 28,2
dakika, on dakikalık kurtarma süresiyle ayda 2,82 arıza demektir: iki arıza bütçeye sığar,
üçüncüsü hedefi kırar.

İkinci satır varsayımın duyarlılığıdır: dağıtım sayısı iki katına çıktığında arıza payı 28,2'den
23,2 dakikaya, kaldırılabilen arıza 2,82'den 2,32'ye düşüyor. Daha sık yayın yapmak, daha az
arıza hakkı demektir — ikisi aynı bütçeden ödenir.

Üçüncü satır dersin en sert sonucudur. Hedef yüzde 99,99'a çıkarıldığında aylık bütçe 4,3
dakikaya iner ve planlı işlerin 15,0 dakikası bütçenin **yüzde 347'sini** tutar; arıza payı eksi
10,7 dakikadır. Hedef, hiçbir arıza olmasa bile karşılanamaz. **Bir erişilebilirlik hedefi
yükseltilirken dağıtım biçiminin de değişmesi gerekir**; yoksa hedef bir niyet beyanı olarak
kalır. Kesinti bütçesinin bir hedefi olanaksız olarak işaretleyebilmesi, onu bir ölçüt yapan
şeydir.

## Bileşik Sistemde Çarpım

Bir isteğin yanıtlanması için birden çok bileşenin birlikte çalışması gerekir. Takip sorgusu uç
sürece gelir, önbelleğe bakar, gerekirse gönderi deposuna gider ve durum olay akışından
beslenir. Bileşenlerden biri düştüğünde istek yanıtlanamıyorsa, bileşenler **seri** bağlıdır ve
bileşik erişilebilirlik çarpımdır.

```js
// hizmet/bilesik.mjs — seri zincirde carpim, kopyada tumleyen: takip yolunun bilesik erisilebilirligi
const AY = 30 * 24 * 60;           // dakika
const ZINCIR = ["uc surec", "onbellek", "gonderi deposu", "olay akisi"];
const BILESEN = 0.999;             // varsayim: bilesen basina hizmet erisilebilirligi

const dakika = (a) => (1 - a) * AY;
const seri = (a, n) => a ** n;
const kopyali = (a, k) => 1 - (1 - a) ** k;

console.log(`zincir = ${ZINCIR.length} bilesen, bilesen basina %${(BILESEN * 100).toFixed(1)}`);
console.log("bilesen sayisi   bilesik erisilebilirlik   aylik kesinti");
for (let n = 1; n <= ZINCIR.length; n += 1) {
  const a = seri(BILESEN, n);
  console.log(`${String(n).padStart(14)}   ${(a * 100).toFixed(4).padStart(21)}%   ${dakika(a).toFixed(1).padStart(9)} dk`);
}

console.log("\nkopya sayisi   bilesen kesinti payi   zincir kesinti payi   aylik kesinti");
for (const k of [1, 2, 3]) {
  const b = kopyali(BILESEN, k);
  const z = seri(b, ZINCIR.length);
  console.log(`${String(k).padStart(12)}   ${(1 - b).toExponential(2).padStart(20)}   ` +
    `${(1 - z).toExponential(2).padStart(19)}   ${(dakika(z) * 60).toFixed(3).padStart(9)} sn`);
}

const iyi = 0.9999;
console.log(`\nduyarlilik: bilesen %${(iyi * 100).toFixed(2)} olsa kopyasiz zincir ` +
  `%${(seri(iyi, ZINCIR.length) * 100).toFixed(4)}, aylik ${dakika(seri(iyi, ZINCIR.length)).toFixed(1)} dk`);
console.log(`en zayif halka: zincir hicbir bilesenin uzerine cikamaz (ust sinir %${(BILESEN * 100).toFixed(1)})`);
```

```
zincir = 4 bilesen, bilesen basina %99.9
bilesen sayisi   bilesik erisilebilirlik   aylik kesinti
             1                 99.9000%        43.2 dk
             2                 99.8001%        86.4 dk
             3                 99.7003%       129.5 dk
             4                 99.6006%       172.5 dk

kopya sayisi   bilesen kesinti payi   zincir kesinti payi   aylik kesinti
           1                1.00e-3               3.99e-3   10352.458 sn
           2                1.00e-6               4.00e-6      10.368 sn
           3                1.00e-9               4.00e-9       0.010 sn

duyarlilik: bilesen %99.99 olsa kopyasiz zincir %99.9600, aylik 17.3 dk
en zayif halka: zincir hicbir bilesenin uzerine cikamaz (ust sinir %99.9)
```

Birinci tablo çarpımın yönünü veriyor: her bileşen yüzde 99,9 olmasına karşın dört bileşenlik
zincir yüzde 99,6006'dır ve aylık kesinti 43,2 dakikadan 172,5 dakikaya, yani neredeyse dört
katına çıkar. Kesinti payları yaklaşık olarak toplanır. Bunun tasarım sonucu doğrudandır:
**bileşen eklemek erişilebilirliği düşürür**, çünkü seri bir zincirde her yeni bileşen yeni bir
tek nokta demektir. Mimari Biçemler kursunda mikroservis düzeninin faturası birim sayısıyla
büyüyen durum sayısı olarak sayılmıştı; buradaki karşılığı çarpımdır.

Aynı tablo bir üst sınır da veriyor. Seri bir zincir en zayıf bileşeninin üzerine çıkamaz:
kopyalama olmadan, yüzde 99,9'luk bir bileşen içeren bir yol yüzde 99,95 olamaz. Bir hedef
bileşen hedeflerine bölünmeden konursa, tutulup tutulmadığı bileşenlere bakılarak sınanamaz.

İkinci tablo tersi yöndeki tek aracı gösteriyor: aynı bileşenin birden çok kopyasını koymak.
Kopyalar **koşut** bağlıdır — hepsi birlikte düşmedikçe bileşen ayaktadır — ve kesinti payı
kopya sayısıyla üs alır. Bir bileşenin kesinti payı binde birden ikinci kopyayla milyonda bire,
üçüncü kopyayla milyarda bire iner; dört bileşenlik zincirin aylık kesintisi 10 352 saniyeden
10,4 saniyeye, sonra 0,010 saniyeye düşer.

Bu ikinci tablonun bir varsayımı vardır ve varsayım gerçekte tam tutmaz: **kopyaların
birbirinden bağımsız düştüğü.** Aynı hatalı sürümü çalıştıran iki kopya aynı istekte birlikte
düşer; aynı yapılandırma hatası ikisini birlikte bozar. Bağımsızlık tutmadığı ölçüde gerçek
erişilebilirlik hesaplananın altında kalır, dolayısıyla bu sayılar bir **üst sınırdır**. Kopya
eklemek de aritmetikte göründüğü kadar ucuz değildir; kopyaların birbirinden habersiz kalması
başka bir maliyet doğurur ve o maliyet bu konunun geri kalanının konusudur.

Son satır duyarlılığı veriyor: bileşen erişilebilirliği yüzde 99,99 olsaydı kopyasız zincir
yüzde 99,9600 ve aylık kesinti 17,3 dakika olurdu. Aynı sonuca iki yoldan gidilebiliyor —
bileşeni iyileştirmek ya da kopyalamak — ve ikisinin maliyeti önceki dersin maliyet eğrileriyle
karşılaştırılır.

## Özet

- Hizmet erişilebilirliği sistemin yanıt verebildiği zamanın oranıdır ve arayüz
  erişilebilirliğinden ayrı bir kavramdır; zaman tabanlı ile istek tabanlı ölçüm aynı kesintiyi
  farklı gösterir.
- Yüzde 99,9 yılda 8,8 saat, ayda 43,2 dakika, günde 1,4 dakika kesintidir; bir dokuz eklemek
  payı 10'a böler ve 0,09 puanlık fark aylık 38,9 dakika demektir.
- Hedefin dönemi hedef kadar belirleyicidir: aylık 43,2 dakika tek bir uzun kesintiye izin
  verir, günlük 1,4 dakika vermez.
- Bütçenin yüzde 34,7'si planlı işlere gidiyor (20 dağıtım ve 10 dakika bakım); arızaya kalan
  28,2 dakika on dakikalık kurtarma süresiyle ayda 2,82 arızadır.
- Hedef yüzde 99,99'a çıkarıldığında planlı işler bütçenin yüzde 347'sini tutar ve hedef hiçbir
  arıza olmadan bile karşılanamaz; hedefi yükseltmek dağıtım biçimini değiştirmeyi gerektirir.
- Seri zincirde erişilebilirlikler çarpılır: dört tane yüzde 99,9'luk bileşen yüzde 99,6006 ve
  aylık 172,5 dakika verir. Koşut kopyalarda kesinti payı üs alır, ama hesap kopyaların bağımsız
  düştüğünü varsaydığı için bir üst sınırdır.

## Sonraki Adım

Bu ders hizmet erişilebilirliğini bir bütçeye çevirdi ve bütçenin nasıl harcandığını saydı:
dağıtım, bakım, arıza. Açıkta kalan soru bütçenin **neden** harcandığıdır. Kesintinin bir kısmı
arızadan gelir — bir bileşen düşer, kurtarılana kadar bütçeden dakika gider. Bir kısmı ise
bilinçli bir karardan gelir ve bu kısım aritmetikte görünmez. Kopya eklemenin faturası son
tabloda yarım kalmıştı: kopyalar birbirinden habersiz kaldığında sistem iki şeyden birini seçmek
zorundadır. Yanıt vermeyi mi seçer, doğru yanıt vermeyi mi? Yanıt vermeyi seçmek bütçeyi
korur ve yanlış bir değer döndürür; doğru yanıt vermek için beklemek ya da reddetmek bütçeden
harcar. Sonraki ders bu seçimi adlandırır, iki politikayı aynı arıza senaryosunda ölçer ve
kesinti bütçesinden kaç dakikanın hangi politika yüzünden gittiğini sayar.
