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
7 yazı bulundu
Configuration mı, Secret mı? Ayarları Sınıflandırmak, Twelve-Factor ve Secret'ların Sızdığı Yerler
DevOps SERİ 01

Configuration mı, Secret mı? Ayarları Sınıflandırmak, Twelve-Factor ve Secret'ların Sızdığı Yerler

Secret, ele geçirilince birinin senin adına iş yapabildiği her ayardır ve tek doğal yeri bir secret store'dur; build-time, runtime ve environment'a özgü config ise repo'da ya da environment'ta durabilir. Bookstore üzerinde Git geçmişinde kalan key'i, docker inspect, /proc/environ ve createdump ile görünen connection string'i, Angular bundle'ındaki API key'ini gerçek çıktılarla görüyor ve serinin hedefi olan secret'sız erişime giden envanteri çıkarıyoruz.

14 Kas 2026 11 dk 8
Tek Artifact, Çok Environment: .NET'te Configuration Layering, Environment Variable'lar ve Angular'da Runtime Config
DevOps SERİ 02

Tek Artifact, Çok Environment: .NET'te Configuration Layering, Environment Variable'lar ve Angular'da Runtime Config

Tek artifact'i çok environment'ta çalıştırmanın yolu, artifact'e yalnızca ortak varsayılanları koyup environment'a özgü değerleri deploy anında environment variable ya da runtime config dosyasıyla vermektir. .NET 10'da provider sırasını ölçüyor (BOOKSTORE_ öneki command line'ı ezer, ASPNETCORE_ öneki appsettings'e yenilir), ValidateOnStart ve [OptionsValidator] ile fail fast kuruyor, Angular'da provideAppInitializer ve nginx entrypoint'iyle config.json'u runtime'da üretiyoruz.

14 Kas 2026 13 dk 9
Azure Key Vault ile .NET: Managed Identity, RBAC, Configuration Provider ve Production'da Doğru Credential
DevOps SERİ 03

Azure Key Vault ile .NET: Managed Identity, RBAC, Configuration Provider ve Production'da Doğru Credential

Bir .NET uygulaması Key Vault'a parola taşımadan, managed identity ve vault seviyesinde verilmiş Key Vault Secrets User rolüyle erişmeli; production'da DefaultAzureCredential yerine ManagedIdentityCredential kullanılmalı. AddAzureKeyVault'u prefix'li secret manager ve ReloadInterval ile kuruyor, yerel emulator'de reload'u, managed identity yokken üç dakikalık açılışı ve App Service'te çözülemeyen reference'ın değer olarak kalmasını gerçek çıktılarla görüyoruz.

14 Kas 2026 12 dk 8
Azure App Configuration: Merkezi Configuration, Label'larla Environment'lar, Sentinel Key ile Yenileme ve Key Vault Reference'ları
DevOps SERİ 04

Azure App Configuration: Merkezi Configuration, Label'larla Environment'lar, Sentinel Key ile Yenileme ve Key Vault Reference'ları

Azure App Configuration, birden çok servisin paylaştığı ve deploy'suz değişmesi gereken gizli olmayan ayarlar içindir; secret'lar Key Vault'ta kalır, store'da yalnızca reference durur. Resmi emulator üzerinde label'larla environment ayırmayı, sentinel key değişmeden ayarın yansımadığını, çözülemeyen Key Vault reference'ının açılışı durdurduğunu ve 1 saniyelik refresh alt sınırını gerçek çıktılarla görüyor, değişikliği pull request ve pipeline ile yönetiyoruz.

14 Kas 2026 10 dk 11
HashiCorp Vault ve OpenBao: KV, Auth Method'lar, Policy'ler ve SQL Server için Dynamic Credential
DevOps SERİ 05

HashiCorp Vault ve OpenBao: KV, Auth Method'lar, Policy'ler ve SQL Server için Dynamic Credential

Vault ve OpenBao, veritabanı için her açılışta yeni ve kısa ömürlü bir kullanıcı üretir; uygulamayı Vault'tan habersiz tutmanın en iyi yolu Vault Agent'ın yazdığı dosyayı reloadOnChange ile okumaktır. KV v2, policy ve AppRole'u kuruyor; SQL Server'da lease yenilemeyi, saklanan connection string'in revoke sonrası "Login failed" ile düşmesini, KILL yetkisi olmayan revoke'un takılmasını ve OpenBao'da SQL Server plugin'i olmadığını gerçek çıktılarla görüyoruz.

14 Kas 2026 13 dk 12
Container ve Kubernetes'te Secret: External Secrets Operator, Secrets Store CSI Driver ve Workload Identity
DevOps SERİ 06

Container ve Kubernetes'te Secret: External Secrets Operator, Secrets Store CSI Driver ve Workload Identity

Kubernetes'te secret'ın kaynağı Vault ya da Key Vault olmalı; External Secrets Operator onu Kubernetes Secret'ına, Secrets Store CSI Driver doğrudan pod'un volume'una taşır. kind'de ölçtük: Vault'taki değişiklik volume'u okuyan pod'a yaklaşık 56 saniyede yansıdı, environment variable'lı pod restart'a kadar eski değeri gördü. CSI'da rotation'ın varsayılan kapalı olduğunu, ARG ile verilen token'ın docker history'de kaldığını ve BuildKit secret mount ile Compose secrets'ı da görüyoruz.

14 Kas 2026 12 dk 10
Secret Rotation ve Sızıntı Müdahalesi: Kesintisiz Rotation, Sızan Secret'ta İlk 60 Dakika ve Secret'sız Mimari
DevOps SERİ 07

Secret Rotation ve Sızıntı Müdahalesi: Kesintisiz Rotation, Sızan Secret'ta İlk 60 Dakika ve Secret'sız Mimari

Kesintisiz rotation için bir süre iki secret birlikte geçerli sayılır: yeni secret önce kabul eden tarafa eklenir, her yere yayılınca kullanılmaya başlanır, eski secret ölçümle kaldırılır. Bookstore'un ödeme webhook'unda primary ve secondary secret ile restart'sız rotation'ı, Vault audit log'uyla sızıntı kapsamını çıkarmayı, Key Vault'un SecretNearExpiry olayıyla otomasyonu ve Bookstore'un Azure'a ve veritabanına erişen secret sayısını sıfıra indiren secret'sız mimariyi görüyoruz.

14 Kas 2026 10 dk 8
Blog Haritası