İçeriğe Atla
Mustafa Erbay
Teknoloji · 5 dk okuma · görüntülenme Read in English

Sunucu Yönetiminde Öğrendiğim 20 Ders

Yirmi yıllık sistem yönetimi serüvenimde, teknik bilgilerden çok daha fazlasını öğrendim. Hatalarımdan, 'evet'lerimden ve gözden kaçan detaylardan çıkan en…

100%

Sunucu yönetimi, bana kalırsa, yazılımdan çok insan yönetimine benziyor. Yirmi yılın sonunda anladım ki en büyük hatalarımı teknik eksikliklerim değil, ‘evet’ deme alışkanlığım ve gözden kaçırdığım basit varsayımlar tetiklemiş. Bu süreçte karşılaştığım her sorun, beni bir adım daha ileri taşıyan, bazen pahalıya mal olan bir derse dönüştü.

Bu serüvende öğrendiğim 20 dersi, tek tek maddeler halinde sıralamak yerine, deneyimlerimden süzülen ana temalar altında anlatmak istedim. Çünkü işin özü, sadece teknik bilgi değil, aynı zamanda o bilginin arkasındaki düşünce yapısı ve problem çözme yaklaşımı. Gelin, bu derslere birlikte bakalım.

Varsayımların Tehlikesi ve Gözden Kaçan Detaylar

Sunucu dünyasında “sanırım çalışır” demek, “kesin bozulur” demenin kibar halidir. Kariyerimin ilk yıllarında, bir müşteri projesinde network segmentasyonu yaparken, VLAN tagging’in her noktada beklendiği gibi işleyeceğini varsaydım. Sonuç? Kritik bir sistem uzun süre erişilemez hale geldi, çünkü aradaki eski bir switch’in portunda default VLAN farklıydı. Bu basit gözden kaçırma, bana pahalıya patladı.

Bir keresinde, bir yan ürünümün backend’inde Redis’in bellek kullanımını doğru optimize ettiğimi düşünüyordum. Ancak OOM eviction policy seçimini yanlış yaptığım için, belirli bir yük altında Redis aniden duruyordu. journald loglarında sadece “OOM-killed” görmek, sorunun kaynağını bulmak için günlerce cgroup limitlerini ve Redis konfigürasyonunu incelememe neden oldu. Bu tür küçük detaylar, bir sistemin stabilitesini derinden etkileyebilir.

İnsan Faktörü ve Süreçlerin Gücü

Teknik mimariler ne kadar mükemmel olursa olsun, işin içinde insan ve iş süreçleri varsa, her şey değişir. Bir üretim ERP’sinde çalışırken fark ettim ki, yazılım mimarisi çoğu zaman teknik bir mimari değil, organizasyonel akıştır. Gecikmeli sevkiyat raporları hep eksik geliyordu; sebebi SQL sorgusu ya da performans problemi değil, sahadaki operatörlerin ekranları doğru zamanda güncellemeyi unutmasıydı. Bu, bana yazılımın sadece koddan ibaret olmadığını, kullanıcı deneyimi ve iş akışıyla bir bütün olduğunu gösterdi.

Bir başka derste, “evet” demenin bedelini çok ağır ödedim. Bir proje yöneticisi, “küçük bir özellik” için hızlı bir teslimat istediğinde, olası yan etkilerini ve test süresini hafife alıp “evet” dedim. Sonuç olarak, o “küçük özellik” uzun süren bir regresyon test döngüsüne ve sancılı bir rollback operasyonuna yol açtı. Bazen doğru cevap “hayır”dır, ya da “ancak bu koşullarla” demeyi öğrenmek gerekir.

Güvenlik Bir Süreçtir, Tek Seferlik Proje Değil

Sistem güvenliği, bir duvar örmek gibi değildir; sürekli tetikte olmayı gerektiren, yaşayan bir organizmadır. Bir bankanın iç platformunda CVE takibinin ne kadar kritik olduğunu gördüm. Kritik bir kernel zafiyeti (örneğin algif_aead gibi bir kripto modülünde) çıktığında, kısa sürede kernel module blacklist uygulamak zorunda kaldık. Bu, güvenlik güncellemelerinin sadece “bir ara yapılır” denemeyecek kadar hayati olduğunu öğretti.

fail2ban kurallarını yazarken bile, saldırganların ne kadar yaratıcı olabileceğini gördüm. Basit regex’ler yerine, JWT/OAuth2 paternlerini ve rate limiting mekanizmalarını doğru kurgulamak, SQL injection denemelerini veya DDoS katmanlarını bertaraf etmek için hayati. Güvenlik, sürekli öğrenmeyi ve güncel kalmayı gerektiren bir alandır; bir kez kurup unutabileceğiniz bir şey değil.

Operasyonel Borç ve Görünürlüğün Önemi

Operasyonel borç, teknik borç kadar tehlikelidir ve genellikle daha sinsi ilerler. PostgreSQL’de WAL bloat’ı izlemeyi atladığım bir dönemde, disklerimizin beklenenden çok daha hızlı dolduğunu gördüm. Ya da systemd unit’lerinin timer’larının reliability’sini gözden kaçırdığımda, kritik bir yedekleme işinin aylarca çalışmadığını ancak bir denetimde fark ettim. Eğer bir şeyi monitör etmiyorsanız, çalışıp çalışmadığını asla bilemezsiniz.

