<?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/ja/tags/cloud-native/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ja</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/ja/tags/cloud-native/index.xml" rel="self" type="application/rss+xml"/><item><title>Python、TypeScript、.NETでazdフックを書く：シェルスクリプトとの決別</title><link>https://thedotnetblog.com/ja/news/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/ja/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLIがPython、JavaScript、TypeScript、.NETでのフック作成をサポート。マイグレーションスクリプトのためだけにBashへ切り替える必要はもうない。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元のバージョンは&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;こちら&lt;/a&gt;をクリックしてください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;完全に.NETで書かれたプロジェクトを持ちながら、azdのフックのためにBashスクリプトを書かなければならなかった経験はないだろうか。あの苦痛を知っている人は多いはず。C#でプロジェクト全体を書いているのに、なぜpre-provisioningのステップだけシェル構文に切り替えなければならないのか。&lt;/p&gt;
&lt;p&gt;その不満がついに公式に解決された。Azure Developer CLIが&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;フックのマルチ言語サポートを発表&lt;/a&gt;し、想像通りの素晴らしい機能となっている。&lt;/p&gt;
&lt;h2 id="フックとは"&gt;フックとは&lt;/h2&gt;
&lt;p&gt;フックは&lt;code&gt;azd&lt;/code&gt;のライフサイクルの重要なポイントで実行されるスクリプト — プロビジョニング前、デプロイ後など。&lt;code&gt;azure.yaml&lt;/code&gt;で定義され、CLIを変更せずにカスタムロジックを注入できる。&lt;/p&gt;
&lt;p&gt;これまではBashとPowerShellのみサポートされていた。今や&lt;strong&gt;Python、JavaScript、TypeScript、.NET&lt;/strong&gt;が使えるようになり、&lt;code&gt;azd&lt;/code&gt;が残りを自動で処理する。&lt;/p&gt;
&lt;h2 id="検出の仕組み"&gt;検出の仕組み&lt;/h2&gt;
&lt;p&gt;フックをファイルに向けるだけで、&lt;code&gt;azd&lt;/code&gt;が拡張子から言語を推論する：&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;追加設定は不要。拡張子が曖昧な場合は&lt;code&gt;kind: python&lt;/code&gt;（または対応する言語）を明示的に指定できる。&lt;/p&gt;
&lt;h2 id="言語別の重要な詳細"&gt;言語別の重要な詳細&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;スクリプトと同じディレクトリ（または親ディレクトリ）に&lt;code&gt;requirements.txt&lt;/code&gt;や&lt;code&gt;pyproject.toml&lt;/code&gt;を置くだけ。&lt;code&gt;azd&lt;/code&gt;が自動的に仮想環境を作成し、依存関係をインストールしてスクリプトを実行する。&lt;/p&gt;
&lt;h3 id="javascriptとtypescript"&gt;JavaScriptとTypeScript&lt;/h3&gt;
&lt;p&gt;同じパターン — スクリプトの近くに&lt;code&gt;package.json&lt;/code&gt;を置くと&lt;code&gt;azd&lt;/code&gt;がまず&lt;code&gt;npm install&lt;/code&gt;を実行する。TypeScriptの場合は&lt;code&gt;npx tsx&lt;/code&gt;を使用し、コンパイルステップも&lt;code&gt;tsconfig.json&lt;/code&gt;も不要。&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;2つのモードが利用可能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;プロジェクトモード&lt;/strong&gt;：スクリプトの隣に&lt;code&gt;.csproj&lt;/code&gt;があれば、&lt;code&gt;azd&lt;/code&gt;が自動的に&lt;code&gt;dotnet restore&lt;/code&gt;と&lt;code&gt;dotnet build&lt;/code&gt;を実行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;シングルファイルモード&lt;/strong&gt;：.NET 10以降では、スタンドアロンの&lt;code&gt;.cs&lt;/code&gt;ファイルを&lt;code&gt;dotnet run script.cs&lt;/code&gt;で直接実行可能。プロジェクトファイル不要。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="エグゼキューター固有の設定"&gt;エグゼキューター固有の設定&lt;/h2&gt;
&lt;p&gt;各言語はオプションの&lt;code&gt;config&lt;/code&gt;ブロックをサポート：&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開発者にとっての重要性"&gt;.NET開発者にとっての重要性&lt;/h2&gt;
&lt;p&gt;フックはazd基盤のプロジェクトで言語切り替えを強制する最後の場所だった。これで、アプリコード、インフラスクリプト、ライフサイクルフックを含むデプロイパイプライン全体を1つの言語で管理できる。既存の.NETユーティリティをフックで再利用し、共有ライブラリを参照し、シェルスクリプトの保守から解放される。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;小さな変更のように見えるが、azdの日常ワークフローから多くの摩擦を取り除く変更の一つ。フックのマルチ言語サポートは今すぐ利用可能 — &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;公式ポスト&lt;/a&gt;で全ドキュメントを確認してほしい。&lt;/p&gt;</content:encoded></item><item><title>Global Azure Spain 2026</title><link>https://thedotnetblog.com/ja/events/global-azure-spain-2026/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://thedotnetblog.com/ja/events/global-azure-spain-2026/</guid><description>スペイン最大のAzureコミュニティイベント — Azure、AI、データ、セキュリティ、クラウドネイティブ開発に関する1日セッション、38名のスピーカー、3トラック。</description><content:encoded>&lt;p&gt;Global Azure Spain 2026 は &lt;strong&gt;2026年4月18日&lt;/strong&gt; にマドリード、Alcobendas の &lt;strong&gt;Kinépolis Diversia&lt;/strong&gt; で開催されます。スペイン最大のコミュニティ主導のAzureイベントで、AIエージェント、Azureネットワーク、Cosmos DB、Fabric、IoT、セキュリティなどをカバーする3つの並行トラックに38名のスピーカーが登壇します。&lt;/p&gt;
&lt;p&gt;イベントは &lt;strong&gt;08:30 から 18:30&lt;/strong&gt; まで開催され、キーノート、コーヒーブレイク、ランチ、クロージングQ&amp;amp;Aセッションを含みます。&lt;/p&gt;
&lt;h2 id="アジェンダのハイライト"&gt;アジェンダのハイライト&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domando Agentes de IA&lt;/strong&gt;: Azure AI FoundryとAzure API Managementによるガバナンス、ツール、API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Construyendo agentes con LibreChat en Azure&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How Can I Steal Your Data with Azure Private Endpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stop Building APIs. Forge Agents with Azure&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agentic DevOps Meets IoT: Real-Time Systems with Fabric and GitHub Copilot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;El regreso de los tamagotchis!&lt;/strong&gt;: マルチエージェントシステムの実践&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Foundry Control Plane como plataforma de Agentes global&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rompiendo el perímetro: Zero Trust aplicado en Azure&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="チケット"&gt;チケット&lt;/h2&gt;
&lt;p&gt;登録は象徴的な寄付です — チケット代金は全額 &lt;strong&gt;Plan International&lt;/strong&gt; に寄付され、世界中の子どもの権利と平等を支援します。定員に限りがありますので、お早めにお申し込みください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.eventbrite.es/e/entradas-global-azure-spain-2026-en-madrid-1981594189564"&gt;Eventbriteでチケットを取得&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://globalazure.es/"&gt;イベントサイト&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="azure-tour-2026"&gt;Azure Tour 2026&lt;/h2&gt;
&lt;p&gt;マドリード以外にも、Global Azure Tour 2026 は &lt;strong&gt;サラゴサ&lt;/strong&gt;、&lt;strong&gt;テネリフェ&lt;/strong&gt;、&lt;strong&gt;セビリア&lt;/strong&gt; でも開催されます。&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2にMongoDB EF CoreとAzure Data Lakeが追加 — 試す価値のある2つのインテグレーション</title><link>https://thedotnetblog.com/ja/news/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/ja/news/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/</guid><description>Aspire 13.2では、設定不要のヘルスチェックとサービスディスカバリを備えたMongoDB Entity Framework CoreとAzure Data Lake Storageのインテグレーションが追加されました。実際にどのように使えるか紹介します。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aspire 13.2が&lt;a href="https://devblogs.microsoft.com/aspire/aspire-new-database-integrations/"&gt;2つの新しいデータベースインテグレーション&lt;/a&gt;と共にリリースされました。注目すべきはMongoDB Entity Framework CoreとAzure Data Lake Storageです。AspireアプリでMongoDBとEF Coreを使いたかった方、あるいはサービスディスカバリ付きでData Lakeワークロードを接続したかった方にとって、今回のリリースはまさにそれを提供してくれます。&lt;/p&gt;
&lt;h2 id="aspireでmongodbとef-coreが出会う"&gt;AspireでMongoDBとEF Coreが出会う&lt;/h2&gt;
&lt;p&gt;これが一番ワクワクしているインテグレーションです。AspireはMongoDBを以前からサポートしていましたが、常に生のドライバーでした — EF Coreなし、&lt;code&gt;DbContext&lt;/code&gt;なし、ドキュメントに対するLINQクエリなし。今回から、MongoDBでフルのEF Core体験が得られるようになり、さらにAspireの自動ヘルスチェックとサービスディスカバリも付いてきます。&lt;/p&gt;
&lt;p&gt;セットアップは典型的なAspireパターンです。AppHostで：&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;次に、コンシューマープロジェクトでEF Coreインテグレーションを追加します：&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;そして&lt;code&gt;DbContext&lt;/code&gt;を登録します：&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;あとは標準的なEF Coreです。エンティティを定義し、他のプロバイダーと同じように&lt;code&gt;DbContext&lt;/code&gt;を使います。コネクションプーリング、OpenTelemetryトレース、ヘルスチェックはインテグレーションがバックグラウンドで処理します。&lt;/p&gt;
&lt;p&gt;生のドライバーでMongoDBを使い、コネクション文字列を手動で設定していた.NET開発者にとって、これは嬉しい改善です。Aspireのサービスディスカバリを失うことなく、EF Coreの完全な抽象化が手に入ります。&lt;/p&gt;
&lt;h2 id="azure-data-lake-storageが仲間入り"&gt;Azure Data Lake Storageが仲間入り&lt;/h2&gt;
&lt;p&gt;2つ目の大きな追加は&lt;a href="https://aspire.dev/integrations/cloud/azure/azure-storage-datalake/"&gt;Azure Data Lake Storage（ADLS）インテグレーション&lt;/a&gt;です。データパイプライン、ETLプロセス、分析プラットフォームを構築しているなら、他のAspire依存関係と同じ方法でData Lakeリソースを接続できるようになりました。&lt;/p&gt;
&lt;p&gt;AppHostで：&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;コンシューマープロジェクトで：&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;コネクション文字列の手動管理も、資格情報の探索も不要です。Aspireがリソースをプロビジョニングして注入します。オペレーショナルデータと分析ワークロードの両方を扱うクラウドネイティブな.NETアプリを構築している私たちにとって、Data LakeがAspireモデルのファーストクラスシチズンのように感じられるようになります。&lt;/p&gt;
&lt;h2 id="地味だけど大事な修正"&gt;地味だけど大事な修正&lt;/h2&gt;
&lt;p&gt;メイン機能以外にも、いくつかの改善が注目に値します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MongoDBコネクション文字列の修正&lt;/strong&gt; — データベース名の前のスラッシュが正しく処理されるようになりました。ワークアラウンドを使っていた方は、もう不要です&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Serverエクスポート&lt;/strong&gt; — &lt;code&gt;Aspire.Hosting.SqlServer&lt;/code&gt;が追加のサーバー構成オプションをエクスポートし、より細かい制御が可能に&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;エミュレーターの更新&lt;/strong&gt; — ServiceBusエミュレーター2.0.0、App Configurationエミュレーター1.0.2、CosmosDBのプレビューエミュレーターにレディネスチェックが追加&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure Managed Redis&lt;/strong&gt; — デフォルトで&lt;code&gt;rediss://&lt;/code&gt;（Redis Secure）を使用するようになり、接続が最初から暗号化されます&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最後のポイントは地味ですが重要です — デフォルトで暗号化されたRedisは、本番環境で設定すべきことが1つ減ることを意味します。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Aspire 13.2はインクリメンタルなリリースですが、MongoDB EF CoreとData Lakeのインテグレーションは実際のギャップを埋めてくれます。AspireでのMongoDBに対する適切なEF Coreサポートを待っていた方、またはData Lakeをファーストクラスの依存関係として必要としていた方は、&lt;a href="https://get.aspire.dev"&gt;13.2にアップグレード&lt;/a&gt;して試してみてください。&lt;code&gt;aspire add&lt;/code&gt;コマンドで必要なものがすべてスキャフォールドされます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aspire.dev/whats-new/aspire-13-2/#-integrations-updates"&gt;完全なリリースノート&lt;/a&gt;で詳細を確認し、&lt;a href="https://aspire.dev/integrations/gallery/"&gt;インテグレーションギャラリー&lt;/a&gt;で完全なリストをチェックしてください。&lt;/p&gt;</content:encoded></item><item><title>Azure Smart TierがGAに — ライフサイクルルール不要でBlob Storageのコストを自動最適化</title><link>https://thedotnetblog.com/ja/news/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/ja/news/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</guid><description>Azure Blob Storageのsmart tierが一般提供開始。実際のアクセスパターンに基づいて、オブジェクトをhot、cool、coldティア間で自動的に移動します — ライフサイクルルールは不要です。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Azure Blob Storageのライフサイクルポリシーの調整に時間をかけた結果、アクセスパターンが変わった途端に全部崩れた経験があるなら、この記事はまさにあなた向けです。Microsoftは、Azure BlobおよびData Lake Storage向けの&lt;a href="https://azure.microsoft.com/en-us/blog/optimize-object-storage-costs-automatically-with-smart-tier-now-generally-available/"&gt;smart tierの一般提供&lt;/a&gt;を発表しました — 実際の使用状況に基づいて、オブジェクトをhot、cool、coldティア間で自動的に移動するフルマネージドのティアリング機能です。&lt;/p&gt;
&lt;h2 id="smart-tierが実際にやること"&gt;Smart tierが実際にやること&lt;/h2&gt;
&lt;p&gt;コンセプトはシンプルです。smart tierはストレージアカウント内の各オブジェクトの最終アクセス時刻を継続的に評価します。頻繁にアクセスされるデータはhotに留まり、非アクティブなデータは30日後にcoolへ、さらに60日後にcoldへ移動します。データが再びアクセスされると、すぐにhotに昇格します。サイクルが再開します。&lt;/p&gt;
&lt;p&gt;設定するライフサイクルルールなし。アクセスパターンの予測なし。手動チューニングなし。&lt;/p&gt;
&lt;p&gt;プレビュー期間中、Microsoftは&lt;strong&gt;smart tierで管理された容量の50%以上が、実際のアクセスパターンに基づいて自動的にクールなティアに移行した&lt;/strong&gt;と報告しています。大規模なストレージアカウントにとって意味のあるコスト削減です。&lt;/p&gt;
&lt;h2 id="net開発者にとってなぜ重要か"&gt;.NET開発者にとってなぜ重要か&lt;/h2&gt;
&lt;p&gt;ログ、テレメトリ、分析データ、あるいは何らかの成長するデータ資産を生成するアプリケーションを構築しているなら — 正直なところ、そうでない人はいないでしょう — ストレージコストはすぐに膨れ上がります。従来のアプローチは、ライフサイクル管理ポリシーを書き、テストし、アプリのアクセスパターンが変わったら再調整することでした。Smart tierはそのワークフロー全体を排除します。&lt;/p&gt;
&lt;p&gt;これが役立つ実用的なシナリオ：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;アプリケーションのテレメトリとログ&lt;/strong&gt; — デバッグ中はhot、数週間後にはほとんどアクセスされない&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;データパイプラインとETL出力&lt;/strong&gt; — 処理中は頻繁にアクセス、その後はほぼcold&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ユーザー生成コンテンツ&lt;/strong&gt; — 最近のアップロードはhot、古いコンテンツは徐々に冷却&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;バックアップとアーカイブデータ&lt;/strong&gt; — コンプライアンスのため時々アクセス、ほとんどアイドル&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="セットアップ方法"&gt;セットアップ方法&lt;/h2&gt;
&lt;p&gt;Smart tierの有効化は一度きりの設定です：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;新しいアカウント&lt;/strong&gt;：ストレージアカウント作成時にsmart tierをデフォルトのアクセスティアとして選択（ゾーン冗長が必要）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;既存のアカウント&lt;/strong&gt;：blobアクセスティアを現在のデフォルトからsmart tierに切り替え&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;128 KiB未満のオブジェクトはhotに留まり、モニタリング料金は発生しません。それ以外は、ティア移行料金なし、早期削除料金なし、データ取得コストなしの標準hot/cool/cold容量料金を支払います。オブジェクトごとの月額モニタリング料金がオーケストレーションをカバーします。&lt;/p&gt;
&lt;h2 id="知っておくべきトレードオフ"&gt;知っておくべきトレードオフ&lt;/h2&gt;
&lt;p&gt;Smart tierのティアリングルールは固定です（30日→cool、90日→cold）。カスタムしきい値が必要な場合 — 例えば、特定のワークロードで7日後にcoolに移動したい場合 — ライフサイクルルールが引き続き正解です。そして両方を混ぜないでください：smart tierで管理されているオブジェクトにライフサイクルルールを使用すると競合する可能性があるため、避けてください。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;革命的ではありませんが、実際の運用上の頭痛の種を解決します。成長するBlob Storageアカウントを管理していて、ライフサイクルポリシーの維持に疲れているなら、&lt;a href="https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-smart"&gt;smart tierを有効化&lt;/a&gt;してAzureに任せましょう。現在、ほぼすべてのゾーンパブリッククラウドリージョンで利用可能です。&lt;/p&gt;</content:encoded></item><item><title>AzureでAIエージェントをどこにホストすべき？実践的な判断ガイド</title><link>https://thedotnetblog.com/ja/news/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/ja/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</guid><description>Azureには生のコンテナからフルマネージドのFoundry Hosted Agentsまで、AIエージェントをホストする6つの方法があります。.NETワークロードに最適なものを選ぶ方法を解説します。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今.NETでAIエージェントを構築しているなら、おそらく気づいていることがあるでしょう：Azureでホストする方法が&lt;em&gt;たくさん&lt;/em&gt;あるということです。Container Apps、AKS、Functions、App Service、Foundry Agents、Foundry Hosted Agents — どれも合理的に聞こえますが、実際に選ぶ段階になると困ります。Microsoftが&lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;AzureでのAIエージェントホスティングに関する包括的なガイド&lt;/a&gt;を公開しました。これを.NET開発者の実践的な視点から整理します。&lt;/p&gt;
&lt;h2 id="6つのオプション早見表"&gt;6つのオプション早見表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;オプション&lt;/th&gt;
&lt;th&gt;最適な用途&lt;/th&gt;
&lt;th&gt;管理するもの&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の複雑さなしにコンテナを完全制御&lt;/td&gt;
&lt;td&gt;オブザーバビリティ、状態、ライフサイクル&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;エンタープライズコンプライアンス、マルチクラスター、カスタムネットワーキング&lt;/td&gt;
&lt;td&gt;すべて（それがポイント）&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;イベント駆動の短時間エージェントタスク&lt;/td&gt;
&lt;td&gt;ほぼなし — 真のサーバーレス&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;シンプルなHTTPエージェント、予測可能なトラフィック&lt;/td&gt;
&lt;td&gt;デプロイ、スケーリング設定&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;ポータル/SDKによるコード不要エージェント&lt;/td&gt;
&lt;td&gt;ほぼなし&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;マネージドインフラでカスタムフレームワークエージェント&lt;/td&gt;
&lt;td&gt;エージェントコードのみ&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最初の4つは汎用コンピュートです — エージェントを動かす&lt;em&gt;ことはできます&lt;/em&gt;が、そのために設計されたものではありません。最後の2つはエージェントネイティブで、会話、ツール呼び出し、エージェントのライフサイクルをファーストクラスの概念として理解しています。&lt;/p&gt;
&lt;h2 id="foundry-hosted-agents--netエージェント開発者にとってのスイートスポット"&gt;Foundry Hosted Agents — .NETエージェント開発者にとってのスイートスポット&lt;/h2&gt;
&lt;p&gt;注目すべきはこれです。Foundry Hosted Agentsはちょうど中間に位置しています：自分のコード（Semantic Kernel、Agent Framework、LangGraph — 何でも）を実行する柔軟性がありながら、プラットフォームがインフラ、オブザーバビリティ、会話管理を処理します。&lt;/p&gt;
&lt;p&gt;キーピースは&lt;strong&gt;Hosting Adapter&lt;/strong&gt;です — エージェントフレームワークをFoundryプラットフォームに接続する薄い抽象化レイヤーです。Microsoft Agent Frameworkの場合：&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;これがホスティングの全体像です。アダプターがプロトコル変換、server-sent eventsによるストリーミング、会話履歴、OpenTelemetryトレーシングを自動的に処理します。カスタムミドルウェアも手動の配管作業も不要です。&lt;/p&gt;
&lt;h2 id="デプロイは本当にシンプル"&gt;デプロイは本当にシンプル&lt;/h2&gt;
&lt;p&gt;以前Container Appsにエージェントをデプロイしたことがありますが、状態管理やオブザーバビリティのためのグルーコードをたくさん書くことになります。Hosted Agentsと&lt;code&gt;azd&lt;/code&gt;なら：&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エージェント拡張機能をインストール&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;# テンプレートから初期化&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;# ビルド、プッシュ、デプロイ — 完了&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;この1つの&lt;code&gt;azd up&lt;/code&gt;がコンテナをビルドし、ACRにプッシュし、Foundryプロジェクトをプロビジョニングし、モデルエンドポイントをデプロイし、エージェントを起動します。5つのステップが1つのコマンドに凝縮されています。&lt;/p&gt;
&lt;h2 id="組み込みの会話管理"&gt;組み込みの会話管理&lt;/h2&gt;
&lt;p&gt;本番で最も時間を節約するのはここです。独自の会話ステートストアを構築する代わりに、Hosted Agentsがネイティブに処理します：&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;# 永続的な会話を作成&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;# 最初のターン&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;Remember: my favorite number is 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;# 2回目のターン — コンテキストが保持される&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;Multiply my favorite number by 10.&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なし。Cosmos DBセッションストアなし。メッセージシリアライゼーション用のカスタムミドルウェアなし。プラットフォームがすべて処理します。&lt;/p&gt;
&lt;h2 id="私の判断フレームワーク"&gt;私の判断フレームワーク&lt;/h2&gt;
&lt;p&gt;6つすべてのオプションを検討した結果、私のクイックメンタルモデルはこうです：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;インフラゼロが必要？&lt;/strong&gt; → Foundry Agents（ポータル/SDK、コンテナなし）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;カスタムエージェントコードがあるがマネージドホスティングが欲しい？&lt;/strong&gt; → Foundry Hosted Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;イベント駆動の短期エージェントタスクが必要？&lt;/strong&gt; → Azure Functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;K8sなしで最大限のコンテナ制御が必要？&lt;/strong&gt; → Container Apps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;厳格なコンプライアンスとマルチクラスターが必要？&lt;/strong&gt; → AKS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;予測可能なトラフィックのシンプルなHTTPエージェント？&lt;/strong&gt; → App Service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Semantic KernelやMicrosoft Agent Frameworkで構築しているほとんどの.NET開発者にとって、Hosted Agentsが適切なスタート地点でしょう。scale-to-zero、組み込みOpenTelemetry、会話管理、フレームワークの柔軟性が得られます — Kubernetesの管理やオブザーバビリティスタックの構築なしに。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;AzureのエージェントホスティングランドスケープはFastに成熟しています。今日新しいAIエージェントプロジェクトを始めるなら、習慣でContainer AppsやAKSに手を伸ばす前に、Foundry Hosted Agentsを真剣に検討することをお勧めします。マネージドインフラは実際の時間を節約し、hosting adapterパターンでフレームワークの選択を維持できます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;Microsoftの完全ガイド&lt;/a&gt;と&lt;a href="https://github.com/microsoft-foundry/foundry-samples/tree/main/samples/python/hosted-agents"&gt;Foundry Samplesリポジトリ&lt;/a&gt;で動作するサンプルを確認してください。&lt;/p&gt;</content:encoded></item><item><title>KubeCon Europe 2026：.NET開発者が本当に知るべきこと</title><link>https://thedotnetblog.com/ja/news/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/ja/news/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/</guid><description>MicrosoftがKubeCon Europe 2026で大量のKubernetesアナウンスを発表しました。.NETアプリを出荷しているなら知っておくべきAKSとクラウドネイティブのアップデートだけをフィルタリングしてお届けします。</description><content:encoded>&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;巨大なアナウンス記事が出て、スクロールしながら「クール、でも実際に自分にとって何が変わるの？」と思うあの感覚、分かりますよね？毎回KubeConシーズンになると私はそうなります。&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 Europe 2026の完全なまとめ&lt;/a&gt;を公開しました。Brendan Burns自身が執筆しています。正直に言うと、ここには本物の中身があります。機能のチェックリストだけでなく、本番環境での運用方法を変える運用面の改善です。&lt;/p&gt;
&lt;p&gt;.NET開発者として本当に重要なことを整理しましょう。&lt;/p&gt;
&lt;h2 id="サービスメッシュ税なしのmtls"&gt;サービスメッシュ税なしのmTLS&lt;/h2&gt;
&lt;p&gt;サービスメッシュの問題点：全員がセキュリティの保証を求めるけど、運用オーバーヘッドは誰も望まない。AKSがついにこのギャップを埋めています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/application-network"&gt;Azure Kubernetes Application Network&lt;/a&gt;は、相互TLS、アプリケーション認識型の認可、トラフィックテレメトリを提供します。サイドカーの重いフルメッシュをデプロイする必要はありません。&lt;a href="https://aka.ms/acns/cilium-mtls"&gt;Advanced Container Networking ServicesのCilium mTLS&lt;/a&gt;と組み合わせれば、X.509証明書とSPIREによるID管理を使った暗号化されたpod間通信が実現します。&lt;/p&gt;
&lt;p&gt;実際にはどういうことか：ASP.NET Core APIがバックグラウンドワーカーと通信する、gRPCサービスが相互に呼び出す — すべてがネットワークレベルで暗号化・ID検証され、アプリケーションコードの変更はゼロ。これは大きいです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ingress-nginx&lt;/code&gt;から移行しているチームには、&lt;a href="https://aka.ms/aks/app-routing/gateway-api"&gt;Meshless IstioによるApplication Routing&lt;/a&gt;もあり、Kubernetes Gateway APIの完全サポート付きです。サイドカーなし。標準ベース。段階的な移行のための&lt;code&gt;ingress2gateway&lt;/code&gt;ツールも提供されています。&lt;/p&gt;
&lt;h2 id="後付けではないgpuオブザーバビリティ"&gt;後付けではないGPUオブザーバビリティ&lt;/h2&gt;
&lt;p&gt;.NETサービスと並行してAI推論を実行している場合（正直、誰が始めていないでしょうか？）、GPUモニタリングの盲点に遭遇したことがあるでしょう。CPU/メモリのダッシュボードは素晴らしかったのに、GPUについては手動のエクスポーター設定なしでは何もなかった。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/managed-gpu-metrics"&gt;AKSはGPUメトリクスをネイティブに&lt;/a&gt;マネージドPrometheusとGrafanaに表示するようになりました。同じスタック、同じダッシュボード、同じアラートパイプライン。カスタムエクスポーターもサードパーティエージェントも不要。&lt;/p&gt;
&lt;p&gt;ネットワーク側では、HTTP、gRPC、Kafkaトラフィックのフローごとの可視性が&lt;a href="https://learn.microsoft.com/en-us/azure/aks/container-network-observability-logs"&gt;ワンクリックAzure Monitor体験&lt;/a&gt;で追加されました。IP、ポート、ワークロード、フロー方向、ポリシー判定 — すべてが組み込みダッシュボードに。&lt;/p&gt;
&lt;p&gt;そして二度見させられたもの：&lt;a href="https://learn.microsoft.com/en-us/azure/aks/advanced-container-networking-services-overview"&gt;agentic container networking&lt;/a&gt;は、クラスターのネットワーク状態について自然言語で質問できるWeb UIを追加します。「ポッドXがサービスYに到達できないのはなぜ？」→ ライブテレメトリからの読み取り専用診断。午前2時に本当に役立ちます。&lt;/p&gt;
&lt;h2 id="博士号不要のクロスクラスターネットワーキング"&gt;博士号不要のクロスクラスターネットワーキング&lt;/h2&gt;
&lt;p&gt;マルチクラスターKubernetesは歴史的に「自分でネットワークの接着剤を持ってくる」体験でした。Azure Kubernetes Fleet Managerが、マネージドCiliumクラスターメッシュによる&lt;a href="https://aka.ms/kubernetes-fleet/networking/cross-cluster"&gt;クロスクラスターネットワーキング&lt;/a&gt;を提供するようになりました：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AKSクラスター間の統一された接続性&lt;/li&gt;
&lt;li&gt;クロスクラスター検出のためのグローバルサービスレジストリ&lt;/li&gt;
&lt;li&gt;クラスターごとに繰り返すのではなく中央で管理される設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;レジリエンスやコンプライアンスのために複数リージョンで.NETマイクロサービスを実行しているなら、多くの脆弱なカスタムの接着剤が置き換えられます。West EuropeのサービスAがメッシュを通じてEast USのサービスBを発見して呼び出せます。一貫したルーティングとセキュリティポリシーが適用されます。&lt;/p&gt;
&lt;h2 id="勇気を必要としないアップグレード"&gt;勇気を必要としないアップグレード&lt;/h2&gt;
&lt;p&gt;正直に言いましょう — 本番環境のKubernetesアップグレードはストレスフルです。「アップグレードして祈る」があまりにも多くのチームのデファクト戦略であり、クラスターがバージョンに遅れる主な理由です。&lt;/p&gt;
&lt;p&gt;2つの新機能がこれを変えます：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blue-greenエージェントプールアップグレード&lt;/strong&gt;は新しい設定でパラレルなノードプールを作成します。動作を検証し、トラフィックを段階的に移動し、クリーンなロールバックパスを維持します。本番ノードでのインプレース変更はもう不要。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;エージェントプールロールバック&lt;/strong&gt;により、アップグレードがうまくいかなかった場合、クラスターを再構築することなく、ノードプールを以前のKubernetesバージョンとノードイメージに戻せます。&lt;/p&gt;
&lt;p&gt;組み合わせることで、オペレーターにアップグレードのライフサイクルに対する本当のコントロールを提供します。.NETチームにとっては、プラットフォームの速度が新しいランタイム、セキュリティパッチ、ネットワーク機能をどれだけ早く採用できるかを直接制御するため重要です。&lt;/p&gt;
&lt;h2 id="aiワークロードがkubernetesのファーストクラス市民に"&gt;AIワークロードがKubernetesのファーストクラス市民に&lt;/h2&gt;
&lt;p&gt;アップストリームのオープンソース作業も同様に重要です。Dynamic Resource Allocation (DRA)がKubernetes 1.36でGAになり、GPUスケジューリングがワークアラウンドではなく本物のファーストクラス機能になりました。&lt;/p&gt;
&lt;p&gt;注目すべきプロジェクト：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;プロジェクト&lt;/th&gt;
&lt;th&gt;内容&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;推論のための共通Kubernetes API — K8sを知らなくてもモデルをデプロイ、HuggingFace検出とコスト見積もり付き&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;クラウドネイティブ向けのエージェント型トラブルシューティング — CNCF Sandboxプロジェクトに&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生成付きの宣言的コンテナイメージビルド — ビルド段階でのCVE削減&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;方向性は明確：あなたの.NET API、Semantic Kernelのオーケストレーション層、推論ワークロードはすべて一貫したプラットフォームモデル上で実行されるべきです。そこに向かっています。&lt;/p&gt;
&lt;h2 id="今週から始めるなら"&gt;今週から始めるなら&lt;/h2&gt;
&lt;p&gt;チームでこれらの変更を評価しているなら、私の正直な優先順位リスト：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;まずオブザーバビリティ&lt;/strong&gt; — 非本番クラスターでGPUメトリクスとネットワークフローログを有効にする。見逃していたものを確認する。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blue-greenアップグレードを試す&lt;/strong&gt; — 次の本番クラスターアップグレード前にロールバックワークフローをテストする。プロセスへの信頼を構築する。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ID認識型ネットワーキングをパイロット&lt;/strong&gt; — 内部サービスパスを1つ選んでCiliumでmTLSを有効にする。オーバーヘッドを測定する（ネタバレ：最小限）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fleet Managerを評価&lt;/strong&gt; — 2つ以上のクラスターを運用しているなら、クロスクラスターネットワーキングはカスタムの接着剤削減だけで元が取れる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;小さな実験、素早いフィードバック。それが常に正しい手。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;KubeConのアナウンスは圧倒的になりがちですが、今回のバッチはAKS上の.NETチームにとって本当に針を動かします。メッシュオーバーヘッドなしのより良いネットワークセキュリティ、本物のGPUオブザーバビリティ、より安全なアップグレード、そしてより強力なAIインフラストラクチャの基盤。&lt;/p&gt;
&lt;p&gt;すでにAKSを使っているなら、運用ベースラインを強化する絶好のタイミングです。.NETワークロードをKubernetesに移行する予定なら — プラットフォームは大幅にプロダクションレディになりました。&lt;/p&gt;</content:encoded></item></channel></rss>