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

Bu Hafta Hangi Teknolojiyi Çöpe Attım?

Yılların tecrübesiyle bir teknolojiyi 'çöpe atmak' benim için ne anlama geliyor? Parlak yeniliklerin cazibesi ve gerçek dünya pragmatizmi üzerine kişisel bir…

100%

Bugün size, bir teknoloji profesyoneli olarak en sevdiğim eylemlerden birinden bahsetmek istiyorum: “çöpe atmak”. Hayır, hemen aklınıza fiziksel bir sunucuya tekme atmak ya da bir veri tabanını DROP TABLE ile silmek gelmesin. Benim için çöpe atmak, genellikle bir konsepte, bir mimariye, hatta bazen bir yaklaşıma atfettiğim değeri yeniden gözden geçirmek, gereksiz yükü sırtımdan atmak anlamına geliyor.

Kariyerimde öğrendiğim en önemli derslerden biri, her parlak yeni teknolojinin her sorunu çözmediği ve bazen en basit çözümün en iyisi olduğudur. Bu hafta da yine benzer bir durumla karşılaştım ve yıllardır alışkanlık haline getirdiğim bir “veri toplama” yaklaşımını zihnimin çöp kutusuna gönderdim. Bu benim için yeni bir durum değil; 2006’dan beri bu sektördeyim ve bu çöpe atma işlemi sürekli devam eden bir devinim.

Çöp Kutusu Kavramı: Bir Teknoloji Nasıl Gözümden Düşer?

Bir teknolojiyi “çöpe atmak” derken, onu tamamen yok saymaktan bahsetmiyorum. Daha çok, onun benim için olan önceliğini, uygulama senaryosunu ve hatta ona ayırdığım zihinsel kapasiteyi değiştirmekten bahsediyorum. Bir zamanlar “olmazsa olmaz” dediğim bir şeyin, zamanla sadece ek yük yarattığını fark ettiğimde bu eylemi gerçekleştiriyorum.

Örneğin, bir üretim ERP’si üzerinde çalışırken, gerçek zamanlı raporlama için karmaşık bir event-sourcing mimarisi düşünmüştüm. Teoride harika görünüyordu: her operasyon bir event olarak kaydedilecek, dashboard’lar anında güncellenecekti. Ancak sahadaki operatörlerin ve yöneticilerin asıl istediği, gün sonunda doğru rakamları görmek ve basitçe ‘ne kadar ürettik’ sorusuna cevap bulmaktı. Bu durumda, o karmaşık mimarinin gerektirdiği ekstra bakım, debugging ve öğrenme eğrisi, sağladığı ‘gerçek zamanlılık’ avantajından çok daha ağır basıyordu. O mimariyi zihnimin çöp kutusuna attım ve daha basit bir batch processing yaklaşımına döndüm.

Parıldayan Yeniliğin Tuzakları ve Benim Dersim

Sektörde yeni çıkan her şeye bir hevesle atlamak, ne yazık ki sıkça düşülen bir tuzak. “Bu sefer farklı olacak,” diye düşünüp, henüz olgunlaşmamış bir aracı büyük bir projenin kalbine yerleştirdiğim anlar oldu. Bir keresinde, şirket çıkışlarındaki farklı ISP’ler arasında daha dinamik bir routing için yeni bir SD-WAN çözümünü denemiştim. Pazarlama materyalleri harikalar vaat ediyordu. Ancak, daha önce kullandığım BGP tabanlı, kendi yazdığım basit scriptlerle yönettiğim çözümden daha fazla sorun çıkardı. Özellikle MTU/MSS mismatch’leri, DNS resolution sorunları ve VPN tünellerindeki kararsızlıklar canımı çok sıkmıştı.

Bu deneyim bana, özellikle network tarafında, “eğer bozuk değilse tamir etme” kuralının ne kadar değerli olduğunu bir kez daha gösterdi. Yeni bir teknoloji, mevcut bir sorunu çözmek yerine, genellikle beraberinde yeni ve öngörülemeyen sorunlar getirir. O SD-WAN çözümünü de, bir süre sonra “bu bizim için değil” diyerek rafa kaldırdım, yani aslında bir anlamda çöpe attım.

Gerçek Dünya, Gerçek Maliyetler: Bir Karar Anı

Bir teknolojiyi kullanmaya devam etmenin maliyeti, sadece lisans ücreti ya da sunucu parası değildir. En büyük maliyetlerden biri, o teknolojiyi anlamak, bakımını yapmak, sorunlarını gidermek ve ekibinizi eğitmek için harcadığınız insan emeğidir. Bu, zamanla birikerek devasa bir borca dönüşebilir. Benim Android tarafında geliştirdiğim spam blocker uygulamasında, başlangıçta çok fazla üçüncü parti kütüphane kullanmaya meyilliydim. Her küçük özellik için bir kütüphane ekliyordum.

Bir süre sonra fark ettim ki, bu kütüphanelerin her biri kendi bağımlılıklarını, kendi güvenlik açıklarını ve kendi güncelleme döngülerini getiriyor. Uygulama boyutu şişiyor, build süreleri uzuyor, hatta bazı kütüphaneler Play Store politikalarıyla çakışabiliyordu. Bir güncelleme yayınlamaya çalışırken, sırf bir kütüphanenin yeni bir izne ihtiyaç duyması yüzünden uzayıp giden bir metadata reject’i yaşadım. İşte o an, bu yaklaşımı çöpe atmam gerektiğine karar verdim. Çoğu özelliği kendi basit kodumla yeniden yazarak, hem kontrolü ele aldım hem de gereksiz karmaşıklıktan kurtuldum.

