MT Yazı

Altyapıdan ekrana, yirmi yıl

Yayın — 6 dk okuma

Görünmeyen işin ölçüsü, yalnızca aksadığında yargılanmasıdır. Yirmi yıl bunu öğrendim; sonra işin görünen tarafına geçtim.

Kariyerler geriye bakınca düzgün görünür. Yaşanırken öyle değildir: her dönem bir öncekinin çözemediği bir problemle başlar.

Bu yazı dört döneme dair. Ama bir özgeçmiş değil — hangi alışkanlığın bir sonraki katmanda işe yaradığını, hangisinin bırakılması gerektiğini anlatıyor.

2005–2013 — Kurumsal altyapı

Sunucular, depolama, yedekleme, kesintisizlik.

Bu dönemin öğrettiği tek şey varsa şudur: çalışan bir sistem, çalıştığı sürece görünmezdir. Yedekleme yıllarca kimsenin gündemine girmez. Sonra bir gün gerekir ve o gün, o güne kadar yapılmış her şeyin sınavıdır.

Bunun mesleki sonucu tuhaftır. İyi yapılmış altyapı işi takdir üretmez, yalnız sessizlik üretir. Takdir ancak bir şey aksadığında ve hızlı toparlandığında gelir — yani en görünür anınız, en kötü gününüzdür.

Buradan taşınan alışkanlık: kurtarma senaryosunu kurulumdan önce yazmak. Bir sistemi kurarken sorulan ilk soru «nasıl çalışacak» değil, «bozulunca nasıl geri geleceğiz» olmalıdır. Yedeklemenin var olması yetmez; geri yüklemenin denenmiş olması gerekir. Denenmemiş yedek, yedek değildir.

2013–2019 — Ağlar ve güvenlik

Yönlendirme, güvenlik duvarları, erişim.

Ağ işi, sistemi bir topoloji olarak görmeyi öğretir. Tek tek kutular değil, aralarındaki ilişkiler. Bir paketin nereden geçtiği, hangi kuralın onu durdurduğu, hangi yolun neden tercih edildiği.

Bu dönemin en kalıcı dersi güvenlikle ilgili değil, görünürlükle ilgili: bir sorunu çözmenin ön koşulu onu görebilmektir. Ağda çoğu arıza gizemli değildir; yalnız ölçülmemiştir. Doğru noktaya bir sayaç koyduğunuzda gizem dağılır.

İkinci ders varsayılanlarla ilgili. Güvenlik duvarı kuralları zamanla birikir; her biri bir gün gerekmişti, hiçbiri kaldırılmadı. Beş yıl sonra kimse listenin tamamını açıklayamaz. Bir kuralın neden var olduğunu yazmayan ekip, onu asla silemez.

Bu yüzden bugün yazdığım kod yorumları «ne yaptığını» değil «neden böyle olduğunu» anlatır. Ne yaptığı zaten kodda yazıyor.

2019–2024 — Kimlik ve M365

Active Directory, geçişler, bulut kimliği. Binlerce hesap ölçeğinde düzen.

Kimlik işi ölçek dersidir. On hesabı elle yönetebilirsiniz. Binlerce hesapta elle yapılan her şey, er ya da geç tutarsızlığa dönüşür — çünkü elle yapılan iş tekrarlanabilir değildir.

Bu dönemin taşınan alışkanlığı: istisna bir çözüm değil, bir borçtur. Tek bir kullanıcı için açılan özel kural, o kullanıcı ayrıldıktan sonra da sistemde kalır. Ölçekte doğru cevap istisnayı kaydetmek değil, kuralı istisnayı gereksiz kılacak biçimde yeniden yazmaktır.

Geçiş projeleri ayrı bir ders verir: geri dönüş planı olmayan geçiş, geçiş değil bahistir. Ve geri dönüş planı, geçişten önce denenmelidir — sonra değil.

2024 — bugün

