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

Self-Host Etmenin Gizli Maliyeti: 20 Yıllık Mühendisin Dürüst Homelab

Self-hosting'in ilk bakışta cazip gelen yanlarının ardındaki görünmez maliyetleri ve 20 yıllık saha tecrübemle edindiğim pragmatik dersleri inceliyorum.

100%

Eski bir sunucu ya da Raspberry Pi alıp evde kendi servislerimi kurma fikri, ilk bakışta her mühendis için inanılmaz cazip gelir. Ben de yıllar içinde sayısız kez bu yola girdim; kendi NAS’ımdan kişisel VPN sunucuma, hatta bazı yan ürünlerimin ilk prototiplerine kadar birçok şeyi “self-host” ettim. Ancak bu hevesin ardında, genellikle hesaplamadığımız ve zamanla ağır bir yük haline gelen gizli maliyetler yatar. Özellikle 20 yıldır bu işin içinde olan biri olarak, “bedava” diye başladığım birçok projenin aslında bana ne kadar pahalıya patladığını çok iyi biliyorum.

Self-hosting, yani bir servisi veya uygulamayı kendi donanımınızda barındırma eylemi, genellikle kontrolü artırma, gizliliği sağlama veya uzun vadede maliyetleri düşürme motivasyonuyla başlar. Başlangıçta sadece bir donanım maliyeti gibi görünen bu süreç, aslında bir dizi görünmez gideri ve beraberinde getirdiği sorumlulukları içerir. Bugün, bu gizli maliyetlerin ne olduğunu ve neden birçok durumda bulut servislerinin sunduğu kolaylığın daha makul bir tercih olabileceğini kendi tecrübelerimle anlatmak istiyorum.

Başlangıç Maliyetleri Gözden Kaçan Bir Denklem Miydi?

Self-hosting kararını verirken çoğu zaman sadece donanımın peşin fiyatına odaklanırız. “Elimde eski bir PC var,” veya “Bir mini PC alırım, ne kadar olabilir ki?” diye düşünürüz. Ancak bu, buzdağının sadece görünen kısmıdır.

İlk olarak, sadece sunucu donanımını almakla iş bitmez. Güvenilir bir ağ altyapısı kurmanız gerekir. Bu, kaliteli bir router, belki bir managed switch, yedekli kablolama ve hatta bir UPS anlamına gelebilir. Kendi NAS’ımı kurduğumda, başlangıçta sadece disklerin maliyetini hesaplamıştım. Ancak stabilite sorunları yaşamaya başlayınca, gigabit ethernet portu olan, VLAN’ları destekleyen daha iyi bir switch’e ve disk arızalarına karşı RAID kartına yatırım yapmam gerekti. Bu ek donanımlar, ilk bütçemi ciddi oranda aşmıştı. Ayrıca, internet servis sağlayıcınızın size sunduğu upload hızları da önemli bir faktördür; dışarıdan erişilebilecek bir servis kuruyorsanız, standart ev interneti paketleri genellikle yetersiz kalır ve daha yüksek upload hızları için ek ücret ödemeniz gerekebilir.

Bir diğer gizli maliyet ise enerji tüketimidir. Bir sunucu, 7/24 çalışır ve bu elektrik faturasına doğrudan yansır. Kendi homelab’imde barındırdığım birkaç konteyner ve bir PostgreSQL instance’ı çalıştıran mini PC’nin, aylık elektrik tüketiminde belirgin bir artışa neden olduğunu fark ettim. Hesaplamadığım bu kalem, uzun vadede hiç de “bedava” olmadığını gösterdi. Özellikle eski nesil donanımlar, yeni nesil düşük güç tüketimli sistemlere göre çok daha fazla enerji harcar. Bu, çevreye duyarlılık ve cüzdan açısından ciddi bir fark yaratabilir.

Zaman Yatırımı: En Büyük Gizli Maliyet