20 Yıllık Tecrübenin Süzgeci: Minimalizm ve Pragmatizm

Yirmi yılın sonunda, yeni bir teknolojiye yaklaşımım kökten değişti. Artık ilk sorum “Bu ne kadar harika?” değil, “Bu, elimdeki spesifik sorunu en basit, en güvenilir ve en sürdürülebilir şekilde çözüyor mu?” oluyor. Bu süzgeçten geçemeyen her şey, potansiyel olarak zihnimin çöp kutusuna girmeye adaydır. Örneğin, kendi VPS’imde koşturduğum finansal hesaplayıcılar için yıllarca karmaşık cache stratejileri denedim. Redis, Memcached, hatta custom in-memory cache’ler… Sonunda fark ettim ki, veritabanı sorgularını optimize etmek ve Nginx’in basit disk cache’ini kullanmak, çoğu durumda ihtiyacım olan performansı fazlasıyla sağlıyordu. Daha karmaşık çözümler, sadece daha fazla monitör etme ve bakım maliyeti getiriyordu.

# Nginx basit disk cache ornegi
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
        location /api/data {
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404      1m;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 1;
            proxy_cache_use_stale error timeout updating http_500 http_503;
            add_header X-Cache-Status $upstream_cache_status;
            proxy_pass http://backend_server;
        }
    }
}

Yukarıdaki gibi basit bir Nginx konfigürasyonu, çoğu zaman “çözüm” diye peşinden koştuğumuz daha büyük ve karmaşık sistemlerden daha iyi iş görüyor. Bu, bir yandan “çöp atma” eyleminin arkasındaki felsefeyi de özetliyor: Fazlalıklardan arınmak, sadeleşmek ve gerçekten işe yarayanı korumak.

Bu hafta çöpe attığım şey, aslında bir teknoloji değil, bir “daha fazlası daha iyidir” yanılgısıydı. Veri toplama ve analizde, gereğinden fazla detay peşinde koşmanın getirdiği operasyonel yüke “dur” dedim. Yılların ardından şunu çok net görüyorum: Bir sistemin karmaşıklığı, çoğu zaman onun kırılganlığıyla doğru orantılıdır.

Peki ya siz? Kariyerinizde hangi teknolojiyi, hangi yaklaşımı ya da hangi fikri “çöpe attınız”? Bu kararı vermenize ne sebep oldu ve bu size ne öğretti? 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.

Bir teknolojiyi 'çöpe atma' işlemine başlamadan önce nelere dikkat etmeliyim?
Benim için, bir teknolojiyi 'çöpe atma' işlemine başlamadan önce, o teknolojinin gerçek dünya uygulamalarını ve kullanıcıların gerçek ihtiyaçlarını değerlendirmek önemlidir. Örneğin, bir üretim ERP'si üzerinde çalışırken, gerçek zamanlı raporlama için karmaşık bir event-sourcing mimarisi düşünmüştüm, ancak sahadaki operatörlerin ve yöneticilerin asıl istediği, gün sonunda doğru rakamları görmek ve basitçe 'ne kadar ürettik' sorusuna cevap bulmaktı.
Bir teknolojiyi 'çöpe atmak' yerine, onu nasıl geliştirebilirim?
Bence, bir teknolojiyi geliştirmek için, onun zayıf noktalarını ve kullanıcıların geri bildirimlerini analiz etmek gerekir. Ben, bir teknolojiyi geliştirmek için, onunla ilgili sorunları ve kullanıcıların taleplerini dinleyerek, onu daha basit ve efektif hale getirmeye çalışırım. Örneğin, o karmaşık mimariden vazgeçerek, daha basit bir raporlama sistemi geliştirdim ve bu, kullanıcıların ihtiyaçlarını daha iyi karşıladı.
Bir teknolojiyi 'çöpe atmak' bana ne tür avantajlar sağlar?
Bir teknolojiyi 'çöpe atmak', bana daha fazla zaman ve kaynak kazandırır. Ben, o teknolojiye ayırdığım zamanı ve kaynakları, daha önemli ve efektif projelere yönlendirebilirim. Ayrıca, bu işlem, bana daha basit ve efektif çözümler geliştirme fırsatı sağlar. Örneğin, o karmaşık mimariden vazgeçerek, daha basit bir raporlama sistemi geliştirdim ve bu, benim için daha az bakım ve öğrenme eğrisi anlamına geldi.
Bir teknolojiyi 'çöpe atmak' ile ilgili olarak, bana yanlış olan genel kanı nedir?
Bence, bir teknolojiyi 'çöpe atmak' ile ilgili olarak, yanlış olan genel kanı, bu işlemin bir başarısızlık olduğunu düşünmektir. Ben, bir teknolojiyi 'çöpe atmak' işlemini, bir başarısızlık olarak değil, bir öğrenme ve gelişme fırsatı olarak görüyorum. Bu işlem, bana daha iyi çözümler geliştirme ve daha efektif olma fırsatı sağlar. Örneğin, o karmaşık mimariden vazgeçerek, daha basit bir raporlama sistemi geliştirdim ve bu, benim için daha iyi bir sonuç oldu.
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