Yapay zekâ destekli web uygulamaları ve web teknolojileri. Modeller ve ajanlar, aynı disiplinle ekrana dönük.

Buradaki geçiş göründüğü kadar keskin değil. Modern web uygulaması, dağıtık sistem problemlerinin küçültülmüş hâli: durum yönetimi, tutarlılık, hata kurtarma, gözlemlenebilirlik. Adları değişir, sorular aynı kalır.

Yapay zekâ katmanı ise altyapı alışkanlıklarını beklenmedik biçimde ödüllendiriyor. Bir dil modeli belirsiz bir bileşendir: aynı girdiye farklı çıktı verebilir, sessizce yanlış olabilir, ve hata mesajı üretmeden başarısız olur. Bu tam olarak yıllarca uğraşılan arıza türü — yalnız katman değişti.

Bu yüzden bir ajan yazarken sorduğum sorular sunucu kurarken sorduklarımın aynısı: Nerede ölçüyorum? Yanlış cevap verdiğini nasıl anlarım? Bozulduğunda ne kadar geriye dönebilirim?

Aradaki fark tek bir noktada keskinleşiyor. Bir sunucu bozulduğunda bunu size söyler: servis düşer, izleme uyarır, log dosyasına bir satır düşer. Bir dil modeli bozulduğunda akıcı bir cümle üretir. Hata sessizdir ve üstelik ikna edicidir.

Bunun pratik karşılığı, klasik izlemenin yetmemesi. Sunucu için «ayakta mı» sorusu yeterlidir; model için «doğru mu» sorusunu ayrıca sormak gerekir, ve bu soru otomatik cevaplanmaz. Çıktının doğrulanabilir bir zemine bağlanması — bir kaynağa, bir hesaba, bir ölçüme — mimarinin parçası olmak zorunda.

Yirmi yılın alışkanlığı burada tam oturuyor: çıktıya değil, çıktının dayanağına güven.

Ortak nokta: hata bütçesi

Dört dönemin hepsinde tekrar eden bir kavram var, adı her seferinde değişse de.

Altyapıda buna «kesintisizlik hedefi» deniyordu. Yüzde yüz çalışma süresi diye bir şey yoktur; olan şey, ne kadar kesintiyi kabul ettiğinizi önceden söylemektir. Bunu söylemeyen ekip, her kesintide aynı tartışmayı baştan yapar.

Ağda buna «kabul edilebilir gecikme» deniyordu. Güvenlikte «kabul edilen risk». Kimlik yönetiminde «hangi istisnalar onaylı». Ürün tarafında «performans bütçesi».

Hepsi aynı şey: bir sınırı önceden yazmak. Sınır yazılmadığında her karar bir pazarlığa dönüşür ve pazarlığı genelde o an en yüksek sesle konuşan kazanır.

Bu sitenin yazı bölümünde de yazılı bir bütçe var: en büyük içerik boyaması 2,5 saniyenin altında, sayfa betiği 60 KB'ın altında, metnin önünde opaklık kapısı yok. Üçü de doğrulama süiti tarafından her koşumda ölçülüyor. Sayı aşılırsa test kırmızıya döner — tartışma açılmaz.

Yirmi yılın en pratik dersi bu olabilir: iyi niyet bir denetim mekanizması değildir. Sınır ya ölçülüyordur ya da yoktur.

Ne taşındı

Dört dönemin ortak paydası dört alışkanlık:

AlışkanlıkNereden geldi
Kurtarmayı kurulumdan önce tasarlaYedekleme yılları
Ölçemediğin şeyi çözemezsinAğ yılları
İstisna bir borçturKimlik/ölçek yılları
Kararın gerekçesini yaz, yoksa geri alınamazGüvenlik duvarı kural listeleri

Bu dördü bugün de aynı işi görüyor. Bu sitenin doğrulama süiti — ekran görüntüsüne bakmayı reddedip canvas'tan luma okuyan test seti — doğrudan ikinci maddenin ürünü. Depodaki karar kayıtları dördüncünün.