Bence self-hosting’in en büyük ve en az hesaplanan maliyeti, harcadığınız zamandır. Bir servisi kurmak, yapılandırmak, güncellemek, sorun gidermek ve yedeklemek saatlerinizi, bazen günlerimi alabiliyor. Bu zamanı, başka bir işe harcayabilirdim veya dinlenerek geçirebilirdim.

Kendi yan ürünümün erken aşamalarında, bir feature eklemek yerine systemd unit’lerinin neden restart loop’a girdiğini anlamaya çalışarak bütün bir cumartesi harcadığımı bilirim. journald log’larında OOM-killed mesajını bulana kadar sistemin neden kararsız çalıştığını çözememiştim ve bu süreç sadece benim için değil, kullanıcılarım için de kesintili bir deneyim yaratmıştı. Bu tarz operasyonel sorunlar, özellikle tek başınıza yönetiyorsanız, sizi ana işinizden veya projenizden alıkoyar.

graph TD;
  A["Fikir"] --> B{"Donanım Seçimi"};
  B --> C["OS Kurulumu"];
  C --> D["Yazılım Yükleme"];
  D --> E["Konfigürasyon (Nginx, DB, App)"];
  E --> F{"Çalışıyor mu?"};
  F -- Hayır --> G["Debug & Troubleshooting"];
  F -- Evet --> H["Monitoring Kurulumu"];
  H --> I["Yedekleme Planı"];
  I --> J["Güncelleme Yönetimi"];
  J --> G;
  G --> K["Dokümantasyon (Opsiyonel ama Önemli)"];
  K --> E;
  style G fill:#f9f,stroke:#333,stroke-width:2px;

Yukarıdaki akış, basit bir self-hosting projesinin bile ne kadar çok adımdan oluştuğunu gösteriyor. Her bir adımda potansiyel sorunlar ve saatler süren araştırmalarla karşılaşabilirsiniz. Bir PostgreSQL instance’ının WAL bloat yapmaya başlaması, Redis’in OOM eviction policy ayarlarının yanlış olması veya Nginx reverse proxy konfigürasyonundaki basit bir hata, saatler süren bir debug seansına neden olabilir. Bu, özellikle profesyonel projelerde “proje maliyeti” olarak doğrudan yansır.

Güvenlik ve Yedekleme Paradoksları

Bir servisi self-host ettiğinizde, güvenlik ve yedekleme sorumluluğu tamamen size aittir. Bu, basit bir fail2ban kurulumundan çok daha fazlasını gerektirir. Sürekli değişen tehdit ortamında sistemlerinizi güncel tutmak, güvenlik yamalarını uygulamak ve potansiyel açıkları izlemek ciddi bir iştir.

Kendi homelab’imde bir dönem, SSH portumu varsayılan 22’den farklı bir porta taşımayı unuttuğum için sürekli brute-force saldırılarına maruz kalmıştım. fail2ban bir yere kadar korusa da, journald log’larını incelediğimde ne kadar çok giriş denemesi olduğunu görünce şaşırmıştım. Ardından, kernel module blacklist mekanizmalarını incelemeye, auditd ile sistem çağrılarını izlemeye ve hatta SELinux profilleri oluşturmaya kadar gittim. Bunlar, ortalama bir kullanıcının veya hobistin yapacağı şeyler değildir ve ciddi bir bilgi birikimi ile zaman gerektirir.

Yedekleme de ayrı bir paradokstur. “Verilerim bende kalsın” derken, bu verilerin düzenli olarak yedeklendiğinden, bu yedeklerin test edildiğinden ve felaket anında geri yüklenebilir olduğundan emin olmanız gerekir. Kendi finansal hesaplayıcılarımın veritabanını PostgreSQL üzerinde tutarken, logical replication ile bir read replica kurup ardından pg_basebackup ile fiziksel yedekler almayı ve bunları offsite bir depolama alanına göndermeyi ihmal etmemiştim. Ancak bu kompleks bir yapıdır. Bir defasında, yedekleme script’imde küçük bir hata yüzünden birkaç günlük yedeğimin bozuk olduğunu fark etmem, beni soğuk terler dökmeye itmişti. Felaket anında yedeklerinizin çalışmadığını görmek, self-hosting’in en acımasız gerçeklerinden biridir.

