---
title: 'Ağ Otomasyonunun Gerekçesi'
source: 'https://academia.sh/tr/kurslar/ag-isletimi/ag-otomasyonunun-gerekcesi'
course: 'Ağ İşletimi ve Otomasyon'
language: tr
updated: '2026-08-17T18:07:14+00:00'
license: 'CC BY-SA 4.0'
---

# Ağ Otomasyonunun Gerekçesi

Elle yapılandırmada hata dokunuş sayısıyla büyür: kırk aygıtta 122 alan dokunuşu 12 hata ve 10 hatalı aygıt üretir. Şablon dokunuşu 1'e indirir ama beklenen hatalı aygıt 9,76'dan 11,34'e çıkar ve şablonun dışında kalan altı aygıtlık kuyruk yerinde durur.

Önceki ders uçtan uca sağlık göstergelerini ölçtü ve buraya kadar dokunulan her kaldıraç
aynı türdendi: **gözlemin** kaldıracı. Örnekleme oranı, yakalama filtresi, sorgu aralığı —
üçü de ağın ne yaptığını değil, ağın ne kadarını gördüğümüzü belirliyordu. Yanlış ayarlanmış
bir örnekleme oranı bir aygıtı bozmaz, yalnızca gizler; kaldıracı geri çevirdiğinizde aygıt
oradadır.

Bu konu kaldıracı değiştiriyor. Kaldıraç artık **yapılandırmanın kendisi**. Yanlış yazılmış
bir şablon bir aygıtı gizlemez, onu değiştirir; ve değişiklik uygulandıktan sonra kaldıracı
geri çevirmek eski durumu geri getirmez, çünkü eski durum artık hiçbir yerde durmuyordur.
Bu dersin sorusu otomasyonun iyi bir fikir olup olmadığı değil — elle yapılandırmanın
hatasının **neyle** büyüdüğü, otomasyonun bu büyümeyi nasıl kestiği, ve kestikten sonra
geriye **hangi kuyruğun** kaldığıdır.

## Dokunuş: Elle Yapılandırmanın Birimi

Elle yapılandırmanın birimi aygıt değildir, **alandır**. Bir operatör kırk aygıtı
yapılandırırken kırk kez değil, her aygıtta o aygıtın gerektirdiği alan sayısı kadar karar
verir ve o kadar kez yazar. Aygıtlar birbirinin aynı olmadığı için bu sayı da aynı değildir.

```text
# ogretilen yapilandirma dokumu , calistirilmamistir

aygıt 14                          aygıt 33
  arayuz    : ana                   arayuz      : ana
  adres     : /24                   adres       : /24
  zamanlayici: 400 ms               oncelik     : etkilesim
                                    yerel_kural : var
```

İki aygıt, dört ve dört değil, üç ve dört alan. Kapasitesi yüksek olan aygıt bir bağlantı
toplama alanı ister, gecikmesi yüksek olan bir zamanlayıcı ister, etkileşim sınıfındaki bir
öncelik alanı ister, ve şablonun dışında kalması gereken **özel** aygıt hiçbir şablonun
taşımadığı bir yerel kural ister. Yapılandırmanın toplam yüzeyi aygıt sayısı değil, bu
alanların toplamıdır.

Bunun doğrudan sonucu şudur: **elle yapılandırmada hata, aygıt sayısıyla değil, dokunuş
sayısıyla büyür** — ve dokunuş sayısı aygıt sayısıyla birlikte büyüdüğü için sonuç aynı
kapıya çıkar. Kırk aygıtlık bir değişiklik on aygıtlık bir değişikliğin dört katı hata
üretmez; dokunuş sayısı kaç katına çıktıysa o kadar katına çıkarır.

## Elle Yapılandırmanın Hata Modları

Dört mod ayrılır ve dördü ayrı ayrı sayılabilir.

**Yanlış yazılan alan.** Değer yazılır, sözdizimi doğrudur, aygıt kabul eder ve yanlıştır.
Aygıt bir kusur bildirmez çünkü kusur yoktur; niyet ile yazılan arasındaki fark aygıtın
göremeyeceği bir farktır.

**Atlanan aygıt.** Kırk aygıtın otuz dokuzu değişir, biri değişmez. Bu aygıt uzun süre
çalışmaya devam eder ve fark ancak onu ötekilerden ayıran bir olay olduğunda görülür.