Ne bırakıldı

Taşınmayanlar da var, ve onları bırakmak taşımaktan zor oldu.

Kusursuz çalışma beklentisi. Altyapıda hedef sıfır kesintidir. Ürün tarafında sıfır hata hedefi, hiçbir şey yayınlamamakla sonuçlanır. Yeni ölçüt «hiç bozulmuyor mu» değil, «bozulduğunda ne oluyor» hâline geldi.

Değişikliğe direnç. Sunucu odasında en güvenli hamle hamle yapmamaktır; çalışan bir sisteme dokunmak risktir. Ürün tarafında bunun tersi geçerli: dokunulmayan şey eskir. Aynı ihtiyat, farklı yönde uygulanmalı — hamleyi engellemek değil, geri alınabilir yapmak.

Görünmezliği erdem sayma alışkanlığı. Yirmi yıl boyunca iyi iş, fark edilmeyen işti. O ölçüt kendi alanında doğruydu ama genellenebilir değil. Yapılan işin görünür olması gerektiği bir alan varsa, orada sessizlik erdem değil eksikliktir.

Bu sitenin kendisi o farkın kaydı. Yirmi yıl görünmeyen sistemler kurdum; şimdi yüzeyi inşa ediyorum — ve yüzeyin de ölçülebilir olması gerektiğini öğreniyorum.

Geçiş neden kolay görünüyor da değil

Altyapıdan ürüne geçen çoğu kişi aynı tuzağa düşüyor: teknik yetkinliğin taşınabilir olduğunu varsayıyor. Taşınıyor — ama tek başına yetmiyor.

Eksik olan şey teknik değil. Altyapıda «doğru» genelde tektir: bir yapılandırma ya çalışır ya çalışmaz, bir yedek ya geri gelir ya gelmez. Ürün tarafında doğru çoğuldur ve bağlama bağlıdır. Bir arayüz kararının «doğru» olup olmadığı, kimin için ve neyi başarmak için sorulduğuna göre değişir.

Bu, mühendislik alışkanlığı için rahatsız edici bir durum. Alıştığınız kesinlik yok. Yerine geçen şey ölçüm: doğrunun tek olmadığı yerde, hangi seçeneğin ne ürettiğini ölçmek tek dürüst yol kalıyor.

İkinci eksik: görünmeyen işte kitle yoktur, görünen işte vardır. Yirmi yıl boyunca işin muhatabı bir sistemdi. Şimdi muhatap bir insan ve o insanın sabrı, dikkati ve bağlamı değişken. Bu, çözülecek bir problem değil, hesaba katılacak bir gerçeklik.

Bir not

Yukarıdaki dönemlerin her biri, tek tek anlatılabilecek somut olaylar içeriyor: belirli bir geçiş, belirli bir arıza gecesi, belirli bir mimari karar. Bu yazı onları içermiyor.

Sebebi basit: bu metin disiplinler üzerine, vakalar üzerine değil. Vakalar ayrı yazılar olmayı hak ediyor ve her biri kendi ölçümüyle gelmeli — tıpkı bu bölümdeki diğer yazılar gibi.

Genellemenin bir riski var ve farkındayım: yirmi yılı dört maddeye indirmek, o yılların içindeki gerçek kararları düzleştirir. Bir alışkanlığın nereden geldiğini anlatmak, onu nasıl kazandığınızı anlatmakla aynı şey değil. İkincisi daha uzun sürer ve daha somut örnekler ister.

Yine de bu listenin bir işlevi var: bir sonraki yazıyı hangi zeminde okuyacağınızı belirliyor. Ölçüme bu kadar bağlı bir yazı bölümünün neden böyle kurulduğu, buradaki dört alışkanlıkla açıklanabilir. Kalanı vakalarda.