Observability sadece metrik, log ve trace toplamak değildir; aynı zamanda bu veriyi anlamlı hale getirmek ve aksiyon alınabilir alarmlar üretmektir. Bir keresinde, bir bare-metal sunucuda Docker Compose ile uygulamalarımı çalıştırırken, container memory limit’lerini doğru ayarlamadığım için build OOM hatalarıyla karşılaştım. journald’nin rate limit’lerini anlamak ve cgroup memory.high yumuşak limitlerini doğru kullanmak, bu tür sorunları önceden tespit etmemi sağladı.

Basitlik ve Sağlamlığın Değeri

Zamanla anladığım en önemli derslerden biri, basitliğin gücü. Monolith mi, microservice mi tartışmalarında, benim tercihim hep “ihtiyaç kadar karmaşıklık” oldu. Bir üretim firmasının ERP’sini geliştirirken, event-sourcing ve CQRS gibi pattern’leri düşündük, ama mevcut ekibin ve altyapının bunu kaldırıp kaldıramayacağını hesaplayarak, daha pragmatik, modüler bir monolith ile başladık. Bu, bize hem hızlı teslimat sağladı hem de operasyonel yükümüzü azalttı.

Sistem tasarlarken, idempotency ve transaction outbox gibi kavramları her zaman aklımda tutarım. Özellikle dağıtık sistemlerde eventual consistency ile çalışırken, bir operasyonun birden fazla kez çalışsa bile aynı sonucu vereceğinden emin olmak kritik. Bu basit ama güçlü prensipler, sistemlerimin uzun vadede daha sağlam ve yönetilebilir olmasını sağlıyor.

Sunucu yönetimi, sürekli öğrenme ve adaptasyon gerektiren bir yolculuk. Benim bu serüvende öğrendiğim en kıymetli derslerden bazıları bunlar. Sizin bu yolda öğrendiğiniz en kıymetli ders ne oldu? Benimkilerle örtüşüyor mu, yoksa bambaşka dersler mi çıkardınız? Yorumlarda merakla bekliyorum.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

Sıkça Sorulanlar

Bu makale ile ilgili okurların sorduğu yaygın sorular.

Sunucu yönetiminde teknik bilgilerden daha önemli olan şeyler nelerdir?
Benim deneyimime göre, sunucu yönetiminde teknik bilgilerden daha önemli olan şeyler, 'evet' deme alışkanlığı ve gözden kaçan basit varsayımlardır. Bu tür hatalar, teknik eksikliklerden daha büyük sorunlara neden olabilir. Örneğin, bir müşteri projesinde network segmentasyonu yaparken, VLAN tagging'in her noktada beklendiği gibi işleyeceğini varsaydım, ancak bu basit gözden kaçırma, kritik bir sistemin uzun süre erişilemez hale gelmesine neden oldu.
Varsayımların tehlikelerine karşı nasıl korunabiliriz?
Varsayımların tehlikelerine karşı korunmak için, her adımı doğrulamak ve mümkünse otomatik testlerle kontrol etmek önemlidir. Ben, özellikle network katmanında, her cihazın konfigürasyonunu tek tek incelemeyi öğrenerek, sonradan çıkacak büyük sorunları engelledim. Ayrıca, 'sanırım çalışır' demektense, her şeyi doğrulamak ve test etmek daha iyi bir yaklaşım olduğunu öğrendim.
Redis gibi sistemlerin bellek kullanımını optimize etmek için hangi adımlar izlenmelidir?
Redis gibi sistemlerin bellek kullanımını optimize etmek için, doğru bellek kullanımını ayarlamak ve OOM eviction policy seçimini doğru yapmak önemlidir. Ben, bir keresinde Redis'in bellek kullanımını doğru optimize ettiğimi düşünüyordum, ancak OOM eviction policy seçimini yanlış yaptığım için, belirli bir yük altında Redis aniden duruyordu. Bu nedenle, her şeyi doğru ayarlamak ve test etmek önemlidir.
Sunucu yönetiminde hatalar meydana geldiğinde ne yapılmalıdır?
Sunucu yönetiminde hatalar meydana geldiğinde, paniklememek ve hızlı bir şekilde çözüm bulmaya çalışmak önemlidir. Ben, hatalar meydana geldiğinde, önce durumun değerlendirmesini yapıp, sonra da gerekli adımları izleyerek, sorunun çözümünü bulmaya çalışıyorum. Ayrıca, her hatadan bir şeyler öğrenmeye çalışarak, gelecekte benzer hataların meydana gelmesini önlemek için gerekli önlemleri almaya çalışıyorum.
ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

✉️ Ücretsiz · Spam yok · İstediğin an çık

Yeni yazılardan haberdar olun

Yeni içerikler ve teknik notlar e-postanıza gelsin.

  • 📌
    Haftanın en iyisi Sadece okumaya değer tek yazı
  • 🔧
    Alet çantası Bu hafta kullandığım araçlar
  • 🧠
    Perde arkası Blog'a girmeyen notlar

Spam yapmıyoruz. İstediğiniz zaman ayrılabilirsiniz. · Sadece Umami (self-hosted, Google yok) ile takip.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar