Docker mu, Kubernetes mu?
Bu soruyu sık sık alıyoruz. Kısa cevap: bunlar rakip değil, birbirini tamamlayan teknolojilerdir.
- Docker → Uygulamaları konteynerler içinde paketler ve çalıştırır
- Kubernetes → Çok sayıda konteyneri otomatik olarak yönetir, ölçeklendirir
Biri olmadan diğeri eksik kalır. Asıl soru: ne zaman yalnızca Docker yeterlidir, ne zaman Kubernetes'e geçmek gerekir?
Docker Nedir?
Docker, uygulamanızı bağımlılıklarıyla birlikte "konteyner" adı verilen izole bir ortama paketlemenizi sağlar. "Bende çalışıyor" problemini ortadan kaldırır.
# Basit bir Node.js uygulaması
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Docker Ne Zaman Yeterlidir?
- Tek sunucuda çalışan küçük/orta ölçekli uygulamalar
- Geliştirme ortamı standardizasyonu (docker-compose)
- CI/CD pipeline'larında build & test aşamaları
- 1-3 servis içeren basit mikroservis mimarileri
Kubernetes Nedir?
Kubernetes (K8s), onlarca veya yüzlerce konteyneri otomatik olarak dağıtan, yeniden başlatan ve ölçeklendiren bir orkestrasyon platformudur.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3 # 3 kopya çalıştır
selector:
matchLabels:
app: web-app
template:
spec:
containers:
- name: web-app
image: vivayazilim/app:v1.2.0
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
Kubernetes Ne Zaman Gereklidir?
- Yüksek erişilebilirlik gereksinimi (zero-downtime deployment)
- Otomatik ölçekleme ihtiyacı (trafik artışında yeni pod'lar)
- Çoklu ortam yönetimi (dev/staging/prod)
- 5+ mikroservis içeren karmaşık sistemler
- Mevsimsel yük artışları (kurban bayramı, kampanya dönemleri gibi)
Gerçek Bir Örnek: VivaKurban
Viva Yazılım'ın VivaKurban platformu kurban bayramında dramatik trafik artışı yaşar. 2023'te Kubernetes'e geçtik:
| Metrik | Öncesi (Docker) | Sonrası (K8s) | |---|---|---| | Pod sayısı | 1 sabit | 1–8 otomatik | | Downtime | 3 saat | 0 | | Hata oranı | %4.2 | %0.1 | | Satış kapasitesi | 3.000 hisse/saat | 15.000 hisse/saat |
Geçiş Kararı İçin Kontrol Listesi
Kubernetes'e geçmeyi düşünüyorsanız şu soruları yanıtlayın:
- [ ] Günde 100.000+ istek alıyor musunuz?
- [ ] Zero-downtime deployment zorunlu mu?
- [ ] 3+ mikroservis var mı?
- [ ] Mevsimsel trafik dalgalanmaları var mı?
- [ ] DevOps deneyimli bir ekip var mı (ya da danışmanlık alabilir misiniz)?
3 veya daha fazlasına "evet" diyorsanız Kubernetes'e geçme zamanı gelmiş demektir.
Managed Kubernetes Seçenekleri
Türkiye'deki işletmeler için önerilen yönetilen Kubernetes hizmetleri:
| Sağlayıcı | Avantaj | |---|---| | AWS EKS | En olgun ekosistem | | GCP GKE | En kolay kurulum | | Azure AKS | Microsoft entegrasyonu | | Hetzner (EU) | GDPR uyumlu, uygun fiyat |
Sonuç
Docker ile başlayın, Kubernetes ile ölçeklendirin. Eğer mimari kararlarınızda yardıma ihtiyaç duyuyorsanız Viva Yazılım'ın DevOps danışmanlık hizmetinden yararlanabilirsiniz.