**Sıraya bağlı kısmi uygulama.** Değişiklik yarıda kesilirse aygıtların bir kısmı yeni, bir
kısmı eski yapılandırmayla kalır. Ağ bu iki kümenin arasında tutarsız davranır.

**Belge ile aygıtın ayrışması.** Yazılı yapılandırma bir yerde durur, aygıttaki gerçek
yapılandırma başka bir şeydir. Bu farka **yapılandırma sapması (configuration drift)** denir
ve Kablosuz Ağlar ve Ağ Güvenliği kursunda sınırın niyet edilen hâli ile gerçekten geçen
arasındaki fark olarak kuruldu. Burada aynı fark **yapılandırmanın kendisinde** ölçülür.

Dördünün ortak yanı, hiçbirinin aygıt tarafından bildirilmemesidir. Aygıt kendisine yazılanı
uygular; yazılanın doğru olup olmadığı aygıtın bilgisi dışındadır.

## Şablon Tek Dokunuştur

Otomasyonun tek bir yapısal iddiası vardır: **dokunuş sayısını aygıt sayısından bağımsız
kılmak.** Yapılandırma bir kez yazılır, bir kez gözden geçirilir, ve kırk aygıta bir işlemle
uygulanır. Yazılan şey komut dizisi değil, **istenen son durumdur** — bu yaklaşıma
**bildirimsel (declarative)** denir; aracın ne yapacağını değil, sonucun ne olacağını
tanımlar.

Kod olarak altyapı yordamının kendisi ve araç seçimi Kod Olarak Altyapı kursunun konusudur ve
burada tekrarlanmaz. Bu kursta nesne bir sunucu ya da bir bulut kaynağı değil, **ağ
aygıtıdır**; ve ölçülen şey yordamın verimi değil, **şablonun dışında kalan azınlıktır.**

Dokunuşu bire indirmenin bir bedeli var ve bedel hatanın yayılımıdır. Elle yapılandırmada
yanlış yazılan bir alan **bir** aygıtı bozar. Şablonda yanlış yazılan bir alan **kırk** aygıtı
birden bozar. Hata olasılığı düşmez, hatanın büyüklüğü değişir: elle yapılandırma çok sayıda
küçük hata üretir, şablon az sayıda çok büyük hata üretir.

Ölçümün varsayımları:

- **OT1** — Kırk aygıtlık özne kümesi kursun sabitidir ve bu derste değiştirilmez. Kâhin
  kurgunun kendisidir: hangi aygıtın özel olduğunu biz yazdığımız için biliriz.
- **OT2** — Bir aygıtın elle yazılması gereken alanları niteliklerinden türetilir: her
  aygıtta arayüz ve adres, etkileşim sınıfında öncelik, gecikmesi 30 birimin üstündeyse
  zamanlayıcı, kapasitesi 80 birimin üstündeyse toplama, özel aygıtta yerel kural.
- **OT3** — Elle yazılan her alanda hata olasılığı binde 80'dir ve alanlar bağımsızdır. Bu
  oran bir ölçüm değil, kurgunun varsayımıdır; değiştirilirse bütün satırlar aynı yönde
  ölçeklenir.
- **OT4** — Şablon dört alan taşır ve bir kez yazılır. Aynı alan başına oranla şablonun
  hatalı çıkma olasılığı hesaplanır; şablon hatalıysa kırk aygıtın kırkı birden hatalıdır.
- **OT5** — Şablon aygıtın sınıfına göre yazılır. Sınıfı şablonunkiyle uyuşmayan özel aygıt
  sapar; sapma aygıtın kusuru değil, şablonun kapsam kararıdır.
- **OT6** — Rapor etkileşim sınıfının göstergeleri üzerine kuruludur; başka sınıftaki bir
  sapma rapora hiç düşmez. Bu bir varsayımdır, bir ölçüm değil.

## Ölçüm