İşletme Yükü ve Operasyonel Yorgunluk

Self-hosting, aslında kendi küçük veri merkezinizi işletmek gibidir. Bu da beraberinde ciddi bir operasyonel yük getirir. Sistemlerin sürekli çalışır durumda olduğundan emin olmak, performans düşüşlerini izlemek ve beklenmedik sorunlara anında müdahale etmek gerekir.

Bir Pazar günü sabahı, kendi self-host ettiğim görev yönetim uygulamamın birdenbire erişilemez hale geldiğini gördüğümde, kahvaltı yapmak yerine SSH ile sunucuya bağlanıp systemd status çıktılarını incelemeye başlamıştım. Sorun, bir cgroup memory.high limiti yüzünden uygulamanın OOM-killed olmasıydı. Bu durumu çözmek ve cgroup limitlerini doğru ayarlamak, günümün önemli bir kısmını almıştı. Bu tarz durumlar, özellikle hafta sonları veya tatillerde meydana geldiğinde operasyonel yorgunluğa ve motivasyon kaybına yol açabilir.

Monitoring ve alerting, bu yükü hafifletmek için kritik öneme sahiptir. Prometheus ve Grafana gibi araçları kurup yapılandırmak, sistem metriklerini (CPU, RAM, disk I/O, ağ trafiği) izlemek ve eşik değerler aşıldığında bildirim almak, potansiyel sorunları proaktif olarak tespit etmenizi sağlar. Ancak bu sistemleri kurmak ve optimize etmek de ayrı bir zaman ve bilgi gerektirir. Kendi yan ürünüm için journald’den belirli log paternlerini Prometheus’a aktaracak exporter’lar yazmak bile günlerimi almıştı.

Bulut Servislerinin Gözünden Self-Hosting

Peki, tüm bu gizli maliyetler ve operasyonel yük karşısında bulut servisleri ne sunuyor? Aslında, çoğu zaman self-hosting’in “bedava” diye başlayan macerasının sonunda ulaştığı noktadan çok daha fazlasını ve daha uygun maliyete sunuyorlar.

Bir VPS (Virtual Private Server) kiralamak, tüm donanım, altyapı, enerji ve hatta birincil güvenlik sorumluluklarını sağlayıcıya devretmek anlamına gelir. Aylık birkaç dolardan başlayan fiyatlarla, dedicated bir IP adresi, garantili kaynaklar ve profesyonel bir veri merkezinin sağladığı yüksek erişilebilirlik elde edersiniz. Kendi VPS’imde yaşadığım bir disk yangını sorununu hatırlıyorum; ancak sağlayıcının anında müdahalesi sayesinde verilerimi kaybetmeden kurtarmıştım. Eğer bu kendi homelab’imde olsaydı, muhtemelen tüm verilerim gitmişti.

