"Umarım çalışır" yerine
git push origin main.
Container, CI/CD pipeline, Kubernetes, infrastructure-as-code, observability ve release otomasyonu — hepsi tek bir ekipten. Geliştirici "git push" yapar; lint, test, build, security scan, image push ve deploy dakikalar içinde otomatik olarak akar. Bir şey yanlış giderse 18 saniyede geri alınır. Almanya DevOps standartlarıyla.
Release'i bir "olay" olmaktan çıkartmak için tek yol disiplinli otomasyondur. Cuma gecesi nöbet tutmayı bırakmak istiyorsanız doğru yerdesiniz.
"Umarım çalışır" release'leri ekibinizi tüketiyor.
Sayıları biraz dürüstçe konuşalım: bir release'in başarısız geçmesi para kaybı değil sadece — ekipte güven kaybıdır. Aşağıdakiler bizim gördüğümüz en yaygın beş sorun.
SSH ile sunucuya bağlanan, dosya çeken, servis restart eden bir insan varsa o release iş süresinin yarısını yer. Bir adım atlanırsa fark Pazartesi anlaşılır. Cuma akşamı planlanan deploy gece yarısına sarkar; o gece izinli olması gereken DevOps mühendisi aslında izinli değildir. Bu döngü ay sonu olunca burnout, çeyrek sonu olunca işten ayrılış doğurur. Çözüm: deploy butonunu insan değil pipeline bassın.
Bir release sonrası hata gelirse "git revert + tekrar deploy" yaklaşımı dakikalar değil, saatler sürer. O saatler içinde ödeme alınamaz, kayıt oluşturulamaz, müşteri çağrı merkezini sular. Doğru pipeline'da rollback bir butondur — önceki image hâlâ registry'de durur, Kubernetes deployment bir önceki revisyona geri döndürülür, 18 saniyede eski haline döner. Rollback için "plan" değil, mekanizma gerekir.
CI pipeline yoksa testler çalıştırılmaz — çünkü "şimdi acelemiz var" denir. Üretimde ortaya çıkan her küçük bug, müşteriye bildirilmediği için içeride üst üste birikir. Bir noktadan sonra geliştirici kod yazmıyor, müşteri çağrılarına cevap yazıyor. Çözüm: her commit'te tüm test takımı, statik analiz, type check, security scan otomatik çalışsın. Geçmeyen kod main'e merge edilmesin.
Birisi 6 ay önce production sunucuda nginx config'i değiştirdi. Şimdi o adam şirkette değil. Kimse o değişikliği hatırlamıyor. Yeni bir sunucu kuracaksanız aynı davranışı tekrar üretemiyorsunuz. Infrastructure-as-Code çözer: Terraform, Pulumi, Helm chart, Kubernetes manifest — her şey git'de yaşar. Sunucuyu yok et, 8 dakikada bire bir aynısını yeniden kur.
Sistem Cumartesi 03:14'te düştü. Slack alarmı yok, sadece bir müşteri Pazartesi sabahı "açılmıyor" diyor. Logları bulmak için 4 saat, sebebi anlamak için 3 saat geçer. Gerçek DevOps şu demektir: Prometheus alarmı sizi Cumartesi 03:14'te uyandırır, Grafana dashboard'unda sebep bellidir, runbook çalıştırılır, 12 dakikada problem çözülür. Hafta sonu hafta sonudur.
Sürekli iyileşen, kendini onaran bir üretim.
Kubernetes pod auto-healing'den Terraform IaC'a, DORA metriklerinden tek tıkla rollback'e — aşağıda günlük operasyonun gerçekten nasıl göründüğünü gösteriyoruz.
> pod web-7d4 ready in 2.1s — service continues
resource "aws_eks_cluster" "prod" {
name = "partnerfy-prod"
version = "1.29"
role_arn = aws_iam_role.eks.arn
vpc_config {
subnet_ids = aws_subnet.priv[*].id
}
}
Plan: 14 to add, 0 to change, 0 to destroy.
Apply complete! Resources: 14 added.
Üretim sağlığının dört temel göstergesi
Önceki revision'a geri dön
kubectl rollout undo deployment/web
Hangi ekipler için fark yaratıyor?
Yıllarca farklı sektörlerde DevOps kurduk. Aşağıdaki sekiz profil bizden en fazla değer çıkaran takımlar.
Günlük deploy yapan SaaS
Müşteri istek → branch → review → 30 dakikada üretimde. Gün içinde 5-15 release sıradan olmalı.
E-ticaret + sık A/B test
Feature flag'le %5 trafiğe variant, otomatik metrik karşılaştırması, kazanan otomatik açılır.
Regülasyon altı fintech
Onay zinciri, audit log, immutable build, separation-of-duties. SOC2 ve PCI hazır pipeline.
B2B çok-kiracılı
Müşteri başına ortam, kademeli rollout, tenant-aware feature flag, müşteri-bazlı SLA izleme.
TestFlight / Play CD
Fastlane + Bitrise + signing automation. Her PR otomatik IPA/AAB, test cihazlarına dağıtım.
Monolitten servislere geçen startup
Strangler-fig pattern, service mesh (Istio/Linkerd), gradual cut-over. Aynı anda iki dünya çalışır.
Legacy'i modernize eden kurumsal
On-prem VM'leri konteynerize, eski Jenkins'i GitOps'a, Active Directory'yi OIDC'ye taşıma.
20+ repo yöneten ajans
Şablon pipeline'lar, repo-of-repos, merkezi secret yönetimi. Yeni müşteri = 2 saatte canlı.
DevOps hattının on katmanı.
Her katmanda en uygun aracı seçeriz — zorla bir teknolojiyi dayatmak yerine, mevcut ekibin alışkanlıkları + uzun vadeli sürdürülebilirlik dengesi gözetilir.
Konteynerleştirme
Uygulama Dockerfile'a alınır, multi-stage build ile minimal image üretilir, registry'ye otomatik push edilir. Aynı image dev → staging → prod boyunca taşınır.
CI pipeline
Her commit'te lint, unit + integration test, statik analiz, security scan, image build. Geçemeyen kod merge edilmez.
CD pipeline
GitOps yaklaşımı: git'deki manifest tek doğru kaynak. ArgoCD sürekli sync eder; drift olursa anında düzeltir veya alarm verir.
Kubernetes kurulumu
Managed (EKS/GKE/AKS) veya self-hosted (k3s, kubeadm). Cluster sizing, node pool, autoscaling, network policy birlikte tasarlanır.
Helm chart'ları
Uygulama parametrik chart'a paketlenir — staging'de farklı, prod'da farklı değer dosyaları. Sürüm yükseltmek tek komut.
Terraform / Pulumi IaC
Cloud kaynakları (VPC, RDS, S3, IAM) kod olarak tanımlanır. Plan → review → apply döngüsü, state remote'ta + locked, drift detection.
Secret yönetimi
Sızıntıya açık .env'ler tarihe karışır. Vault veya SOPS ile şifreli — pipeline runtime'da dinamik çeker, geliştirici asla görmez.
Observability
Metric (Prometheus) + log (Loki) + trace (Tempo) + dashboard (Grafana). SLO tabanlı alarm, error budget izleme.
On-call & alarm
Hangi alarm kimi uyandırır? Rotation, escalation, runbook bağlı uyarılar. Sabah 3'te yanlış kişiyi uyandırmak yok.
Güvenlik tarama
Image'da CVE? Bağımlılıkta kritik açık? Pipeline build'i durdurur, PR'a otomatik düzeltme önerisi açar. Shift-left security.
Altı adımda eski hattan modern pipeline'a.
Bütün altyapıyı bir gecede değiştirmiyoruz. Faz faz, iş aksamadan, ekibinizi de yanımıza alarak ilerliyoruz.
Mevcut hat denetimi
2 haftalık sprint: bugün nasıl deploy ediyorsunuz, hangi adım manuel, hangi servis tek nokta, hangi sırlar nerede duruyor.
Uygulamaları konteynerle
Her servis Dockerfile alır, multi-stage build ile küçültülür, registry'ye gönderilir. Dev + prod aynı paket.
CI pipeline kur
Lint + test + build + scan otomatik. Pull request açıldığında bot 6-8 dakikada yeşil/kırmızı sonuç verir.
CD pipeline kur
ArgoCD veya Flux ile GitOps; staging her merge'de otomatik, prod tek onayla. Canary + rollback hazır.
Observability bağla
Prometheus + Grafana + Loki. SLO'lar yazılır, alarm kuralları runbook ile bağlanır, on-call rotation kurulur.
Ekibi eğit, devret
2 günlük workshop + dokümantasyon + runbook seti. Sonraki 3 ay sessiz destek; sorularınıza saat içinde dönüş.
Üretimde kullandığımız teknolojiler.
Önce / Sonra — sayılarla.
Jenkins → GitHub Actions + ArgoCD. Geliştirici merge ettiği an 12 dakikada üretimde. Cuma akşamı deploy korkusu sonlandı.
Prometheus + PagerDuty + runbook otomasyonu. Düşüş gerçekleşmeden uyarı, doğru kişiye, çözüm adımlarıyla birlikte gider.
Immutable build, separation-of-duties, full audit trail, encrypted secrets. 6 ayda denetim hazır, denetçiden tek bulgu yok.
Rolling update + readiness probe + canary release. 6 ayda bir bile müşteriye yansıyan kesinti yok.
Fastlane + Bitrise + signing automation. QA ekibi her PR'da 4 dakika sonra cihazında yeni build'i görüyor.
Reusable GitHub Actions workflow + bootstrap CLI. Yeni müşteri repo açıyor, 2 saatte canlı.
En çok merak edilenler
Kısa cevap: hayır. Ölçeğiniz küçükse (tek bölgede 1-3 sunucu, <20k istek/dk) Docker Compose, AWS ECS Fargate, GCP Cloud Run, Fly.io veya Render gibi seçenekler çok daha az operasyonel yük getirir. Kubernetes'in gerçek değeri 5+ servis, çoklu bölge, otomatik scaling, advanced rollout (canary/blue-green) ve servisler-arası mesh ihtiyacı doğduğunda ortaya çıkar. Karar denetim toplantısında birlikte verilir; "modaya uyalım" diye sizi yormayız. Eğer K8s'e geçilirse managed (EKS/GKE/AKS) öneririz — kendi cluster'ınızı yönetmeniz gerekmez.
Genellikle: hayır, hemen değil. Jenkins çalışıyorsa pipeline'ı paralel kurarız (GitHub Actions / GitLab CI / Drone). Yeni servisler yeni hattan akar, eski servisler önceki Jenkins'te. 2-3 ay paralel çalışır, ekibin alıştığı görüldükten sonra migrasyon tamamlanır. "Bütün geçmişi at, baştan yaz" yaklaşımı 6 ay vakit alır + her şey yarım kalır. Bizim deneyimimiz: strangler-fig stratejisi her zaman daha iyi sonuç verir. Eğer Jenkins maintainable değilse (eski sürüm, plugin patlaması, kimse anlamıyor) — o zaman dürüstçe söyleriz.
Tipik takvim: Temel CI/CD (konteyner + test + build + deploy) 2-4 hafta. Helm + Kubernetes ekleme +2-4 hafta. Tam observability (Prometheus + Grafana + Loki + alert) +2-3 hafta. Terraform/IaC ile cloud yönetimi +3-6 hafta (mevcut kaynaklara bağlı). Toplam: küçük takım için 4 hafta, orta için 8-10 hafta, kurumsal için 12-16 hafta. Önemli olan: faz faz iş aksamadan ilerler. İlk faz biter bitmez işe yararsınız; her sonraki faz değer ekler. Tek seferde "her şey hazır" durmuyoruz.
Evet ve bunu işin parçası kabul ediyoruz. Setup tamamlandığında: (1) tüm pipeline'ın markdown dokümantasyonu, (2) iki günlük canlı workshop, (3) 30 günlük gölge dönem — biz arka planda izliyoruz, ekip öne çıkıyor, soruları cevaplıyoruz. Geliştiricinin günlük hayatında çok az şey değişir aslında: git push yapar, pipeline çalışır. Karmaşıklık altyapı tarafında saklı. Operasyonel kısmı (alert handling, runbook, rollback) için on-call rotation kurarız. 3 ay sonra ekibiniz pipeline'ı kendi başına sahiplenebilecek olgunlukta olur.
İki kalem var: (a) bizim kurulum + 3 ay devir hizmeti — projeye göre fiyatlanır, küçük projede dört-haneli düşük, kurumsal projede orta-beş-haneli (EUR/USD bazlı, sabit fiyat). (b) Sürekli altyapı maliyeti — bunu sizin cloud hesabınızdan ödersiniz, biz aracı olmuyoruz. Tipik sayılar: küçük SaaS aylık 200-600 EUR cloud, orta 1500-4000 EUR, kurumsal 8000+. Önemli not: doğru tasarımla %30-50 cloud maliyeti tasarrufu çıkar (rightsizing, spot instance, auto-scaling). Genelde altı ayda DevOps yatırımı kendini öder.
Evet. AWS + GCP + Azure + Hetzner + DigitalOcean — hepsinde aktif üretim deneyimimiz var. Terraform/Pulumi sağlayıcıdan bağımsız soyutlama sağlar; Kubernetes manifest'leri her cluster'da çalışır. "Multi-cloud" çoğu zaman gerçekten istemediğiniz şey olabilir (operasyonel karmaşıklık 2.5x artar) — bizim önerimiz genellikle tek primary cloud + farklı bölge (multi-region) + felaket kurtarma için ikinci sağlayıcı. Eğer gerçek multi-cloud (örn. EU veri AWS'de, US veri GCP'de) gerekiyorsa onu da kurarız. Veri egemenliği (GDPR/KVKK) sebebiyle bölge seçimi sık karşılaştığımız bir konu.
Evet. ISO 27001, SOC2 Type II, PCI DSS, GDPR ve KVKK uyumlu pipeline'lar kurduk. Yaptıklarımız: immutable build (geriye dönük değiştirilemez), separation-of-duties (kod yazan deploy edemez), full audit trail (kim ne zaman ne onayladı), encrypted secrets (Vault/SOPS), encryption-at-rest + in-transit, MFA-gated production access, vulnerability scan on every build. Denetçiye verilecek belgeler hazır şablonlardır. Bağımsız denetçilerin bizim kurduğumuz pipeline'ları onayladığı 6+ vaka var — referans paylaşabiliriz.
Bir release sonrası problem fark edilirse iki yol var. (1) Kubernetes rollout undo: önceki revisyon hâlâ Deployment history'sinde durur; bir komut ya da ArgoCD UI butonu — eski image dakikalar değil saniyeler içinde tekrar aktif olur. Tipik süre 12-25 saniye. (2) Database migrasyonu varsa daha dikkatli: önce reverse migration, sonra container rollback. Bu yüzden migrasyonları her zaman geri-uyumlu yapıyoruz (NULL allow → fill → NOT NULL gibi iki adımlı pattern). Otomatik rollback kuralı: SLO ihlali veya error rate sıçraması, ArgoCD'nin progressive rollout'unu otomatik durdurur, gerekirse geri alır. İnsan müdahalesi opsiyonel.
Release'i bir korku olmaktan çıkartın.
30 dakikalık görüşmede mevcut hattınızı birlikte değerlendirelim. Hangi katmanda kazanç var, hangi adım kritik — somut bir 90 günlük plan çıkartalım.