Giriş: Neden Mikroservis?
Uygulama geliştirme dünyası, monolitik yapılar yerine mikroservis mimarisini benimseyerek daha hızlı, ölçeklenebilir ve bakım kolaylığı sunan bir modele yöneldi. Bu dönüşümün kalbinde Docker ve Kubernetes gibi konteynerleşme teknolojileri yer alıyor.
- Giriş: Neden Mikroservis?
- Docker Nedir? Temel Kavramlar
- Kubernetes Nedir? Temel Bileşenler
- Mikroservis Mimarisine Geçiş Adımları
- 1. Uygulama Parçalama Stratejisi
- 2. Dockerfile Oluşturma
- 3. Lokal Geliştirme ve Test
- 4. Kubernetes Manifeste Yazma
- 5. CI/CD Entegrasyonu
- Performans ve Ölçeklenebilirlik İpuçları
- Güvenlik En İyi Uygulamaları
- Sonuç: Mikroservis Yolculuğunuz Başlıyor

Docker Nedir? Temel Kavramlar
Docker, uygulamaları ve bağımlılıklarını izole bir ortamda paketleyen konteyner teknolojisidir. Geleneksel VM’lere kıyasla daha hafif, başlatma süresi saniyeler içinde ve kaynak tüketimi düşük olur.
- İmaj (Image): Uygulamanın dosya sistemi ve konfigürasyonunun sabit bir anlık görüntüsü.
- Konteyner (Container): İmajın çalıştırıldığı izole süreç.
- Dockerfile: İmaj oluşturmak için adım‑adım talimatları içeren dosya.
Kubernetes Nedir? Temel Bileşenler
Kubernetes, birden çok Docker konteynerini otomatik olarak yönetmek, ölçeklendirmek ve dağıtmak için tasarlanmış bir orchestratordır.
- Pod: En küçük dağıtım birimi; bir ya da birden fazla konteyneri barındırır.
- Service: Pod’lar arasında ağ iletişimini ve dış dünyaya erişimi sağlar.
- Deployment: Uygulama sürümlerini yönetir, istenen replika sayısını korur.
- Ingress: HTTP/HTTPS trafiğini yönlendiren giriş noktası.
Mikroservis Mimarisine Geçiş Adımları
1. Uygulama Parçalama Stratejisi
Monolitik kod tabanını işlevsel sınırlarla bölün. Her bir servis, tek bir iş kuralını (single responsibility) üstlenmeli ve RESTful API ya da gRPC üzerinden iletişim kurmalıdır.
2. Dockerfile Oluşturma
Aşağıda basit bir Node.js servisi için örnek Dockerfile yer alıyor:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --only=production
COPY . .
EXPOSE 3000
CMD ["node","index.js"]
3. Lokal Geliştirme ve Test
Docker Compose ile birden çok servisi tek komutla ayağa kaldırabilirsiniz:
version: "3.8"
services:
auth:
build: ./auth-service
ports:
- "5000:3000"
orders:
build: ./order-service
ports:
- "5001:3000"
4. Kubernetes Manifeste Yazma
Her servis için bir deployment.yaml ve bir service.yaml dosyası oluşturun. Örnek Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: auth-deployment
spec:
replicas: 3
selector:
matchLabels:
app: auth
template:
metadata:
labels:
app: auth
spec:
containers:
- name: auth
image: yourrepo/auth:latest
ports:
- containerPort: 3000
5. CI/CD Entegrasyonu
GitHub Actions, GitLab CI veya Jenkins gibi araçlarla Docker image oluşturup, kubernetes cluster’ına otomatik deploy yapabilirsiniz. Böylece kod değişikliği anında üretime geçer.
Performans ve Ölçeklenebilirlik İpuçları
- Horizontal Pod Autoscaling (HPA): CPU veya bellek kullanımına göre pod sayısını otomatik artırın.
- Resource Limits: Her pod için
requestsvelimitstanımlayarak kaynak tüketimini kontrol edin. - Service Mesh (Istio/Linkerd): Servisler arası güvenli iletişim, izleme ve trafik yönetimi sağlayın.
Güvenlik En İyi Uygulamaları
Konteyner güvenliği, mikroservis mimarisinde kritik bir konudur. Aşağıdaki adımları izleyin:
- Resmi ve imzalı Docker imajlarını tercih edin.
- İmajları düzenli olarak
Trivyya daClairile tarayın. - Kubernetes RBAC (Role‑Based Access Control) ile erişim yetkilerini en aza indirgeyin.
- NetworkPolicy ile pod‑pod iletişimini sınırlayın.
Sonuç: Mikroservis Yolculuğunuz Başlıyor
Docker ve Kubernetes, mikroservis mimarisinin temel taşlarıdır. Doğru planlama, otomasyon ve güvenlik önlemleriyle uygulamanızı hızlı, ölçeklenebilir ve sürdürülebilir bir yapıya dönüştürebilirsiniz. Şimdi ilk servisinizi konteynerleştirin, Kubernetes’e deploy edin ve HPA’yı aktif hale getirin. Bu adımlar, dijital dönüşümünüzdeki en büyük ivmeyi sağlayacak.
❓ Sıkça Sorulan Sorular
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”Mikroservis mimarisi nedir?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Mikroservis mimarisi, uygulamayı bağımsız, küçük ve tek bir işlevi yerine getiren servisler halinde bölerek geliştirme, dağıtım ve ölçeklendirme süreçlerini kolaylaştıran bir yaklaşımdır.”}},{“@type”:”Question”,”name”:”Docker ve Kubernetes arasındaki fark nedir?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Docker, uygulamaları konteyner içinde paketler ve çalıştırır; Kubernetes ise bu konteynerleri yönetir, ölçeklendirir, dağıtır ve yüksek erişilebilirlik sağlar.”}},{“@type”:”Question”,”name”:”Kubernetes’te otomatik ölçeklendirme nasıl yapılır?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Horizontal Pod Autoscaler (HPA) özelliği, CPU veya bellek kullanım metriklerine göre pod sayısını otomatik artırır veya azaltır. HPA, bir Deployment ya da ReplicaSet ile ilişkilendirilir.”}}]}