```python
"""Elle yapilandirma ile sablonun hata modeli.

Bolum 1 - elle kampanya: dokunus sayisi ozne sayisiyla buyur, hata onunla.
Bolum 2 - sablon tek dokunustur; hata yayilir, beklenen sayi dusmez.
Bolum 3 - sablonun kendi kuyrugu: disinda kalan ve raporda gorunmeyen.
"""
TOHUM = 20260812
HATA_BINDE = 80


def uretec(tohum):
    d = tohum % 2147483646 + 1

    def r(n):
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


def ozneler(sayi=40, tohum=TOHUM):
    r, liste = uretec(tohum), []
    for i in range(sayi):
        liste.append({"no": i + 1, "kapasite": 20 + r(81),
                      "gecikme": 5 + r(45),
                      "sinif": ("etkilesim", "toplu", "yedek")[r(3)],
                      "ozel": r(9) == 0})
    return liste


def alanlar(o):
    """Aygitin elle yazilmasi gereken yapilandirma alanlari."""
    a = ["arayuz", "adres"]
    if o["sinif"] == "etkilesim":
        a.append("oncelik")
    if o["gecikme"] > 30:
        a.append("zamanlayici")
    if o["kapasite"] >= 80:
        a.append("toplama")
    if o["ozel"]:
        a.append("yerel_kural")
    return a


def elle(oz, kac, tohum):
    """Kac aygita tek tek dokunulur; her alanda binde HATA_BINDE hata."""
    r, hatali = uretec(tohum), set()
    dokunus = hata = 0
    for o in oz[:kac]:
        for _ in alanlar(o):
            dokunus += 1
            if r(1000) < HATA_BINDE:
                hata += 1
                hatali.add(o["no"])
    return dokunus, hata, len(hatali)


def uygula(oz, sablon_sinifi):
    """Tek sablon kirk aygita uygulanir; ozel aygitlar sapar."""
    uyan = sapan = gizli = 0
    for o in oz:
        if o["sinif"] == sablon_sinifi or not o["ozel"]:
            uyan += 1
        else:
            sapan += 1
            if o["sinif"] != "etkilesim":
                gizli += 1
    return uyan, sapan, gizli


oz = ozneler()
oran = HATA_BINDE / 1000
print(f"özne {len(oz)} | elle yazılacak toplam alan "
      f"{sum(len(alanlar(o)) for o in oz)} | alan başına hata {oran:.3f}")
print()
print(f"{'kampanya':>9s} {'dokunuş':>8s} {'hata':>5s} {'hatalı aygıt':>13s} "
      f"{'dokunuş başına hata':>20s}")
for kac in (10, 20, 40):
    d, h, a = elle(oz, kac, TOHUM + 7)
    print(f"{kac:9d} {d:8d} {h:5d} {a:13d} {h / d:20.3f}")

print()
p = 1 - (1 - oran) ** 4
print(f"{'yordam':<12s} {'dokunuş':>8s} {'hatalı çıkma':>13s} "
      f"{'etkilenen aygıt':>16s} {'beklenen hatalı aygıt':>22s}")
d, h, a = elle(oz, 40, TOHUM + 7)
print(f"{'elle':<12s} {d:8d} {'-':>13s} {a:16d} {d * oran:22.2f}")
print(f"{'şablon':<12s} {1:8d} {p:13.3f} {len(oz):16d} {p * len(oz):22.2f}")

print()
print(f"{'şablon sınıfı':<14s} {'uyan':>6s} {'sapan':>6s} "
      f"{'raporda görünmeyen':>19s}")
for s in ("etkilesim", "toplu", "yedek"):
    u, sp, g = uygula(oz, s)
    print(f"{s:<14s} {u:6d} {sp:6d} {g:19d}")
```

```
özne 40 | elle yazılacak toplam alan 122 | alan başına hata 0.080

 kampanya  dokunuş  hata  hatalı aygıt  dokunuş başına hata
       10       30     3             3                0.100
       20       60     5             5                0.083
       40      122    12            10                0.098

yordam        dokunuş  hatalı çıkma  etkilenen aygıt  beklenen hatalı aygıt
elle              122             -               10                   9.76
şablon              1         0.284               40                  11.34

şablon sınıfı    uyan  sapan  raporda görünmeyen
etkilesim          34      6                   6
toplu              34      6                   3
yedek              34      6                   3
```

## Elle Yapılandırmanın Ödettiği

Üst tablo iddiayı doğrudan veriyor. Kampanya on aygıttan kırk aygıta çıktığında dokunuş
**30**'dan **122**'ye, hata **3**'ten **12**'ye çıkıyor. Sağdaki sütun ise neredeyse sabit
kalıyor: dokunuş başına hata **0,100**, **0,083** ve **0,098**. Bu sabitlik ölçümün asıl
sonucudur — hata bir yetenek sorunu değil, **bir çarpma işlemidir**. Operatör daha dikkatli
olduğunda oran düşer; aygıt sayısı arttığında çarpan büyür ve dikkatin ne kadar düştüğünü
hiçbir gösterge söylemez.

