<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cloud-Native | The .NET Blog</title><link>https://thedotnetblog.com/tr/tags/cloud-native/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>tr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tr/tags/cloud-native/index.xml" rel="self" type="application/rss+xml"/><item><title>Python, TypeScript ve .NET ile azd Hook Yazma: Shell Script'lere Veda</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLI artık Python, JavaScript, TypeScript veya .NET ile hook yazmayı destekliyor. Sadece bir migrasyon scripti çalıştırmak için Bash'e geçmek zorunda kalmayacaksınız.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Tamamen .NET ile yazılmış bir projeniz olmasına rağmen azd hook&amp;rsquo;ları için Bash scriptleri yazmak zorunda kaldıysanız, bu acıyı iyi biliyorsunuzdur. Projenin geri kalanı C# iken, neden bir pre-provisioning adımı için shell sözdizimine geçiş yapmak zorunda kalınsın?&lt;/p&gt;
&lt;p&gt;Bu hayal kırıklığı artık resmi bir çözüme kavuştu. Azure Developer CLI &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;hook&amp;rsquo;lar için çok dilli destek yayımladı&lt;/a&gt; ve tam olarak duyulduğu kadar iyi.&lt;/p&gt;
&lt;h2 id="hook-nedir"&gt;Hook nedir?&lt;/h2&gt;
&lt;p&gt;Hook&amp;rsquo;lar, &lt;code&gt;azd&lt;/code&gt; yaşam döngüsünün kritik noktalarında çalışan scriptlerdir — provisioning öncesi, deployment sonrası vb. &lt;code&gt;azure.yaml&lt;/code&gt; içinde tanımlanır ve CLI&amp;rsquo;yi değiştirmeden özel mantık eklemenizi sağlar.&lt;/p&gt;
&lt;p&gt;Önceden yalnızca Bash ve PowerShell destekleniyordu. Artık &lt;strong&gt;Python, JavaScript, TypeScript veya .NET&lt;/strong&gt; kullanılabilir — &lt;code&gt;azd&lt;/code&gt; geri kalanını otomatik olarak halleder.&lt;/p&gt;
&lt;h2 id="algılama-nasıl-çalışır"&gt;Algılama nasıl çalışır&lt;/h2&gt;
&lt;p&gt;Yalnızca hook&amp;rsquo;u bir dosyaya yönlendirin; &lt;code&gt;azd&lt;/code&gt; uzantıdan dili çıkarır:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postdeploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/seed.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ek yapılandırma gerekmez. Uzantı belirsizse &lt;code&gt;kind: python&lt;/code&gt; (veya ilgili dil) ile açıkça belirtebilirsiniz.&lt;/p&gt;
&lt;h2 id="dile-göre-önemli-ayrıntılar"&gt;Dile göre önemli ayrıntılar&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Scriptin yanına (veya herhangi bir üst dizine) &lt;code&gt;requirements.txt&lt;/code&gt; ya da &lt;code&gt;pyproject.toml&lt;/code&gt; koyun. &lt;code&gt;azd&lt;/code&gt; otomatik olarak sanal ortam oluşturur, bağımlılıkları kurar ve scripti çalıştırır.&lt;/p&gt;
&lt;h3 id="javascript-ve-typescript"&gt;JavaScript ve TypeScript&lt;/h3&gt;
&lt;p&gt;Aynı desen — script yakınına &lt;code&gt;package.json&lt;/code&gt; koyun ve &lt;code&gt;azd&lt;/code&gt; önce &lt;code&gt;npm install&lt;/code&gt; çalıştırır. TypeScript için derleme adımı ve &lt;code&gt;tsconfig.json&lt;/code&gt; gerekmeden &lt;code&gt;npx tsx&lt;/code&gt; kullanılır.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;İki mod mevcuttur:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Proje modu&lt;/strong&gt;: Script yanında &lt;code&gt;.csproj&lt;/code&gt; varsa &lt;code&gt;azd&lt;/code&gt; otomatik olarak &lt;code&gt;dotnet restore&lt;/code&gt; ve &lt;code&gt;dotnet build&lt;/code&gt; çalıştırır.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tek dosya modu&lt;/strong&gt;: .NET 10+ sürümünde bağımsız &lt;code&gt;.cs&lt;/code&gt; dosyaları &lt;code&gt;dotnet run script.cs&lt;/code&gt; ile doğrudan çalıştırılabilir. Proje dosyası gerekmez.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executora-özgü-yapılandırma"&gt;Executor&amp;rsquo;a özgü yapılandırma&lt;/h2&gt;
&lt;p&gt;Her dil isteğe bağlı bir &lt;code&gt;config&lt;/code&gt; bloğunu destekler:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="net-geliştiricileri-için-önemi"&gt;.NET geliştiricileri için önemi&lt;/h2&gt;
&lt;p&gt;Hook&amp;rsquo;lar, azd tabanlı bir projede dil değiştirmeyi zorunlu kılan son yerdi. Artık uygulama kodu, altyapı scriptleri ve yaşam döngüsü hook&amp;rsquo;ları dahil tüm deployment pipeline&amp;rsquo;ı tek bir dilde yaşayabilir. Mevcut .NET yardımcı programlarını hook&amp;rsquo;larda yeniden kullanabilir, paylaşılan kütüphanelere referans verebilir ve shell script bakımından kurtulabilirsiniz.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Küçük görünse de azd günlük iş akışından çok fazla sürtünme kaldıran değişikliklerden biri. Hook&amp;rsquo;lar için çok dilli destek şu anda kullanılabilir — &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;resmi gönderi&lt;/a&gt;nde tam belgelere ulaşabilirsiniz.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2, MongoDB EF Core ve Azure Data Lake Desteği Kazandı — Denemeye Değer İki Entegrasyon</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/</guid><description>Aspire 13.2, sıfır yapılandırmalı sağlık kontrolleri ve servis keşfi ile MongoDB Entity Framework Core ve Azure Data Lake Storage entegrasyonları ekliyor. Bunların pratikte nasıl göründüğü.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aspire 13.2 dikkatinizi çekmeye değer &lt;a href="https://devblogs.microsoft.com/aspire/aspire-new-database-integrations/"&gt;iki yeni veritabanı entegrasyonuyla&lt;/a&gt; yayımlandı: MongoDB Entity Framework Core ve Azure Data Lake Storage. Bir Aspire uygulamasında MongoDB ile EF Core kullanmak istiyorsanız veya uygun servis keşfiyle data lake iş yüklerini bağlamanız gerekiyorsa, bu sürüm her ikisini de sunuyor.&lt;/p&gt;
&lt;h2 id="mongodb-aspireda-ef-core-ile-buluşuyor"&gt;MongoDB, Aspire&amp;rsquo;da EF Core ile buluşuyor&lt;/h2&gt;
&lt;p&gt;En çok heyecanlandığım bu. Aspire bir süredir MongoDB&amp;rsquo;yi destekliyordu ama her zaman ham sürücüydü — EF Core yok, &lt;code&gt;DbContext&lt;/code&gt; yok, belgelerinize karşı LINQ sorgusu yok. Artık MongoDB ile tam EF Core deneyimini, ayrıca Aspire&amp;rsquo;ın otomatik sağlık kontrolleri ve servis keşfini elde ediyorsunuz.&lt;/p&gt;
&lt;p&gt;Kurulum, tipik Aspire desenidir. AppHost&amp;rsquo;unuzda:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;mongodb&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddMongoDB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mongodb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithDataVolume&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithLifetime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ContainerLifetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Persistent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;apiService&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddProject&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ApiService&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mongodb&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ardından tüketen projenize EF Core entegrasyonunu ekleyin:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Aspire.MongoDB.EntityFrameworkCore
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ve &lt;code&gt;DbContext&lt;/code&gt;&amp;lsquo;inizi kaydedin:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddMongoDbContext&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;MyDbContext&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mongodb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;mydb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Oradan itibaren standart EF Core. Varlıklarınızı tanımlayın, &lt;code&gt;DbContext&lt;/code&gt;&amp;lsquo;inizi herhangi bir sağlayıcıyla kullandığınız gibi kullanın. Entegrasyon, bağlantı havuzlamasını, OpenTelemetry izlerini ve sağlık kontrollerini arka planda yönetir.&lt;/p&gt;
&lt;p&gt;Ham sürücüyle MongoDB kullanan ve bağlantı dizelerini manuel olarak ayarlayan .NET geliştiricileri için bu, güzel bir yaşam kalitesi yükseltmesi. Aspire&amp;rsquo;ın servis keşfini kaybetmeden tam EF Core soyutlamasını elde ediyorsunuz.&lt;/p&gt;
&lt;h2 id="azure-data-lake-storage-katılıyor"&gt;Azure Data Lake Storage katılıyor&lt;/h2&gt;
&lt;p&gt;İkinci büyük ekleme, &lt;a href="https://aspire.dev/integrations/cloud/azure/azure-storage-datalake/"&gt;Azure Data Lake Storage (ADLS) entegrasyonu&lt;/a&gt;. Veri pipeline&amp;rsquo;ları, ETL süreçleri veya analitik platformlar geliştiriyorsanız, artık Data Lake kaynaklarını herhangi bir diğer Aspire bağımlılığını bağladığınız gibi bağlayabilirsiniz.&lt;/p&gt;
&lt;p&gt;AppHost&amp;rsquo;ta:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddAzureStorage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;azure-storage&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;dataLake&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddDataLake&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;fileSystem&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddDataLakeFileSystem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake-file-system&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;analyticsService&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddProject&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AnalyticsService&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;analytics&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataLake&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WithReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileSystem&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tüketen projede:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddAzureDataLakeServiceClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddAzureDataLakeFileSystemClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake-file-system&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Manuel bağlantı dizesi yönetimi yok, kimlik bilgisi avcılığı yok. Aspire kaynakları sağlar ve enjekte eder. Hem operasyonel veriye hem de analitik iş yüklerine dokunan cloud-native .NET uygulamaları geliştiriyorsanız, bu data lake&amp;rsquo;i Aspire modelinde birinci sınıf vatandaş gibi hissettiriyor.&lt;/p&gt;
&lt;h2 id="önemli-küçük-düzeltmeler"&gt;Önemli küçük düzeltmeler&lt;/h2&gt;
&lt;p&gt;Manşet özelliklerin ötesinde, dikkate değer birkaç yaşam kalitesi iyileştirmesi var:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MongoDB bağlantı dizesi düzeltmesi&lt;/strong&gt; — veritabanı adından önce eğik çizgi artık doğru şekilde işleniyor. Bunun etrafından dolaşıyorsanız, o geçici çözümü kaldırabilirsiniz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Server dışa aktarmaları&lt;/strong&gt; — &lt;code&gt;Aspire.Hosting.SqlServer&lt;/code&gt; artık daha ince ayarlı kontrol için ek sunucu yapılandırma seçenekleri dışa aktarıyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emülatör güncellemeleri&lt;/strong&gt; — ServiceBus emülatörü 2.0.0, App Configuration emülatörü 1.0.2 ve CosmosDB&amp;rsquo;nin önizleme emülatörü artık bir hazır olma kontrolü içeriyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Managed Redis&lt;/strong&gt; — artık varsayılan olarak &lt;code&gt;rediss://&lt;/code&gt; (Redis Secure) kullanıyor; bağlantılar kutudan çıktığı gibi şifreli&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Son madde ince ama önemli — varsayılan olarak şifreli Redis, üretimde yapılandırılacak bir şey daha az demek.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 artımlı bir sürüm, ancak MongoDB EF Core ve Data Lake entegrasyonları gerçek boşlukları dolduruyor. Aspire&amp;rsquo;da MongoDB için uygun EF Core desteğini bekliyorsanız veya Data Lake&amp;rsquo;in birinci sınıf bağımlılık olmasına ihtiyacınız varsa, &lt;a href="https://get.aspire.dev"&gt;13.2&amp;rsquo;ye yükseltin&lt;/a&gt; ve bir deneyin. &lt;code&gt;aspire add&lt;/code&gt; komutu ihtiyacınız olan her şeyi iskelet haline getiriyor.&lt;/p&gt;
&lt;p&gt;Daha fazla ayrıntı için &lt;a href="https://aspire.dev/whats-new/aspire-13-2/#-integrations-updates"&gt;tam sürüm notlarını&lt;/a&gt; okuyun ve tam liste için &lt;a href="https://aspire.dev/integrations/gallery/"&gt;entegrasyon galerisine&lt;/a&gt; göz atın.&lt;/p&gt;</content:encoded></item><item><title>Azure Smart Tier Genel Kullanıma Açıldı — Yaşam Döngüsü Kuralları Olmadan Otomatik Blob Depolama Maliyet Optimizasyonu</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</guid><description>Azure Blob Storage smart tier artık genel kullanıma açık; nesneleri gerçek erişim kalıplarına göre hot, cool ve cold katmanları arasında otomatik olarak taşıyor — yaşam döngüsü kurallarına gerek yok.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Azure Blob Storage yaşam döngüsü politikalarını ayarlamak için zaman harcadınız ve ardından erişim kalıpları değişince bunların çöktüğünü izlediyseniz, bu yazı sizin için. Microsoft, Azure Blob ve Data Lake Storage için &lt;a href="https://azure.microsoft.com/en-us/blog/optimize-object-storage-costs-automatically-with-smart-tier-now-generally-available/"&gt;smart tier&amp;rsquo;ın genel kullanıma açıldığını&lt;/a&gt; duyurdu — nesneleri gerçek kullanıma göre hot, cool ve cold katmanları arasında otomatik olarak taşıyan, tam yönetimli bir katmanlama özelliği.&lt;/p&gt;
&lt;h2 id="smart-tier-aslında-ne-yapıyor"&gt;Smart tier aslında ne yapıyor&lt;/h2&gt;
&lt;p&gt;Konsept basit: smart tier, depolama hesabınızdaki her nesnenin son erişim zamanını sürekli değerlendiriyor. Sık erişilen veriler hot&amp;rsquo;ta kalıyor, etkin olmayan veriler 30 gün sonra cool&amp;rsquo;a geçiyor ve ardından 60 gün sonra cold&amp;rsquo;a iniyor. Verilere tekrar erişildiğinde hemen hot&amp;rsquo;a geri yükseltiliyor. Döngü yeniden başlıyor.&lt;/p&gt;
&lt;p&gt;Yapılandırılacak yaşam döngüsü kuralı yok. Erişim kalıbı tahmini yok. Manuel ayarlama yok.&lt;/p&gt;
&lt;p&gt;Önizleme sürecinde Microsoft, &lt;strong&gt;smart tier tarafından yönetilen kapasitenin %50&amp;rsquo;sinden fazlasının gerçek erişim kalıplarına göre otomatik olarak daha soğuk katmanlara geçtiğini&lt;/strong&gt; bildirdi. Büyük depolama hesapları için bu anlamlı bir maliyet azalması.&lt;/p&gt;
&lt;h2 id="bu-net-geliştiricileri-için-neden-önemli"&gt;Bu .NET geliştiricileri için neden önemli&lt;/h2&gt;
&lt;p&gt;Günlük, telemetri, analitik veri veya büyüyen herhangi bir veri kümesi üreten uygulamalar geliştiriyorsanız — ki dürüst olmak gerekirse kim üretmiyor — depolama maliyetleri hızla artıyor. Geleneksel yaklaşım, yaşam döngüsü yönetim politikaları yazmak, bunları test etmek ve uygulamanızın erişim kalıpları değiştiğinde yeniden ayarlamaktı. Smart tier bu iş akışının tamamını ortadan kaldırıyor.&lt;/p&gt;
&lt;p&gt;Bunun işe yaradığı pratik senaryolar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Uygulama telemetrisi ve günlükleri&lt;/strong&gt; — hata ayıklama sırasında hot, birkaç hafta sonra nadiren erişilen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Veri pipeline&amp;rsquo;ları ve ETL çıktıları&lt;/strong&gt; — işleme sırasında yoğun erişim, ardından çoğunlukla cold&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kullanıcı tarafından oluşturulan içerik&lt;/strong&gt; — son yüklemeler hot, eski içerik zamanla soğuyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Yedekleme ve arşiv verileri&lt;/strong&gt; — uyumluluk için ara sıra erişilen, çoğunlukla atıl&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="kurulum"&gt;Kurulum&lt;/h2&gt;
&lt;p&gt;Smart tier&amp;rsquo;ı etkinleştirmek tek seferlik bir yapılandırma:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Yeni hesaplar&lt;/strong&gt;: Depolama hesabı oluşturma sırasında varsayılan erişim katmanı olarak smart tier&amp;rsquo;ı seçin (bölgesel yedeklilik gereklidir)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mevcut hesaplar&lt;/strong&gt;: Blob erişim katmanını mevcut varsayılandan smart tier&amp;rsquo;a geçirin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;128 KiB&amp;rsquo;den küçük nesneler hot&amp;rsquo;ta kalır ve izleme ücretine tabi değildir. Diğer her şey için katman geçiş ücreti, erken silme ücreti ve veri alma maliyeti olmaksızın standart hot/cool/cold kapasite ücretleri ödüyorsunuz. Nesne başına aylık bir izleme ücreti orkestrasyon maliyetini karşılıyor.&lt;/p&gt;
&lt;h2 id="bilmeniz-gereken-takas"&gt;Bilmeniz gereken takas&lt;/h2&gt;
&lt;p&gt;Smart tier&amp;rsquo;ın katmanlama kuralları sabit (30 gün → cool, 90 gün → cold). Belirli bir iş yükü için 7 günde cool&amp;rsquo;a geçmek gibi özel eşikler ihtiyacınız varsa, yaşam döngüsü kuralları hâlâ doğru seçenek. İkisini de karıştırmayın: smart tier tarafından yönetilen nesnelerde yaşam döngüsü kurallarından kaçının, çünkü çakışabilirler.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Bu devrim niteliğinde değil, ama gerçek bir operasyonel baş ağrısını çözüyor. Büyüyen blob depolama hesaplarını yönetiyorsanız ve yaşam döngüsü politikalarını korumaktan bıktıysanız, &lt;a href="https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-smart"&gt;smart tier&amp;rsquo;ı etkinleştirin&lt;/a&gt; ve Azure&amp;rsquo;un üstlenmesine izin verin. Neredeyse tüm bölgesel genel bulut bölgelerinde bugün itibariyle kullanılabilir.&lt;/p&gt;</content:encoded></item><item><title>Azure'da AI Ajanlarınızı Nerede Barındırmalısınız? Pratik Bir Karar Rehberi</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</guid><description>Azure, AI ajanları barındırmak için ham container'lardan tam yönetimli Foundry Hosted Agents'a kadar altı yol sunuyor. .NET iş yükünüz için doğru seçeneği nasıl belirleyeceğinizi burada bulabilirsiniz.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Şu an .NET ile AI ajanları geliştiriyorsanız, muhtemelen bunu fark etmişsinizdir: Azure&amp;rsquo;da bunları barındırmanın &lt;em&gt;pek çok&lt;/em&gt; yolu var. Container Apps, AKS, Functions, App Service, Foundry Agents, Foundry Hosted Agents — ve gerçekten birini seçmeniz gerekene kadar hepsi makul görünüyor. Microsoft, bunu netleştiren &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;Azure AI ajan barındırma için kapsamlı bir rehber&lt;/a&gt; yayımladı ve ben bunu pratik bir .NET geliştirici perspektifinden ele almak istiyorum.&lt;/p&gt;
&lt;h2 id="altı-seçeneğe-genel-bakış"&gt;Altı seçeneğe genel bakış&lt;/h2&gt;
&lt;p&gt;Ortamı şöyle özetlerim:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Seçenek&lt;/th&gt;
&lt;th&gt;En iyi kullanım&lt;/th&gt;
&lt;th&gt;Siz yönetirsiniz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Container Apps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;K8s karmaşıklığı olmadan tam container kontrolü&lt;/td&gt;
&lt;td&gt;Gözlemlenebilirlik, durum, yaşam döngüsü&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AKS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Kurumsal uyumluluk, çok kümeli, özel ağ&lt;/td&gt;
&lt;td&gt;Her şey (bu onun amacı)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Azure Functions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Olay odaklı, kısa süren ajan görevleri&lt;/td&gt;
&lt;td&gt;Çok az — gerçek serverless&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;App Service&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Basit HTTP ajanları, öngörülebilir trafik&lt;/td&gt;
&lt;td&gt;Dağıtım, ölçeklendirme yapılandırması&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foundry Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Portal/SDK aracılığıyla kod gerektirmeyen ajanlar&lt;/td&gt;
&lt;td&gt;Neredeyse hiçbir şey&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foundry Hosted Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yönetilen altyapıyla özel framework ajanları&lt;/td&gt;
&lt;td&gt;Yalnızca ajan kodunuz&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;İlk dördü genel amaçlı işlem — üzerlerinde ajan &lt;em&gt;çalıştırabilirsiniz&lt;/em&gt;, ancak bunlar bunun için tasarlanmadı. Son ikisi ajan doğasında: konuşmaları, araç çağrılarını ve ajan yaşam döngülerini birinci sınıf kavramlar olarak anlıyorlar.&lt;/p&gt;
&lt;h2 id="foundry-hosted-agents--net-ajan-geliştiricileri-için-tatlı-nokta"&gt;Foundry Hosted Agents — .NET ajan geliştiricileri için tatlı nokta&lt;/h2&gt;
&lt;p&gt;İşte dikkatimi çeken kısım. Foundry Hosted Agents tam ortada duruyor: kendi kodunuzu çalıştırma esnekliğini alıyorsunuz (Semantic Kernel, Agent Framework, LangGraph — her neyse), ancak platform altyapıyı, gözlemlenebilirliği ve konuşma yönetimini üstleniyor.&lt;/p&gt;
&lt;p&gt;Kilit parça &lt;strong&gt;Hosting Adapter&lt;/strong&gt; — ajan framework&amp;rsquo;ünüzü Foundry platformuna köprüleyen ince bir soyutlama katmanı. Microsoft Agent Framework için şöyle görünüyor:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.agentserver.agentframework&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;from_agent_framework&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ChatAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;chat_client&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;AzureAIAgentClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;You are a helpful assistant.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;get_local_time&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;from_agent_framework&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Barındırma hikayenizin tamamı bu. Adapter, protokol çevirisini, server-sent events aracılığıyla streaming&amp;rsquo;i, konuşma geçmişini ve OpenTelemetry izlemeyi otomatik olarak hallediyor. Özel middleware yok, manuel bağlantı yok.&lt;/p&gt;
&lt;h2 id="dağıtım-gerçekten-basit"&gt;Dağıtım gerçekten basit&lt;/h2&gt;
&lt;p&gt;Daha önce Container Apps&amp;rsquo;e ajan dağıttım ve çalışıyor, ancak durum yönetimi ve gözlemlenebilirlik için çok fazla yapıştırıcı kod yazıyorsunuz. Hosted Agents ve &lt;code&gt;azd&lt;/code&gt; ile dağıtım şöyle:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# AI agent uzantısını yükle&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ext install azure.ai.agents
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Bir şablondan başlat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Derle, gönder, dağıt — tamam&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tek &lt;code&gt;azd up&lt;/code&gt; komutu, container&amp;rsquo;ınızı derliyor, ACR&amp;rsquo;a gönderiyor, Foundry projesini oluşturuyor, model endpoint&amp;rsquo;lerini dağıtıyor ve ajanınızı başlatıyor. Beş adım tek komuta indirgeniyor.&lt;/p&gt;
&lt;h2 id="yerleşik-konuşma-yönetimi"&gt;Yerleşik konuşma yönetimi&lt;/h2&gt;
&lt;p&gt;Bu, üretimde en çok zaman kazandıran kısım. Kendi konuşma durum deposunuzu oluşturmak yerine, Hosted Agents bunu doğal olarak hallediyor:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Kalıcı bir konuşma oluştur&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# İlk tur&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;response1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MyAgent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Unutma: favori numaram 42.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# İkinci tur — bağlam korunuyor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;response2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MyAgent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Favori numamı 10 ile çarp.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Redis yok. Cosmos DB oturum deposu yok. Mesaj serileştirme için özel middleware yok. Platform sadece hallediyor.&lt;/p&gt;
&lt;h2 id="karar-çerçevem"&gt;Karar çerçevem&lt;/h2&gt;
&lt;p&gt;Altı seçeneğin tamamını inceledikten sonra, işte hızlı zihinsel modelim:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sıfır altyapı mı istiyorsunuz?&lt;/strong&gt; → Foundry Agents (portal/SDK, container yok)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Özel ajan kodunuz var ama yönetilen barındırma mı istiyorsunuz?&lt;/strong&gt; → Foundry Hosted Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Olay odaklı, kısa ömürlü ajan görevlerine mi ihtiyacınız var?&lt;/strong&gt; → Azure Functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;K8s olmadan maksimum container kontrolü mü istiyorsunuz?&lt;/strong&gt; → Container Apps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Katı uyumluluk ve çok kümeli mimariye mi ihtiyacınız var?&lt;/strong&gt; → AKS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Öngörülebilir trafikli basit bir HTTP ajanınız mı var?&lt;/strong&gt; → App Service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Semantic Kernel veya Microsoft Agent Framework ile geliştiren çoğu .NET geliştirici için, Hosted Agents muhtemelen doğru başlangıç noktası. Sıfıra ölçekleme, yerleşik OpenTelemetry, konuşma yönetimi ve framework esnekliği alıyorsunuz — Kubernetes yönetmeden veya kendi gözlemlenebilirlik yığınınızı bağlamadan.&lt;/p&gt;
&lt;h2 id="özet"&gt;Özet&lt;/h2&gt;
&lt;p&gt;Azure&amp;rsquo;daki ajan barındırma ortamı hızla olgunlaşıyor. Bugün yeni bir AI ajan projesi başlatıyorsanız, alışkanlıkla Container Apps veya AKS&amp;rsquo;e uzanmadan önce Foundry Hosted Agents&amp;rsquo;ı ciddi olarak değerlendirirdim. Yönetilen altyapı gerçek zaman kazandırıyor ve hosting adapter modeli, framework seçiminizi korumanıza olanak tanıyor.&lt;/p&gt;
&lt;p&gt;Çalışan örnekler için &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;Microsoft&amp;rsquo;ın tam rehberine&lt;/a&gt; ve &lt;a href="https://github.com/microsoft-foundry/foundry-samples/tree/main/samples/python/hosted-agents"&gt;Foundry Samples reposuna&lt;/a&gt; göz atın.&lt;/p&gt;</content:encoded></item><item><title>KubeCon Avrupa 2026: .NET Geliştiricilerinin Gerçekten Önemsemesi Gerekenler</title><link>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/</guid><description>Microsoft, KubeCon Avrupa 2026'da bir dizi Kubernetes duyurusu yaptı. İşte filtrelenmiş versiyonu — .NET uygulamaları gönderiyorsanız önemli olan yalnızca AKS ve cloud-native güncellemeleri.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Büyük bir duyuru yazısı yayımlandığında ve &amp;ldquo;harika, ama bu benim için ne değiştiriyor ki&amp;rdquo; diye düşünerek kaydırma yaptığınız o hissi bilirsiniz, değil mi? Ben her KubeCon sezonunda böyle hissediyorum.&lt;/p&gt;
&lt;p&gt;Microsoft, &lt;a href="https://opensource.microsoft.com/blog/2026/03/24/whats-new-with-microsoft-in-open-source-and-kubernetes-at-kubecon-cloudnativecon-europe-2026/"&gt;KubeCon Avrupa 2026 tam özetini&lt;/a&gt; yayımladı — bizzat Brendan Burns tarafından yazıldı — ve dürüst olmak gerekirse? Burada gerçek bir içerik var. Yalnızca özellik onay kutuları değil, üretimdeki çalışma biçiminizi değiştiren türden operasyonel iyileştirmeler.&lt;/p&gt;
&lt;p&gt;.NET geliştiricileri olarak bizim için gerçekten önemli olanları ele alayım.&lt;/p&gt;
&lt;h2 id="service-mesh-yükü-olmadan-mtls"&gt;Service Mesh Yükü Olmadan mTLS&lt;/h2&gt;
&lt;p&gt;Service mesh&amp;rsquo;ler hakkında şunu söylemek gerekir: herkes güvenlik garantilerini istiyor, kimse operasyonel yükü istemiyor. AKS nihayet bu boşluğu kapatıyor.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/application-network"&gt;Azure Kubernetes Application Network&lt;/a&gt;, ağır sidecar&amp;rsquo;lı bir mesh dağıtmadan karşılıklı TLS, uygulama farkında yetkilendirme ve trafik telemetrisi sunuyor. &lt;a href="https://aka.ms/acns/cilium-mtls"&gt;Advanced Container Networking Services&amp;rsquo;deki Cilium mTLS&lt;/a&gt; ile birleşince, kimlik yönetimi için X.509 sertifikaları ve SPIRE kullanan şifreli pod-to-pod iletişimi elde ediyorsunuz.&lt;/p&gt;
&lt;p&gt;Pratikte ne anlama geliyor: arka plan worker&amp;rsquo;larıyla konuşan ASP.NET Core API&amp;rsquo;leriniz, birbirini çağıran gRPC servisleriniz — sıfır uygulama kodu değişikliğiyle ağ düzeyinde şifreli ve kimlik doğrulamalı. Bu büyük bir şey.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ingress-nginx&lt;/code&gt;&amp;lsquo;ten geçiş yapan ekipler için tam Kubernetes Gateway API desteğiyle &lt;a href="https://aka.ms/aks/app-routing/gateway-api"&gt;Application Routing with Meshless Istio&lt;/a&gt; da mevcut. Sidecar yok. Standart tabanlı. Ve kademeli geçiş için &lt;code&gt;ingress2gateway&lt;/code&gt; araçlarını gönderdiler.&lt;/p&gt;
&lt;h2 id="sonradan-düşünülmemiş-gpu-gözlemlenebilirliği"&gt;Sonradan Düşünülmemiş GPU Gözlemlenebilirliği&lt;/h2&gt;
&lt;p&gt;.NET servislerinizin yanında AI çıkarımı çalıştırıyorsanız (ve dürüst olalım, kim başlamıyor?), GPU izleme kör noktasına çarpmış olabilirsiniz. Harika CPU/bellek dashboard&amp;rsquo;larınız olur ve ardından&amp;hellip; manuel exporter bağlantıları olmadan GPU&amp;rsquo;lar için hiçbir şey.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/managed-gpu-metrics"&gt;AKS artık GPU metriklerini&lt;/a&gt; yönetilen Prometheus ve Grafana&amp;rsquo;ya yerel olarak sunuyor. Aynı yığın, aynı dashboard&amp;rsquo;lar, aynı uyarı pipeline&amp;rsquo;ı. Özel exporter yok, üçüncü taraf ajan yok.&lt;/p&gt;
&lt;p&gt;Ağ tarafında, &lt;a href="https://learn.microsoft.com/en-us/azure/aks/container-network-observability-logs"&gt;tek tıklamalı Azure Monitor deneyimiyle&lt;/a&gt; HTTP, gRPC ve Kafka trafiği için akış başına görünürlük eklediler. IP&amp;rsquo;ler, portlar, iş yükleri, akış yönü, politika kararları — hepsi yerleşik dashboard&amp;rsquo;larda.&lt;/p&gt;
&lt;p&gt;Ve beni iki kez baktıran şu oldu: &lt;a href="https://learn.microsoft.com/en-us/azure/aks/advanced-container-networking-services-overview"&gt;agentic container networking&lt;/a&gt; kümenizin ağ durumu hakkında doğal dil soruları sorabileceğiniz bir web UI ekliyor. &amp;ldquo;Pod X neden servis Y&amp;rsquo;ye ulaşamıyor?&amp;rdquo; → canlı telemetriden salt okunur tanılamalar. Gece 2&amp;rsquo;de gerçekten kullanışlı.&lt;/p&gt;
&lt;h2 id="phd-gerektirmeyen-kümeler-arası-ağ"&gt;PhD Gerektirmeyen Kümeler Arası Ağ&lt;/h2&gt;
&lt;p&gt;Multi-cluster Kubernetes, tarihsel olarak &amp;ldquo;kendi ağ yapıştırıcınızı getirin&amp;rdquo; deneyimiydi. Azure Kubernetes Fleet Manager artık yönetilen Cilium cluster mesh üzerinden &lt;a href="https://aka.ms/kubernetes-fleet/networking/cross-cluster"&gt;kümeler arası ağ&lt;/a&gt; sunuyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AKS kümeleri arasında birleşik bağlantı&lt;/li&gt;
&lt;li&gt;Kümeler arası keşif için global servis kaydı&lt;/li&gt;
&lt;li&gt;Merkezi olarak yönetilen, küme başına tekrarlanmayan konfigürasyon&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dayanıklılık veya uyumluluk için bölgeler arasında .NET mikro servisler çalıştırıyorsanız, bu çok sayıda kırılgan özel yapıştırıcının yerini alıyor. West Europe&amp;rsquo;daki A Servisi, tutarlı yönlendirme ve güvenlik politikalarıyla mesh üzerinden East US&amp;rsquo;deki B Servisini keşfedebilir ve çağırabilir.&lt;/p&gt;
&lt;h2 id="cesaret-gerektirmeyen-yükseltmeler"&gt;Cesaret Gerektirmeyen Yükseltmeler&lt;/h2&gt;
&lt;p&gt;Dürüst olalım — üretimdeki Kubernetes yükseltmeleri streslidir. &amp;ldquo;Yükselt ve umut et&amp;rdquo; pek çok ekip için fiili strateji olmuştur ve kümelerin sürümlerin gerisinde kalmasının ana nedenidir.&lt;/p&gt;
&lt;p&gt;İki yeni özellik bunu değiştiriyor:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mavi-yeşil agent pool yükseltmeleri&lt;/strong&gt; yeni konfigürasyonla paralel bir node pool oluşturur. Davranışı doğrulayın, trafiği kademeli olarak kaydırın ve temiz bir geri alma yolu tutun. Üretim node&amp;rsquo;larında artık yerinde mutasyon yok.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agent pool rollback&lt;/strong&gt;, bir yükseltme ters gittiğinde kümeyi yeniden oluşturmadan bir node pool&amp;rsquo;u önceki Kubernetes sürümüne ve node imajına döndürmenizi sağlar.&lt;/p&gt;
&lt;p&gt;Birlikte ele alındığında, bunlar nihayet operatörlere yükseltme yaşam döngüsü üzerinde gerçek kontrol veriyor. .NET ekipleri için bu önemlidir çünkü platform hızı, yeni runtime&amp;rsquo;ları, güvenlik yamalarını ve ağ özelliklerini ne kadar hızlı benimseyebileceğinizi doğrudan belirler.&lt;/p&gt;
&lt;h2 id="ai-iş-yükleri-birinci-sınıf-kubernetes-vatandaşı-oluyor"&gt;AI İş Yükleri Birinci Sınıf Kubernetes Vatandaşı Oluyor&lt;/h2&gt;
&lt;p&gt;Upstream açık kaynak çalışması da eşit derecede önemli. Dynamic Resource Allocation (DRA) Kubernetes 1.36&amp;rsquo;da GA&amp;rsquo;ya geçti, GPU planlamasını bir geçici çözüm yerine gerçek anlamda birinci sınıf bir özellik haline getirdi.&lt;/p&gt;
&lt;p&gt;İzlemeye değer birkaç proje:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Proje&lt;/th&gt;
&lt;th&gt;Ne Yapıyor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/kaito-project/kubeairunway"&gt;AI Runway&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Çıkarım için ortak Kubernetes API&amp;rsquo;si — K8s bilmeden model dağıtın, HuggingFace keşfi ve maliyet tahminleriyle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.cncf.io/blog/2026/01/07/holmesgpt-agentic-troubleshooting-built-for-the-cloud-native-era/"&gt;HolmesGPT&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Cloud-native için agentic sorun giderme — artık CNCF Sandbox projesi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/project-dalec/dalec"&gt;Dalec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SBOM üretimiyle bildirimsel container imaj oluşturma — derleme aşamasında daha az CVE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Yön açık: .NET API&amp;rsquo;niz, Semantic Kernel orkestrasyon katmanınız ve çıkarım iş yüklerinizin hepsi tek tutarlı bir platform modelinde çalışmalı. Oraya doğru ilerliyoruz.&lt;/p&gt;
&lt;h2 id="bu-hafta-nereden-başlardım"&gt;Bu Hafta Nereden Başlardım&lt;/h2&gt;
&lt;p&gt;Bu değişiklikleri ekibiniz için değerlendiriyorsanız, işte dürüst öncelik listem:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Önce gözlemlenebilirlik&lt;/strong&gt; — üretim dışı bir kümede GPU metriklerini ve ağ akış günlüklerini etkinleştirin. Neyi kaçırdığınızı görün.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mavi-yeşil yükseltmeleri deneyin&lt;/strong&gt; — bir sonraki üretim kümesi yükseltmenizden önce rollback iş akışını test edin. Sürece güven inşa edin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kimlik farkında ağı pilot edin&lt;/strong&gt; — bir dahili servis yolu seçin ve Cilium ile mTLS&amp;rsquo;i etkinleştirin. Yükü ölçün (spoiler: minimumdur).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fleet Manager&amp;rsquo;ı değerlendirin&lt;/strong&gt; — ikiden fazla küme çalıştırıyorsanız, kümeler arası ağ azaltılan özel yapıştırıcıyla kendini amorti eder.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Küçük deneyler, hızlı geri bildirim. Her zaman doğru hamle budur.&lt;/p&gt;
&lt;h2 id="son-söz"&gt;Son Söz&lt;/h2&gt;
&lt;p&gt;KubeCon duyuruları bunaltıcı olabiliyor, ancak bu grup gerçekten AKS&amp;rsquo;teki .NET ekipleri için iğneyi hareket ettiriyor. Mesh yükü olmadan daha iyi ağ güvenliği, gerçek GPU gözlemlenebilirliği, daha güvenli yükseltmeler ve daha güçlü AI altyapısı temelleri.&lt;/p&gt;
&lt;p&gt;Halihazırda AKS&amp;rsquo;teyseniz, bu operasyonel temelinizi sıkılaştırmak için harika bir an. .NET iş yüklerini Kubernetes&amp;rsquo;e taşımayı planlıyorsanız — platform önemli ölçüde daha üretim hazır hale geldi.&lt;/p&gt;</content:encoded></item></channel></rss>