Her sistem büyüdüğünde Kubernetes'e taşınmak zorunda mı? Cevap, çoğu ekibin sandığından çok daha sık "hayır" demektir. On beş servis ve üç sunuculuk bir altyapıda orkestratörün getirdiği soyutlama, getirdiği yükü henüz hak etmemiş olur. Kubernetes'i çalışır tutmak kendi başına bir iştir: etcd'nin sağlığı, kontrol düzlemi yükseltmeleri, ağ politikaları, kaynak talepleri. Bu işin ekibi yoksa, iş boşuna demektir.
Küçük ölçeğin gerçek araçları
Systemd, yıllardır çalıştığı işi sessizce yapar: servisi başlatır, çökünce yeniden başlatır, logları journald'a toplar. Nginx trafiği dağıtır, TLS'i taşır. İki üç makine arasında Nginx'i ters vekil olarak kurmak, servis keşfi sorununun %90'ını çözer. Geriye kalan — sağlıklı uç nokta kontrolü, sıfır kesintili yeniden başlatma — systemd'nin kendi araçlarıyla halledilir. Kritik bilgi şudur: altyapınız büyüyene kadar bu araçlar yetecek.
# /etc/systemd/system/gazete-web.service
[Unit]
Description=Gazete web servisi
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/gazete/server.js
Environment=NODE_ENV=production
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Orkestratörün bedeli göründüğünde
Kubernetes'in asıl bedeli kurulum anında değil, iki yıl sonradır. Yükseltme penceresi, sürüm uyuşmazlıkları, operatör güncellemeleri, kubelet'in sessiz ama sürekli ihtiyacı — hepsi bir ekibin zamanını ister. Küçük ekip bu borcu ödeyemez; ödemeye çalıştığında asıl ürün geriden kalır. Aynı işi yapan basit yığın, yıllık bakım maliyeti olarak birkaç gün ister.
# Basit sağlık denetimi: servisi kontrol et, çöktüyse uyar
systemctl is-active gazete-web || (journalctl -u gazete-web -n 50 && exit 1)
Ne zaman geçmeli?
Kuşkusuz Kubernetes'in yeri var: yüzlerce kapsül, çoklu küme, otomatik ölçekleme, ekipler arası çok kiracılı ortamlar. Oraya varmak için önce oradaki sorunu yaşamak gerekir. Ölçek kriterleri basit: sunucu sayısı on beşi geçtiğinde, aynı servisi beş makinede elle dağıtmaktan yorulduğunuzda, geliştirme ortamınız üretimi taklit etmez hale geldiğinde — işte o zaman orkestratör tartışılır. O noktaya kadar systemd + Nginx + iyi bir dağıtım betiği, dürüst bir rakiptir.
Kubernetes kötü bir araç değil, belirli bir ölçeğin aracıdır. Küçük ölçekte en büyük rahatlık, az bileşenli, anlaşılır ve yükseltmesi on dakika süren yığındadır. Bunu "geçici çözüm" değil, ölçeğine uygun bir karar olarak savunmak gerekir — ve o savunmayı her teknik ekibe bir kez yapmayı değer.
Savunmanın en güçlü argümanı bilgi aktarımıdır: systemd ve Nginx bilen bir geliştirici, ilk gün üretimde iş yapabilir; Kubernetes öğrenme eğrisi ise aylarla ölçülür. Küçük ekipte her kişinin her parçayı anlayabilmesi bir lüks değil, dayanıklılıktır — üç kişilik ekipte tek uzmana bağımlı kalan bilgi, o uzman izinliyken kesintiye dönüşür. Basit yığın aynı zamanda teşhis hızını korur: sorun üç katmandan birindeyse, katman başına on soru sorarak kök sebebe inersiniz. Soyutlamalı sistemde ise aynı soru, önce soyutlamanın kendi katmanlarında cevaplanmak zorundadır. Ölçek büyüdüğünde oraya taşınanların taşıdığı bilgi — süreç yönetimi, vekil sunucu, yedekleme — tam da bu basit yıkımda öğrenilendir. Yani küçükte kurduğunuz sistem yalnızca bugünü değil, ilerideki geçişin müfredatını da yazmaktadır.
Okur Yorumları (0)