Hatalı aygıt sayısı hata sayısından küçüktür: **12** hata **10** aygıta dağılıyor, yani iki
aygıt birden fazla yanlış alan taşıyor. Bu ayrım işletmede önemlidir çünkü onarımın birimi
aygıttır, alan değil; on aygıta dönmek gerekir, on ikisine değil.

Üç satırın hiçbirinde sıfır yok. Kampanya küçültülerek hata sıfırlanmıyor, yalnızca
küçültülüyor — ve küçültmenin bedeli aynı değişikliğin daha çok parçaya bölünmesidir.

## Otomasyonun Ödettiği

Orta tablo iki yordamı yan yana koyuyor ve beklenmedik bir yerde buluşuyorlar. Elle
yapılandırma **122** dokunuşta **10** hatalı aygıt bırakıyor; beklenen değer **9,76**. Şablon
dokunuşu **1**'e indiriyor ama şablonun hatalı çıkma olasılığı **0,284**'tür ve şablon
hatalıysa etkilenen aygıt **40**'tır. Beklenen hatalı aygıt **11,34**.

Yani otomasyon beklenen hata sayısını **düşürmedi** — bu kurguda hafifçe yükseltti. Değişen
şey **dağılımdır**. Elle yapılandırma her seferinde on civarında hatalı aygıt üretir. Şablon
ise seferlerin çoğunda **sıfır**, kalanında **kırk** üretir. Aynı ortalama, bambaşka bir
işletme: birincisi sürekli ve dayanılabilir bir onarım yükü, ikincisi seyrek ama ağın
tamamını kapsayan bir olay.

Bu yüzden otomasyonun gerekçesi "daha az hata" değildir. Gerekçe üç yerdedir: hata
**tek bir yerde** durur ve orada gözden geçirilebilir; değişiklik **uygulanmadan önce**
sınanabilir; ve uygulandıktan sonra **aynı biçimde geri alınabilir**. Elle yapılandırmada
bunların üçü de yoktur, çünkü niyetin yazılı bir hâli yoktur.

## Otomasyonun Kaldırmadığı Kuyruk

Alt tablo bu dersin asıl sonucunu taşıyor ve konu boyunca değişmeden kalacak. Şablon hangi
sınıfa göre yazılırsa yazılsın uyan aygıt **34**, sapan aygıt **6**'dır. Kırk aygıtın
dokuzu özeldir ve şablonun sınıfıyla uyuşan üçü dışında kalan **altısı** her seferinde
kaldıracın dışında kalır. Sapan sayısı kaldıracın niteliğine göre değişmiyor — çünkü sapma
şablonun yanlış yazılmasından değil, **tek bir şablonun kırk farklı aygıtı temsil etme
iddiasından** doğuyor.

Sağdaki sütun ise değişiyor: raporda görünmeyen sapan **6**, **3** ve **3**. Etkileşim
sınıfına göre yazılan şablonda sapanların hepsi başka sınıflardadır ve raporda **hiçbiri**
görünmez; öteki iki şablonda altının yarısı görünür. Kuyruğun büyüklüğü sabittir, **görünen
kısmı değildir.** Bu ayrım konunun eksenidir ve dördüncü derste tam olarak ödenecektir.

Kırk öznelik bir kümede ölçülebilen en küçük fark **1/40 = 0,025**'tir. Altı ile üç
arasındaki fark bunun yüz yirmi katıdır ve ölçüm bandının rahatça içindedir.

## Envanterin Sınırı

Yukarıdaki üç tablo aynı sessiz kabulü paylaşıyor: kırk aygıtın kırkı da biliniyor. Ölçüm
kırk özne üzerinde koşuyor çünkü özne kümesi kurgunun kendisi; işletmede bu küme bir
**envanterden** gelir ve envanter de elle ya da bir keşif yordamıyla yazılmıştır.

Bunun sonucu hem elle yordamı hem otomasyonu ilgilendirir. Envanterde olmayan bir aygıta
operatör dokunmaz, şablon da dokunmaz. Elle yapılandırmada bu aygıt en azından bir gün birine
görünme şansı taşır — biri onu yanlışlıkla bulur. Şablonla yönetilen bir ağda ise aygıt hiçbir
raporda, hiçbir uygulama özetinde ve hiçbir sapma listesinde geçmez; çünkü bütün bu belgeler
envanteri gezerek üretilir. **Kaldıraç envanterin dışına uzanmaz ve envanterin dışında kaldığı
için de kimseye bunu bildirmez.**

