Skip to main content
DevOps

DevOps ile Sürekli Teslimat: Konteyner, CI/CD ve Gözlemlenebilirlik Rehberi

Şubat 19, 2026 4 dk okuma 35 views Raw
80'ler müzik, 90 ların müziği, albüm kapakları içeren Ücretsiz stok fotoğraf
İçindekiler

DevOps kültürü, yazılım geliştirme ve operasyon ekipleri arasındaki duvarları yıkarak hızlı, güvenilir ve tekrar edilebilir teslimat süreçleri oluşturmayı amaçlar. Bu rehberde konteyner teknolojileri, CI/CD boru hatları ve gözlemlenebilirlik (observability) yaklaşımlarıyla sürekli teslimat (Continuous Delivery) uygulamalarını adım adım ele alacağız. Hedefimiz, hem mimari kararlar hem de pratik uygulamalar için yol gösterici bir kaynak sunmaktır.

DevOps ve Sürekli Teslimat (Continuous Delivery) Nedir?

DevOps, kültürel bir dönüşüm ve otomasyonun birleşimidir. Sürekli Teslimat ise geliştirilen her kod değişikliğinin üretime hazır durumda tutulmasıdır. CI (Continuous Integration) ile sık sık entegrasyon yapılır, CD ile ise deploy süreçleri otomatikleştirilir. Bu sayede değişiklikler daha hızlı, daha güvenli ve daha az insan müdahalesiyle sunulur.

Temel prensipler

  • Küçük ve sık teslimatlar
  • Otomasyon: build, test, deploy süreçleri
  • Geri dönüş (feedback) döngülerinin kısaltılması
  • İzlenebilirlik ve ölçülebilirlik

Konteynerler: Taşınabilirlik ve Tutarlılık

Konteyner teknolojileri (özellikle Docker) uygulamaları taşıma ve çalıştırma açısından standartlaştırır. Konteynerler, uygulama bağımlılıklarını, ortam değişkenlerini ve çalışma zamanı gereksinimlerini paketleyerek geliştiriciden üretime kadar tutarlı davranış sağlar.

Neden konteyner?

  • Taşınabilirlik: Aynı imaj hem geliştiricide hem testte hem de üretimde çalışır.
  • İzolasyon: Bağımlılıklar her konteynerde yalıtılır.
  • Kaynak verimliliği: Hafif sanallaştırma katmanı.

Kubernetes ise konteyner orkestrasyonu için endüstri standardıdır. Ölçekleme, servis keşfi, yeniden başlatma, rolling update gibi özelliklerle üretim ortamlarında güvenli dağıtımlar sağlar.

CI/CD Boru Hatları: Otomasyonun Kılavuzu

CI/CD boru hatları, kodun sürüm kontrolünden başlayıp otomatik testler, güvenlik taramaları ve üretime dağıtıma kadar uzanan adımları içerir. Yaygın araçlar: Jenkins, GitLab CI, GitHub Actions, CircleCI, Azure DevOps.

Boru hattı aşamaları

  • Commit ve Build: Kod derlenir, bağımlılıklar çözülür.
  • Unit Test: Birim testleri çalıştırılır; başarılı olmayan build'ler reddedilir.
  • Integration & E2E Test: Entegre testler ve uçtan uca senaryolar doğrulanır.
  • Security Scans: SAST/DAST, imaj taraması ve bağımlılık güvenliği kontrolü.
  • Artifact Yönetimi: Docker imajları registry'e push edilir (Docker Hub, ECR, GCR vb.).
  • Deploy: Staging ve production dağıtımları (rolling, blue-green, canary).

Boru hattı tasarımında önemli olan, geri almayı (rollbacks) kolaylaştırmak ve otomasyonda tek bir kaynaktan (single source of truth) hareket etmektir. Infrastructure as Code (IaC) araçları Terraform/CloudFormation ile altyapı da versiyonlanmalıdır.

Gözlemlenebilirlik (Observability): Sistem Sağlığını Anlamak

