Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
239 yazı bulundu
Argo CD'yi Production'da İşletmek ve 2.x'ten 3.6'ya Değişenler: SSO, RBAC, Notifications, Metrikler ve Upgrade
DevOps SERİ 09

Argo CD'yi Production'da İşletmek ve 2.x'ten 3.6'ya Değişenler: SSO, RBAC, Notifications, Metrikler ve Upgrade

Argo CD'yi production'da işletmek, kendi ayarlarını da Git'te tutmak, insanları SSO ve en az yetkili RBAC rolleriyle, CI'ı süreli token ile içeri almak, admin hesabını kapatmak, bildirim ve argocd_app_info alarmı kurmak ve son üç minor sürümde kalmak demek. Hesapları, RBAC'ı ve bildirimleri Git'ten uyguluyor, 3.0'ın update, delete ve logs değişikliklerini, metrikleri ve 3.6'ya kadar yükseltme notlarını gerçek çıktılarla görüyor ve seriyi kapatıyoruz.

15 Kas 2026 13 dk 0
Argo Rollouts ile Progressive Delivery: Prometheus Metrikleriyle Otomatik Canary Analizi
DevOps SERİ 08

Argo Rollouts ile Progressive Delivery: Prometheus Metrikleriyle Otomatik Canary Analizi

Argo Rollouts, Deployment'ın yerine geçen bir Rollout ile yeni sürümü adım adım açar ve Prometheus'tan okuduğu metriklere göre ilerler ya da kendiliğinden geri döner. Bookstore API'sini Rollout'a çeviriyor, prod'da %25 ve %50 adımlı bir canary kuruyor, iyi bir sürümün geçişini ve %30 hata dönen bir sürümün 92 saniyede abort edilmesini, ardından Git'i revert ile gerçeğe uydurmayı gerçek çıktılarla görüyoruz.

15 Kas 2026 11 dk 0
GitOps'ta Secret Yönetimi: Sealed Secrets, SOPS ve Secret'ı Git'e Hiç Koymamak
DevOps SERİ 07

GitOps'ta Secret Yönetimi: Sealed Secrets, SOPS ve Secret'ı Git'e Hiç Koymamak

Secret'ı Git'e koymanın güvenli yolu, değeri yalnız hedef cluster'ın açabileceği biçimde şifrelemek (Sealed Secrets), ekibin anahtarıyla şifreleyip manifest üretiminde çözmek (SOPS ve KSOPS) ya da Git'e yalnız bir referans koymak (External Secrets Operator). Var olan Secret'ı devralmayı, strict scope'u, anahtar kaybı provasını, KSOPS'u Argo CD'ye eklemeyi ve üç yolun karşılaştırmasını gerçek çıktılarla görüyoruz.

15 Kas 2026 12 dk 0
CI ile GitOps'u Bağlamak: Image Tag Promotion, Pull Request ile Environment Atlatmak ve Image Updater
DevOps SERİ 06

CI ile GitOps'u Bağlamak: Image Tag Promotion, Pull Request ile Environment Atlatmak ve Image Updater

GitOps'ta CI image'ı bir kez build edip registry'ye koyar ve hangi image'ın çalışacağını config repo'suna commit olarak yazar; deploy'u Argo CD yapar. Yerel bir CI script'iyle tag ve digest'i dev'e commit etmeyi, staging ve prod'a pull request ile promotion'ı, aynı dosyaya yazan iki pipeline'ın çakışmasını, Argo CD Image Updater'ın digest'i silmesini ve Source Hydrator'ı gerçek çıktılarla görüyoruz.

15 Kas 2026 13 dk 0
Çok Environment, Çok Uygulama: App of Apps, ApplicationSet Generator'ları ve AppProject
DevOps SERİ 05

Çok Environment, Çok Uygulama: App of Apps, ApplicationSet Generator'ları ve AppProject

Çok sayıda uygulama ve environment'ı Argo CD'de yönetmenin yolu, Application'ları klasör yapısından üreten bir ApplicationSet'i App of Apps root'uyla Git'ten uygulamak ve sınırları AppProject ile çizmek. Bookstore'un api ve web uygulamalarını dev, staging ve prod için tek bir ApplicationSet ile üretiyor, RollingSync ile ortamları sırayla güncelliyor, AppProject'in yasak bir namespace'i reddetmesini ve preserveResourcesOnDeletion'ın etkisini gerçek çıktılarla görüyoruz.

15 Kas 2026 10 dk 0
Sync Wave'ler ve Hook'lar: Migration Job'ını Deploy'dan Önce Çalıştırmak
DevOps SERİ 04

Sync Wave'ler ve Hook'lar: Migration Job'ını Deploy'dan Önce Çalıştırmak

Argo CD'de migration Job'ını deploy'dan önce çalıştırmanın yolu onu bir hook yapmak ve sırayı sync wave'lerle vermek. Düz Job'ın ikinci sürümde immutable hatası vermesini, PreSync hook'unun boş bir ortamda veritabanından önce çalışıp başarısız olmasını, Sync hook'u ve wave -1/0/1 ile doğru sırayı, PostSync smoke test'ini, SyncFail ve PreDelete hook'larını ve expand-contract ile uyumu gerçek çıktılarla görüyoruz.