Bu, kaldıracın kuyruğunun ikinci biçimidir. Birincisi ölçtüğümüz altı sapan aygıttı: bilinen
ama şablona sığmayan azınlık. İkincisi hiç bilinmeyen azınlıktır ve bu dersin kurgusunda
sayısı sıfırdır, çünkü envanteri biz yazdık. Gerçek bir ağda o sayı sıfır değildir ve ölçüsü,
envanterin bağımsız bir keşifle karşılaştırılmasıdır — bir kaldıracın ne yaptığını yine başka
bir kaldıraçla sorarız.

## Geri Alınamazlık ve Üç Koruma

Bu konudaki her toplu değişiklik **geri alınamaz bir işlemdir**: kırk aygıta uygulanan bir
şablon, uygulandığı anda kırk aygıttaki önceki durumu siler. Bir aygıtın yapılandırmasını
boşaltan, arayüzünü kapatan ya da yönetim erişimini kesen bir değişiklik ağı ikiye bölebilir
ve bölünmüş ağın öteki yarısına ulaşıp düzeltme yapmak mümkün olmayabilir. Böyle bir
değişikliğin komutu bu kursta **çalıştırılabilir biçimde yazılmaz**; yazılan şey ne yaptığı
ve geri alınamaz olduğudur.

Buna karşı üç koruma vardır ve üçü birlikte kullanılır.

**Kuru çalışma (dry run)** değişikliği uygulamadan sonucunu hesaplar: hangi aygıtta hangi
alanın değişeceğini önceden listeler. Yukarıdaki altı sapan aygıtı raporun göremediği yerde
bile gösterebilen tek yordam budur, çünkü kuru çalışma raporu değil **niyeti** aygıtın gerçek
durumuyla karşılaştırır.

**Kademeli yayma (staged rollout)** değişikliği kırk aygıta birden değil, dilimler hâlinde
uygular. Amaç hatayı önlemek değil, hatanın etkilediği aygıt sayısını sınırlamaktır.

**Geri alma (rollback)** önceki durumun uygulanabilir bir kopyasını saklar. Kopya yoksa geri
alma yoktur; bu yüzden geri alma bir işlem değil, değişiklikten **önce** verilmiş bir
karardır.

Kimlik bilgisi, anahtar ve erişim belirteci bu konudaki hiçbir örnekte yazılmaz; aygıta
erişimin nereden geldiği işletmenin ayrı bir kararıdır ve yapılandırma metninin içinde
durmaz.

## Özet

- Elle yapılandırmanın birimi aygıt değil alandır; kırk aygıt **122** alan dokunuşu ister ve
  hata dokunuş sayısıyla büyür — **30/60/122** dokunuşta **3/5/12** hata.
- Dokunuş başına hata oranı **0,100 / 0,083 / 0,098** ile neredeyse sabit kalır; hata bir
  yetenek sorunu değil, dokunuş sayısıyla yapılan bir çarpmadır.
- Şablon dokunuşu **1**'e indirir ama hatayı yayar: beklenen hatalı aygıt **9,76**'dan
  **11,34**'e çıkar. Değişen şey ortalama değil, dağılımdır — çoğu seferde **0**, kalanında
  **40**.
- Otomasyonun gerekçesi az hata değil; niyetin tek bir yerde durması, uygulanmadan
  sınanabilmesi ve aynı biçimde geri alınabilmesidir.
- Şablon hangi sınıfa göre yazılırsa yazılsın uyan **34**, sapan **6**'dır; değişen tek şey
  raporda görünmeyen sapanın **6**, **3** ve **3** olmasıdır.

## Sonraki Adım

Bu dersin şablonu bir kabul üzerine kuruluydu: kırk aygıtın yapılandırması **aynı alanlarla**
tarif edilebilir. Ölçüm bu kabulün altısında tutmadığını gösterdi ve nedeni alan listesindeki
son satırdı — özel aygıtın istediği yerel kural, hiçbir şablonun taşımadığı bir alandı.
Sonraki ders bu alanın peşine düşer: aygıt yapılandırması bir veri modeliyle tanımlandığında
model neyi temsil edebilir, hangi aygıt modele sığmaz, ve modelin dışında kalan alan nereye
gider.