Gözlemlenebilirlik; metrikler, loglar ve izleme (tracing) kombinasyonuyla sistem davranışını anlamayı sağlar. Sadece hata kayıtlarını görmek yeterli değildir; nedenlerini, gecikmeleri ve bağımlılık zincirlerini görmeniz gerekir.

Üç sütun: Metrics, Logs, Traces

  • Metrikler: Zaman serisi verileri (CPU, bellek, latency, error rate). Araçlar: Prometheus, Graphite.
  • Loglar: Yapılandırılmış loglama (JSON), merkezi log yönetimi. Araçlar: ELK/EFK (Elasticsearch, Fluentd/Fluent Bit, Kibana), Loki.
  • Tracing: Dağıtık izleme ile request flow'unu takip etmek. Araçlar: Jaeger, Zipkin, OpenTelemetry.

Uygulamalarınızı OpenTelemetry ile instrument ederek hem metric hem trace verilerini tek bir noktadan toplayabilirsiniz. Bu veriler Grafana gibi panellerde birleştirilerek canlı durum izleme ve alert mekanizmaları kurulur.

Dağıtım Stratejileri ve Güvenlik

Güvenli ve kesintisiz teslimat için doğru dağıtım stratejisi önemlidir:

  • Rolling Update: Kademeli olarak pod'ları yenileyerek kesintiyi azaltır.
  • Blue-Green: İki eş üretim ortamı (mavi ve yeşil) kullanılarak anında geri dönüş imkanı sağlar.
  • Canary Deployments: Yeni sürüm küçük bir trafik yüzdesine verilir, ardından genişletilir.

Güvenlik için CI aşamasında bağımlılık taramaları, imaj imzalama ve runtime güvenliği (Runtime Security) önemlidir. Kubernetes RBAC, ağ politikaları ve gizli bilgilerin (secrets) yönetimi (Vault, Kubernetes Secrets + KMS) olarak ele alınmalıdır.

En İyi Uygulamalar ve Operasyonel Öneriler

  • Her deploy için otomatik testler ve smoke test'ler çalıştırın.
  • Immutable artifact prensibini kullanın: her deploy için yeni bir imaj referans alın.
  • IaC ile altyapıyı versiyonlayın ve review süreci oluşturun.
  • Gözlemlenebilirliği baştan tasarlayın: log, metric ve trace veri noktalarını planlayın.
  • Alert fatigue'i önlemek için meaningful (anlamlı) alert'ler oluşturun ve SLA/SLO temelli threshold'lar belirleyin.
  • Konteyner imajlarını küçük, tek amaçlı ve güvenli tutun — base image'leri güncel tutun.

Örnek Teknoloji Yığını

Tipik bir modern DevOps pipeline şu bileşenleri içerir:

  • Sürüm kontrol: Git (GitHub/GitLab/Bitbucket)
  • CI/CD: GitHub Actions / GitLab CI / Jenkins
  • Container: Docker
  • Orkestrasyon: Kubernetes (EKS/GKE/AKS veya on-prem)
  • Monitoring: Prometheus + Grafana
  • Logging: ELK/EFK veya Loki + Grafana
  • Tracing: OpenTelemetry + Jaeger
  • IaC: Terraform

Sonuç: Sürekli Teslimatın Geleceği

Sürekli teslimat, yalnızca araçların değil aynı zamanda kültürün de birleşimidir. Konteynerler sunum ve taşıma sorunlarını çözerken, CI/CD otomasyonla hız ve güven sağlar; gözlemlenebilirlik ise sistemin sağlığını anlamayı mümkün kılar. Başarılı bir uygulama, bu üç ayağı aynı anda güçlendirir: otomasyon, taşınabilirlik ve görünürlük.

Ekolsoft olarak, sistemlerinizi konteyner tabanlı mimarilere taşırken CI/CD ve gözlemlenebilirlik süreçlerini entegre eden çözümler sunuyoruz. Bu rehberi uygulayarak daha hızlı, daha güvenli ve daha ölçülebilir teslimat süreçleri oluşturabilirsiniz.

Bu yazıyı paylaş