graph TD;
  A["Self-Hosting"];
  B["Bulut Servisleri (VPS/Managed)"];

  subgraph Self-Hosting Maliyetler;
      SH1["Donanım Alımı"];
      SH2["Enerji Faturası"];
      SH3["Zaman (Kurulum)"];
      SH4["Zaman (Bakım)"];
      SH5["Güvenlik Sorumluluğu"];
      SH6["Yedekleme Sorumluluğu"];
      SH7["Monitoring & Alerting"];
      SH8["İnternet Yükseltme"];
      A --> SH1; A --> SH2; A --> SH3; A --> SH4; A --> SH5; A --> SH6; A --> SH7; A --> SH8;
  end

  subgraph Bulut Servisleri Maliyetler;
      CS1["Aylık Kira Bedeli"];
      CS2["Yönetim Kolaylığı"];
      CS3["Yüksek Erişilebilirlik"];
      CS4["Ölçeklenebilirlik"];
      CS5["Profesyonel Güvenlik"];
      CS6["Otomatik Yedekleme (Opsiyonel)"];
      B --> CS1; B --> CS2; B --> CS3; B --> CS4; B --> CS5; B --> CS6;
  end

  SH1 --> C["Yüksek Başlangıç Yatırımı"];
  SH2 --> C;
  SH3 --> D["Sürekli Operasyonel Yük"];
  SH4 --> D;
  SH5 --> D;
  SH6 --> D;
  SH7 --> D;
  SH8 --> C;

  CS1 --> E["Öngörülebilir Aylık Gider"];
  CS2 --> E;
  CS3 --> E;
  CS4 --> E;
  CS5 --> E;
  CS6 --> E;

  C --> F["Düşük TCO (Total Cost of Ownership) Yanılgısı"];
  D --> F;
  E --> G["Genellikle Daha Düşük TCO"];

Managed servisler (PostgreSQL as a Service, Redis as a Service vb.) ise bu yükü daha da azaltır. Veritabanı optimizasyonu, replikasyon, yedekleme ve güvenlik yamaları gibi konularla sizin ilgilenmenize gerek kalmaz. Sadece servisi kullanmaya odaklanırsınız. Bu, özellikle bir üretim ERP’si gibi kritik bir sistemde veya kendi yan ürünümdeki hassas verileri barındırırken tercih ettiğim bir yaklaşımdır. Monolith bir yapıyı yönetmenin karmaşası, WAL bloat sorunları veya connection pool tuning gibi detaylarla uğraşmak yerine, işin özüne odaklanmak çok daha verimlidir.

Peki, Neden Hala Self-Host Ediyoruz? Değer mi?

Tüm bu gizli maliyetlere ve zorluklara rağmen, neden hala self-host etme eğilimindeyiz? Cevap, genellikle “kontrol” ve “öğrenme” arzusu ile “mahremiyet” endişelerinde yatıyor.

Benim için self-hosting, yıllardır bir öğrenme platformu oldu. Linux sistemlerinin derinliklerine inmek, systemd unit’lerinin nasıl çalıştığını anlamak, cgroup limitleriyle oynamak veya PostgreSQL’in index stratejilerini test etmek, ancak kendi ortamımda bu kadar özgürce yapabildiğim şeylerdi. VLAN tagging karması, switch loop’ları, routing flap’ler veya MTU/MSS mismatch’leri gibi ağ problemlerini gerçek donanım üzerinde deneyimlemek, kitaplardan veya sanal ortamlardan çok daha kalıcı dersler verdi. Bu tecrübeler, daha sonra büyük kurumsal projelerde karşılaştığım karmaşık sorunları çözmemde bana paha biçilmez bir avantaj sağladı.

Ayrıca, bazı durumlarda mahremiyet ve veri egemenliği endişeleri de self-hosting’i cazip kılar. Kendi verilerinizin üçüncü bir tarafa emanet edilmesini istemiyorsanız, tüm sorumluluğu üstlenip kendi sunucularınızı yönetmek mantıklı olabilir. Özellikle hassas kişisel veriler veya şirket içi gizli projeler söz konusu olduğunda, fiziksel kontrolün getirdiği güven hissi önemlidir. Ancak bu, beraberinde getirdiği güvenlik ve bakım yükünü de kabul etmek demektir.

Sonuç: Dengeli Bir Yaklaşım Şart

Self-hosting, her mühendisin deneyimlemesi gereken bir yolculuktur. Ancak bu yolculuğa çıkarken, sadece başlangıçtaki donanım maliyetlerini değil, zaman, enerji, güvenlik, yedekleme ve operasyonel yük gibi tüm gizli maliyetleri hesaba katmak gerekir. Benim 20 yıllık tecrübemde, “bedava” diye başlayan birçok projenin sonunda daha maliyetli veya daha yorucu olduğunu gördüm.

