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
8 yazı bulundu
Aspire Nedir, Ne Değildir? AppHost, App Model ve Docker Compose/Kubernetes ile Farkı
Backend SERİ 01

Aspire Nedir, Ne Değildir? AppHost, App Model ve Docker Compose/Kubernetes ile Farkı

Aspire, çok service'li bir uygulamanın parçalarını ve bağlantılarını AppHost'ta kodla tarif edip tek komutla çalıştıran, telemetry'sini dashboard'da toplayan lokal bir orchestration ve observability katmanı; production orchestrator'ı ya da service mesh değil. Yazı Bookstore'a aspire init ile AppHost eklemeyi, DCP proxy'sini, Aspire'ın verdiği environment variable'ları ve ServiceDefaults olmadan neden trace görünmediğini gerçek çıktılarla gösteriyor.

14 Kas 2026 14 dk 8
AppHost ile Orchestration: Resource'lar, WithReference, WaitFor, Parameter'lar ve Kalıcı Container'lar
Backend SERİ 02

AppHost ile Orchestration: Resource'lar, WithReference, WaitFor, Parameter'lar ve Kalıcı Container'lar

AppHost'ta her parça bir resource: project, container ya da executable; WithReference connection string'i ve connection property'lerini environment variable olarak veriyor, WaitFor sağlıklı olmayı, WaitForCompletion bir işin 0 koduyla bitmesini bekliyor. Yazı Bookstore'a SQL Server, Redis ve migration worker'ı ekliyor; exception fırlatan worker'ın 0 koduyla çıkıp API'yi başlattığı tuzağı, secret parameter'ları ve kalıcı container'ları gerçek çıktılarla gösteriyor.

14 Kas 2026 12 dk 12
Service Discovery ve ServiceDefaults: "https+http://catalog" Nasıl Çözülür, Varsayılanlar Ne Yapar?
Backend SERİ 03

Service Discovery ve ServiceDefaults: "https+http://catalog" Nasıl Çözülür, Varsayılanlar Ne Yapar?

"https+http://catalog" adresi, Aspire'ın verdiği services__catalog__http__0 değişkeninden okunan Services:catalog configuration'ıyla çözülür; kayıt yoksa ad olduğu gibi DNS'e bırakılır, bu yüzden aynı kod production'da da çalışır. Yazı çözümleme log'larını, template'teki AllowedSchemes yorumunun AllowAllSchemes kapatılmadan işe yaramadığını, ServiceDefaults'un içini, durmuş bir service için 30 saniyelik beklemeyi 5 saniyeye indirmeyi ve YARP gateway'i gerçek çıktılarla gösteriyor.

14 Kas 2026 11 dk 10
Aspire Dashboard: Log, Trace ve Metric'leri Okumak, Standalone Kullanım ve Telemetry'nin Kalıcılığı
Backend SERİ 04

Aspire Dashboard: Log, Trace ve Metric'leri Okumak, Standalone Kullanım ve Telemetry'nin Kalıcılığı

Aspire dashboard, service'lerin OTLP ile gönderdiği log, trace ve metric'leri tek yerde gösteren bir geliştirme aracı; 13.6'dan beri her çalıştırmayı SQLite'ta saklıyor, Aspire olmadan da tek başına çalışıyor ama production observability aracı değil. Yazı yavaş bir siparişin waterfall'unda index'siz bir EF Core sorgusunu ve sıralı service çağrılarını bulup süreyi 69 ms'den 5 ms'ye indiriyor; aspire otel, export ve API key'li standalone dashboard'u gerçek çıktılarla gösteriyor.

14 Kas 2026 11 dk 12
Aspire Integration'ları: Hosting ve Client Integration'ları, SQL Server, Redis, RabbitMQ, Keycloak ve Kendi Resource'un
Backend SERİ 05

Aspire Integration'ları: Hosting ve Client Integration'ları, SQL Server, Redis, RabbitMQ, Keycloak ve Kendi Resource'un

Hosting integration resource'u AppHost'ta modeller, client integration ise service'e client library'yi health check, telemetry ve retry ile birlikte kaydeder; bu varsayılanlar her bağımlılığa uymaz. Yazı Redis düşünce kataloğu 12 saniye bekleten ve unhealthy yapan ayarları düzeltiyor, RabbitMQ ile sipariş olayını consumer span'ıyla aynı trace'te gösteriyor, Keycloak ile back office endpoint'ini koruyor ve dashboard'a kendi komutunu ekliyor; hepsi gerçek çıktılarla.

14 Kas 2026 14 dk 11
Aspire ile Test: Aspire.Hosting.Testing ile Tüm Sistemi Ayağa Kaldıran Uçtan Uca Testler
Backend SERİ 06

Aspire ile Test: Aspire.Hosting.Testing ile Tüm Sistemi Ayağa Kaldıran Uçtan Uca Testler

Aspire.Hosting.Testing, AppHost'u bir test fixture'ında gerçekten başlatıp resource'lara HttpClient veriyor; birkaç kritik uçtan uca senaryo için uygun, service içi testlerin yerini almıyor. Yazı testin geliştirici veritabanına dokunmamasını, her senaryonun yalnız ihtiyacı olan container'ları başlatmasını, template'teki retry'ın POST'u tekrarlayıp 409 ürettiği hatayı ve asenkron onayı Task.Delay yerine polling ile beklemeyi gerçek çıktılarla gösteriyor.

14 Kas 2026 12 dk 11
Aspire ile Deploy: publish, deploy ve do; Docker Compose, Kubernetes ve Azure Hedefleri
Backend SERİ 07

Aspire ile Deploy: publish, deploy ve do; Docker Compose, Kubernetes ve Azure Hedefleri

aspire publish AppHost'tan yer tutuculu artifact (Compose dosyası, Helm chart'ı) üretir, aspire deploy değerleri çözüp image'ları build ederek hedefe uygular, aspire do tek bir pipeline adımını çalıştırır. Yazı Bookstore'u Docker Compose'a deploy ederken dışarı açılmayan gateway'i, production'a sızan seed verisini, https olmayan Keycloak Authority'sini ve Angular çıktı klasörünü düzeltiyor; Helm chart'ını, registry ihtiyacını ve Azure hedeflerini anlatıyor.

14 Kas 2026 12 dk 10
.NET Aspire 8'den Aspire 13.6'ya: Sürüm Geçmişi, Breaking Change'ler ve Eski Projeyi Taşımak
Backend SERİ 08

.NET Aspire 8'den Aspire 13.6'ya: Sürüm Geçmişi, Breaking Change'ler ve Eski Projeyi Taşımak

Aspire 8.0'daki workload ve manifest modelinden 9.x'in SDK'sına ve 13.0'daki ad değişikliği, .NET 10 şartı ve pipeline'a geçti; 13.x'in her minor sürümü kendi kırıcı değişiklikleriyle geliyor. Yazı sürüm çizgisini özetliyor ve Aspire 9.5 ile yazılmış bir projeyi aspire update ile 13.6'ya taşıyıp komutun yapmadıklarını (net10.0, AddNpmApp, lifecycle hook, launch profile) gerçek çıktılarla gösteriyor.

14 Kas 2026 10 dk 10
Blog Haritası