15 Kas 2026 10 dk 0
Argo CD'de Sync, Health ve Diff: Automated Sync, Prune, Self-Heal ve Sync Option'ları
DevOps SERİ 03

Argo CD'de Sync, Health ve Diff: Automated Sync, Prune, Self-Heal ve Sync Option'ları

Argo CD'de sync status Git ile cluster'ın aynı olup olmadığını, health status ise cluster'daki nesnelerin çalışıp çalışmadığını söyler; ikisi bağımsızdır. Synced ama Degraded bir deploy'u, self-heal'in elle yapılan scale'i bir saniyede geri almasını ama elle eklenen env değişkenini görmemesini, prune'un bir StatefulSet'i silmesini ve Prune=false, ignoreDifferences, RespectIgnoreDifferences ile sync option'larını gerçek çıktılarla görüyoruz.

15 Kas 2026 10 dk 0
Argo CD Kurulumu ve Mimarisi: İlk Application ile Bookstore'u kind Cluster'a Deploy Etmek
DevOps SERİ 02

Argo CD Kurulumu ve Mimarisi: İlk Application ile Bookstore'u kind Cluster'a Deploy Etmek

Argo CD, cluster içinde çalışıp bir Git repo'sundaki manifest'leri render eden, canlı nesnelerle karşılaştıran ve uygulayan bir controller grubu. Argo CD 3.6'yı kind cluster'ına kuruyor, repo-server, application-controller ve diğer component'lerin rolünü, CLI ile giriş ve ilk parolayı, Application CRD'sinin alanlarını ve Bookstore'u Git'ten deploy etmeyi görüyoruz; Synced görünüp hiçbir şey değiştirmeyen bir commit'i de yakalıyoruz.

15 Kas 2026 11 dk 0
GitOps Nedir? Push Tabanlı CD'den Pull Tabanlı Reconciliation'a ve Ne Zaman Gerekmez
DevOps SERİ 01

GitOps Nedir? Push Tabanlı CD'den Pull Tabanlı Reconciliation'a ve Ne Zaman Gerekmez

GitOps, istenen durumun Git'te declarative olarak tutulduğu ve cluster içindeki bir agent'ın bu durumu sürekli çekip uyguladığı bir deploy modeli. Push tabanlı bir pipeline'ın drift'i neden göremediğini gerçek çıktılarla, OpenGitOps'un dört prensibini, oyuncak bir reconcile döngüsünü, repo düzeni kararlarını, Argo CD ile Flux farkını ve GitOps'un ne zaman gereksiz olduğunu görüyoruz.

15 Kas 2026 11 dk 0
Helm 3'ten Helm 4'e: Ne Değişti, Neyi Bozar ve Helm 3 EOL Takvimi
DevOps SERİ 07

Helm 3'ten Helm 4'e: Ne Değişti, Neyi Bozar ve Helm 3 EOL Takvimi

Helm 4, Helm 3 chart'larını ve release'lerini değiştirmeden yönetir; kırılan şeyler script'ler, plugin'ler ve post-renderer'lardır, Helm 3'ün security desteği ise 10 Şubat 2027'de biter. Helm 3.22 ile Helm 4.3'ü yan yana çalıştırıp server-side apply latching'ini, iki sürüm karışınca SSA'nın nasıl geri alındığını, flag ve log değişikliklerini, post-renderer'ın plugin'e dönüşmesini, deneysel Chart v3'ü ve Helm 2 dönemi bir chart'ı gerçek çıktılarla görüyor, bir geçiş checklist'i çıkarıyoruz.

15 Kas 2026 12 dk 6
Dependency'ler, OCI Registry ve Chart'ı Test Etmek: Chart.lock, helm push, lint, helm test ve CI
DevOps SERİ 06

Dependency'ler, OCI Registry ve Chart'ı Test Etmek: Chart.lock, helm push, lint, helm test ve CI

Chart dependency'leri Chart.yaml'da aralıkla tanımlanır ve Chart.lock ile sabitlenir; chart helm package ve helm push ile bir OCI registry'ye yayımlanır, ama aynı sürümü farklı içerikle yeniden push etmeyi registry engellemez. Bookstore chart'ına opsiyonel bir Valkey subchart'ı ve global.imageRegistry ekliyor, Helm 4'ün registry login ve digest ile kurulum davranışını, kubeconform, helm test ve chart-testing'i ve bunları çalıştıran bir GitHub Actions workflow'unu gerçek çıktılarla görüyoruz.

15 Kas 2026 15 dk 4
Release Yönetimi: install, upgrade --install, rollback, history, --wait ve Hook'larla Migration
DevOps SERİ 05

Release Yönetimi: install, upgrade --install, rollback, history, --wait ve Hook'larla Migration

helm upgrade --install her çalıştırmada aynı sonuca götüren deploy komutudur; pre-upgrade hook'u migration'ı Deployment'tan önce çalıştırır, ama rollback veritabanı migration'ını geri almaz. Bookstore'un EF Core migration bundle'ını SQL Server'a karşı hook olarak çalıştırıyor, hook'un üç gerçek başarısızlığını, Helm 4'ün kstatus tabanlı --wait'ini, --rollback-on-failure'ı, pending-upgrade'den kurtarmayı ve server-side apply çakışmalarını gerçek çıktılarla görüyoruz.

15 Kas 2026 15 dk 6
Blog Haritası