Kritik üretim sistemleri veya yüksek erişilebilirlik gerektiren servisler için genellikle bulut servislerinin sunduğu yönetilen çözümler, uzun vadede daha ekonomik ve daha güvenilirdir. Ancak öğrenme, deneyim kazanma veya mahremiyet odaklı kişisel projeler için self-hosting hala değerli bir seçenektir. Önemli olan, bu kararı verirken tüm artıları ve eksileri dürüstçe değerlendirmek ve beklentilerinizi gerçekçi tutmaktır. Net pozisyonum şudur: Öğrenmek ve kontrol için self-hosting harikadır, ancak üretimde maliyet ve operasyonel verimlilik için genellikle bulut servisleri daha akıllıca bir tercihtir.

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.

Self-hosting için gerekli olan başlangıç maliyetlerini nasıl hesaplayabilirim?
Ben self-hosting'e başlarken sadece donanımın peşin fiyatına odaklanmıştım. Ancak zaman içinde ağ altyapısı, kaliteli bir router, managed switch, yedekli kablolama ve UPS gibi ek masrafların da gerektiğini öğrendim. Öncelikle ihtiyacınız olan hizmetleri belirleyin, ardından bu hizmetleri sunmak için gereken donanım ve altyapıyı hesaplayın. Benim deneyimim, başlangıç maliyetlerinin sadece donanımı içermediğini, aynı zamanda ağ güvenliği ve stabilitesi için yapılan yatırımları da kapsadığını gösterdi.
Kendi sunucumu kurmak yerine bulut servislerini kullanmanın avantajları nelerdir?
Kendi sunucumu kurduğumda kontrolü artırma ve gizliliği sağlama konusunda avantajlar elde ettim, ancak bu avantajların yanında birçok gizli maliyet ve sorumlulukla karşılaştım. Bulut servisleri, özellikle büyük şirketler için, kolaylık ve ölçeklenebilirlik sunar. Benim deneyimim, bulut servislerinin sunabileceği kolaylık ve güvenlik seviyesinin, kendi sunucumu kurmakla elde ettiğim avantajlardan daha büyük olabileceğini gösterdi. Ayrıca, bulut servisleri genellikle daha düşük bir başlangıç maliyetine sahiptir ve ihtiyacınız olan hizmetleri daha hızlı bir şekilde sunabilir.
Self-hosting için hangi donanım ve araçları kullanmalıyım?
Ben self-hosting'e başlarken eski bir PC ile başladım, ancak zaman içinde daha güçlü bir donanıma ihtiyaç duydum. Raspberry Pi gibi mini bilgisayarlar, NAS ve sunucu kurmak için uygun olabilir. Ancak, ağ altyapısı ve güvenlik için kaliteli bir router, managed switch ve UPS gibi ek araçlara da ihtiyacınız olabilir. Benim deneyimim, donanım seçiminde hizmetlerinizi sunmak için gereken performansı ve güvenliği dikkate almanız gerektiğini gösterdi. Ayrıca, enerji verimliliği ve soğutma gibi faktörleri de dikkate almanız önemlidir.
Self-hosting'de karşılaşabileceğim en büyük zorluklar nelerdir?
Ben self-hosting'e başlarken en büyük zorlukların teknik sorunlar olacağını düşünmüştüm, ancak zaman içinde en büyük zorlukların aslında gizli maliyetler ve sorumluluklar olduğunu öğrendim. Donanım arızaları, ağ güvenliği tehditleri ve enerji kesintileri gibi sorunlarla karşılaştım. Benim deneyimim, self-hosting'de karşılaşabileceğiniz zorlukların sadece teknik değil, aynı zamanda 관리 ve bakım sorumlulukları da olduğunu gösterdi. Bu nedenle, self-hosting'e başlamadan önce bu sorumlulukları dikkate almanız ve gerekli önlemleri almanız önemlidir.
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