<?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>Aks | The .NET Blog</title><link>https://thedotnetblog.com/fr/tags/aks/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>fr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/aks/index.xml" rel="self" type="application/rss+xml"/><item><title>Aspire 13.3 : Support Kubernetes, Journaux du Navigateur et la Compétence Aspireify</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-133-kubernetes-browser-logs-aspireify/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-133-kubernetes-browser-logs-aspireify/</guid><description>Cinq semaines après 13.2, Aspire 13.3 arrive avec 45 nouvelles fonctionnalités, notamment le déploiement AKS de première classe, une compétence d'intégration assistée par IA, la capture des journaux du navigateur et des résultats de commandes structurés.</description><content:encoded>&lt;p&gt;Cinq semaines, ce n&amp;rsquo;est pas beaucoup pour une version, mais Aspire 13.3 ne le semble pas. Les éléments principaux sont significatifs : déploiement Kubernetes et AKS de première classe avec Helm, une compétence d&amp;rsquo;intégration assistée par agent appelée Aspireify, la capture des journaux du navigateur directement dans le dashboard et des résultats de commandes structurés. En plus, 45 nouvelles fonctionnalités, 134 améliorations et 93 corrections de bugs.&lt;/p&gt;
&lt;p&gt;Passons aux points saillants.&lt;/p&gt;
&lt;h2 id="aspireify--intégration-assistée-par-agent"&gt;Aspireify : Intégration Assistée par Agent&lt;/h2&gt;
&lt;p&gt;Ajouter Aspire à un projet existant semble simple — ajoutez un AppHost, c&amp;rsquo;est fait. En pratique, cela implique beaucoup d&amp;rsquo;archéologie : quels ports comptent, quelles variables d&amp;rsquo;environnement sont de vraies dépendances, quels services Docker Compose doivent correspondre aux intégrations Aspire.&lt;/p&gt;
&lt;p&gt;La nouvelle &lt;strong&gt;compétence Aspireify&lt;/strong&gt; donne à votre agent de code un flux de travail guidé précisément pour cela. Quand &lt;code&gt;aspire init&lt;/code&gt; crée un AppHost squelette, la compétence Aspireify aide l&amp;rsquo;agent à inspecter le dépôt, à comprendre comment il fonctionne déjà et à câbler l&amp;rsquo;AppHost pour s&amp;rsquo;adapter à l&amp;rsquo;application — pas l&amp;rsquo;inverse.&lt;/p&gt;
&lt;p&gt;La posture par défaut est &amp;ldquo;minimiser les modifications de votre code.&amp;rdquo; Si votre application lit déjà &lt;code&gt;DATABASE_URL&lt;/code&gt;, l&amp;rsquo;agent le mappe avec &lt;code&gt;WithEnvironment()&lt;/code&gt; au lieu de vous demander de réécrire votre configuration. Si un port est codé en dur, la compétence indique à l&amp;rsquo;agent quand le préserver.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est le type d&amp;rsquo;outillage IA qui fait réellement gagner du temps plutôt que de générer plus de travail à revoir.&lt;/p&gt;
&lt;h2 id="déploiement-kubernetes-et-aks-de-première-classe"&gt;Déploiement Kubernetes et AKS de Première Classe&lt;/h2&gt;
&lt;p&gt;Celui-là était sur la liste de souhaits depuis un moment. Aspire 13.3 inclut le &lt;strong&gt;support de déploiement Kubernetes et AKS de première classe avec Helm&lt;/strong&gt;. Vous pouvez maintenant cibler AKS comme destination de déploiement directement depuis les outils Aspire.&lt;/p&gt;
&lt;p&gt;Pour les équipes qui exécutent déjà des charges de travail de production sur AKS, cela comble un écart significatif. Votre modèle d&amp;rsquo;application Aspire a maintenant un chemin propre du développement local vers Kubernetes sans rédaction manuelle de charts Helm.&lt;/p&gt;
&lt;h2 id="journaux-du-navigateur-dans-le-dashboard"&gt;Journaux du Navigateur dans le Dashboard&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est une de ces fonctionnalités qui semblent mineures jusqu&amp;rsquo;à ce que vous déboguiez un problème frontend.&lt;/p&gt;
&lt;p&gt;La nouvelle API &lt;code&gt;WithBrowserLogs()&lt;/code&gt; attache une ressource de navigateur suivie à toute ressource capable d&amp;rsquo;endpoints. Aspire lance Chromium en utilisant un pipe CDP privé et diffuse les journaux de console, les requêtes réseau et les erreurs directement dans le flux de journaux de la ressource :&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;frontend&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;AddViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;../frontend&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;WithHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3000&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;WithBrowserLogs&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;L&amp;rsquo;AppHost TypeScript prend en charge la même chose :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;frontend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;../frontend&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="nx"&gt;withHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt;: &lt;span class="kt"&gt;3000&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="nx"&gt;withBrowserLogs&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;Erreurs de console, requêtes réseau échouées, exceptions côté client — tout visible dans le même dashboard où vous regardez déjà les traces et métriques. Plus besoin de changer d&amp;rsquo;onglet vers les DevTools du navigateur pour les bases.&lt;/p&gt;
&lt;h2 id="résultats-de-commandes-structurés"&gt;Résultats de Commandes Structurés&lt;/h2&gt;
&lt;p&gt;Les commandes de ressources ont reçu une mise à niveau significative. Jusqu&amp;rsquo;à présent, les commandes renvoyaient succès/échec. Maintenant elles retournent des résultats structurés : texte, JSON ou markdown qui circule à travers le modèle, l&amp;rsquo;interface du dashboard, la CLI et les outils MCP.&lt;/p&gt;
&lt;p&gt;Le dashboard relie tout cela avec un nouveau centre de notifications dans l&amp;rsquo;en-tête. Les résultats des commandes apparaissent sous forme de notifications horodatées avec rendu markdown et une action &amp;ldquo;Voir la réponse&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cela rend les commandes de ressources véritablement composables. Une intégration peut maintenant exposer une commande qui renvoie une sortie significative — comme une URL de tunnel — plutôt que de simplement changer d&amp;rsquo;état quelque part.&lt;/p&gt;
&lt;h2 id="en-résumé"&gt;En Résumé&lt;/h2&gt;
&lt;p&gt;Aspire 13.3 vaut la mise à jour ne serait-ce que pour le support Kubernetes. Les journaux du navigateur et les résultats de commandes structurés ressemblent au type d&amp;rsquo;améliorations de qualité de vie qui s&amp;rsquo;accumulent rapidement dans un flux de travail de développement quotidien.&lt;/p&gt;
&lt;p&gt;Notes de version complètes : &lt;a href="https://devblogs.microsoft.com/aspire/whats-new-aspire-13-3/"&gt;What&amp;rsquo;s New in Aspire 13.3&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Où héberger vos agents IA sur Azure ? Un guide de décision pratique</title><link>https://thedotnetblog.com/fr/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/fr/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</guid><description>Azure propose six façons d'héberger des agents IA — des conteneurs bruts aux Foundry Hosted Agents entièrement gérés. Voici comment choisir la bonne option pour votre charge de travail .NET.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous construisez des agents IA avec .NET en ce moment, vous avez probablement remarqué quelque chose : il y a &lt;em&gt;beaucoup&lt;/em&gt; de façons de les héberger sur Azure. Container Apps, AKS, Functions, App Service, Foundry Agents, Foundry Hosted Agents — et tous semblent raisonnables jusqu&amp;rsquo;à ce que vous ayez réellement besoin d&amp;rsquo;en choisir un. Microsoft vient de publier un &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;guide complet sur l&amp;rsquo;hébergement d&amp;rsquo;agents IA sur Azure&lt;/a&gt; qui clarifie tout ça, et je veux le décomposer du point de vue pratique d&amp;rsquo;un développeur .NET.&lt;/p&gt;
&lt;h2 id="les-six-options-en-un-coup-dœil"&gt;Les six options en un coup d&amp;rsquo;œil&lt;/h2&gt;
&lt;p&gt;Voici comment je résumerais le paysage :&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Idéal pour&lt;/th&gt;
&lt;th&gt;Vous gérez&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;Contrôle total des conteneurs sans complexité K8s&lt;/td&gt;
&lt;td&gt;Observabilité, état, cycle de vie&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;Conformité entreprise, multi-cluster, réseau personnalisé&lt;/td&gt;
&lt;td&gt;Tout (c&amp;rsquo;est le but)&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;Tâches d&amp;rsquo;agents événementielles et courtes&lt;/td&gt;
&lt;td&gt;Presque rien — vrai 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;Agents HTTP simples, trafic prévisible&lt;/td&gt;
&lt;td&gt;Déploiement, config de scaling&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;Agents sans code via portail/SDK&lt;/td&gt;
&lt;td&gt;Presque rien&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;Agents framework personnalisé avec infra gérée&lt;/td&gt;
&lt;td&gt;Uniquement votre code d&amp;rsquo;agent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Les quatre premières sont du compute généraliste — vous &lt;em&gt;pouvez&lt;/em&gt; y exécuter des agents, mais elles n&amp;rsquo;ont pas été conçues pour ça. Les deux dernières sont natives aux agents : elles comprennent les conversations, les appels d&amp;rsquo;outils et les cycles de vie des agents comme des concepts de première classe.&lt;/p&gt;
&lt;h2 id="foundry-hosted-agents--le-sweet-spot-pour-les-développeurs-net-dagents"&gt;Foundry Hosted Agents — le sweet spot pour les développeurs .NET d&amp;rsquo;agents&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est ce qui a attiré mon attention. Les Foundry Hosted Agents se situent pile au milieu : vous obtenez la flexibilité d&amp;rsquo;exécuter votre propre code (Semantic Kernel, Agent Framework, LangGraph — peu importe) mais la plateforme gère l&amp;rsquo;infrastructure, l&amp;rsquo;observabilité et la gestion des conversations.&lt;/p&gt;
&lt;p&gt;La pièce clé est le &lt;strong&gt;Hosting Adapter&lt;/strong&gt; — une fine couche d&amp;rsquo;abstraction qui connecte votre framework d&amp;rsquo;agents à la plateforme Foundry. Pour Microsoft Agent Framework, ça ressemble à ça :&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;C&amp;rsquo;est toute votre histoire d&amp;rsquo;hébergement. L&amp;rsquo;adapter gère la traduction de protocoles, le streaming via server-sent events, l&amp;rsquo;historique de conversation et le traçage OpenTelemetry — tout automatiquement. Pas de middleware personnalisé, pas de plomberie manuelle.&lt;/p&gt;
&lt;h2 id="le-déploiement-est-vraiment-simple"&gt;Le déploiement est vraiment simple&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai déployé des agents sur Container Apps avant et ça fonctionne, mais on finit par écrire beaucoup de code de colle pour la gestion d&amp;rsquo;état et l&amp;rsquo;observabilité. Avec Hosted Agents et &lt;code&gt;azd&lt;/code&gt;, le déploiement c&amp;rsquo;est :&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;# Installer l&amp;#39;extension agent IA&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;# Initialiser depuis un template&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;# Construire, pousser, déployer — terminé&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;Ce seul &lt;code&gt;azd up&lt;/code&gt; construit votre conteneur, le pousse vers ACR, provisionne le projet Foundry, déploie les endpoints de modèle et démarre votre agent. Cinq étapes condensées en une seule commande.&lt;/p&gt;
&lt;h2 id="gestion-de-conversations-intégrée"&gt;Gestion de conversations intégrée&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la partie qui fait gagner le plus de temps en production. Au lieu de construire votre propre store d&amp;rsquo;état de conversation, les Hosted Agents le gèrent nativement :&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;# Créer une conversation persistante&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;# Premier tour&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;# Deuxième tour — le contexte est préservé&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;Pas de Redis. Pas de store de sessions Cosmos DB. Pas de middleware personnalisé pour la sérialisation des messages. La plateforme gère tout simplement.&lt;/p&gt;
&lt;h2 id="mon-framework-de-décision"&gt;Mon framework de décision&lt;/h2&gt;
&lt;p&gt;Après avoir passé en revue les six options, voici mon modèle mental rapide :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin de zéro infrastructure ?&lt;/strong&gt; → Foundry Agents (portail/SDK, pas de conteneurs)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez du code d&amp;rsquo;agent personnalisé mais voulez un hébergement géré ?&lt;/strong&gt; → Foundry Hosted Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin de tâches d&amp;rsquo;agents événementielles et courtes ?&lt;/strong&gt; → Azure Functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin d&amp;rsquo;un contrôle maximum des conteneurs sans K8s ?&lt;/strong&gt; → Container Apps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin de conformité stricte et multi-cluster ?&lt;/strong&gt; → AKS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez un agent HTTP simple avec un trafic prévisible ?&lt;/strong&gt; → App Service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pour la plupart des développeurs .NET qui construisent avec Semantic Kernel ou Microsoft Agent Framework, Hosted Agents est probablement le bon point de départ. Vous obtenez le scale-to-zero, OpenTelemetry intégré, la gestion des conversations et la flexibilité de framework — sans gérer Kubernetes ni monter votre propre stack d&amp;rsquo;observabilité.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Le paysage de l&amp;rsquo;hébergement d&amp;rsquo;agents sur Azure mûrit rapidement. Si vous démarrez un nouveau projet d&amp;rsquo;agent IA aujourd&amp;rsquo;hui, je considérerais sérieusement Foundry Hosted Agents avant de recourir à Container Apps ou AKS par habitude. L&amp;rsquo;infrastructure gérée fait gagner un temps réel, et le pattern hosting adapter vous permet de garder votre choix de framework.&lt;/p&gt;
&lt;p&gt;Consultez le &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;guide complet de Microsoft&lt;/a&gt; et le &lt;a href="https://github.com/microsoft-foundry/foundry-samples/tree/main/samples/python/hosted-agents"&gt;repo Foundry Samples&lt;/a&gt; pour des exemples fonctionnels.&lt;/p&gt;</content:encoded></item><item><title>KubeCon Europe 2026 : Ce que les développeurs .NET devraient vraiment retenir</title><link>https://thedotnetblog.com/fr/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/fr/news/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/</guid><description>Microsoft a publié une avalanche d'annonces Kubernetes à KubeCon Europe 2026. Voici la version filtrée — uniquement les mises à jour AKS et cloud-native qui comptent si vous livrez des apps .NET.</description><content:encoded>&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vous connaissez cette sensation quand un énorme post d&amp;rsquo;annonces tombe et que vous scrollez en pensant « cool, mais concrètement ça change quoi pour moi » ? C&amp;rsquo;est moi à chaque saison KubeCon.&lt;/p&gt;
&lt;p&gt;Microsoft vient de publier son &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;récapitulatif complet de KubeCon Europe 2026&lt;/a&gt; — écrit par Brendan Burns en personne — et honnêtement ? Il y a du vrai contenu ici. Pas juste des cases à cocher, mais des améliorations opérationnelles qui changent votre façon de gérer les choses en production.&lt;/p&gt;
&lt;p&gt;Laissez-moi décortiquer ce qui compte vraiment pour nous développeurs .NET.&lt;/p&gt;
&lt;h2 id="mtls-sans-la-taxe-du-service-mesh"&gt;mTLS sans la taxe du service mesh&lt;/h2&gt;
&lt;p&gt;Voici le truc avec les service meshes : tout le monde veut les garanties de sécurité, personne ne veut la charge opérationnelle. AKS comble enfin cet écart.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/application-network"&gt;Azure Kubernetes Application Network&lt;/a&gt; vous donne le TLS mutuel, l&amp;rsquo;autorisation consciente de l&amp;rsquo;application et la télémétrie du trafic — sans déployer un mesh complet avec sidecars. Combiné avec &lt;a href="https://aka.ms/acns/cilium-mtls"&gt;Cilium mTLS dans Advanced Container Networking Services&lt;/a&gt;, vous obtenez une communication chiffrée pod-à-pod utilisant des certificats X.509 et SPIRE pour la gestion des identités.&lt;/p&gt;
&lt;p&gt;Ce que ça signifie en pratique : vos APIs ASP.NET Core qui communiquent avec des workers en arrière-plan, vos services gRPC qui s&amp;rsquo;appellent mutuellement — tout chiffré et vérifié au niveau réseau, sans aucune modification de code. C&amp;rsquo;est énorme.&lt;/p&gt;
&lt;p&gt;Pour les équipes qui migrent depuis &lt;code&gt;ingress-nginx&lt;/code&gt;, il y a aussi &lt;a href="https://aka.ms/aks/app-routing/gateway-api"&gt;Application Routing avec Meshless Istio&lt;/a&gt; avec support complet de Kubernetes Gateway API. Pas de sidecars. Basé sur les standards. Et ils ont livré des outils &lt;code&gt;ingress2gateway&lt;/code&gt; pour une migration incrémentale.&lt;/p&gt;
&lt;h2 id="observabilité-gpu-qui-nest-pas-une-pensée-après-coup"&gt;Observabilité GPU qui n&amp;rsquo;est pas une pensée après coup&lt;/h2&gt;
&lt;p&gt;Si vous exécutez de l&amp;rsquo;inférence IA aux côtés de vos services .NET (et soyons honnêtes, qui ne commence pas ?), vous avez probablement rencontré l&amp;rsquo;angle mort du monitoring GPU. Vous aviez de super dashboards CPU/mémoire et ensuite&amp;hellip; rien pour les GPU sans configuration manuelle d&amp;rsquo;exporteurs.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/managed-gpu-metrics"&gt;AKS expose maintenant les métriques GPU nativement&lt;/a&gt; dans Prometheus et Grafana managés. Même stack, mêmes dashboards, même pipeline d&amp;rsquo;alertes. Pas d&amp;rsquo;exporteurs custom, pas d&amp;rsquo;agents tiers.&lt;/p&gt;
&lt;p&gt;Côté réseau, ils ont ajouté de la visibilité par flux pour le trafic HTTP, gRPC et Kafka avec une &lt;a href="https://learn.microsoft.com/en-us/azure/aks/container-network-observability-logs"&gt;expérience Azure Monitor en un clic&lt;/a&gt;. IPs, ports, workloads, direction des flux, décisions de policies — tout dans des dashboards intégrés.&lt;/p&gt;
&lt;p&gt;Et voici celle qui m&amp;rsquo;a fait regarder deux fois : &lt;a href="https://learn.microsoft.com/en-us/azure/aks/advanced-container-networking-services-overview"&gt;agentic container networking&lt;/a&gt; ajoute une interface web où vous pouvez poser des questions en langage naturel sur l&amp;rsquo;état réseau de votre cluster. « Pourquoi le pod X n&amp;rsquo;atteint-il pas le service Y ? » → diagnostics en lecture seule depuis la télémétrie en direct. C&amp;rsquo;est vraiment utile à 2h du matin.&lt;/p&gt;
&lt;h2 id="networking-cross-cluster-sans-avoir-besoin-dun-doctorat"&gt;Networking cross-cluster sans avoir besoin d&amp;rsquo;un doctorat&lt;/h2&gt;
&lt;p&gt;Le multi-cluster Kubernetes a toujours été une expérience « apportez votre propre colle réseau ». Azure Kubernetes Fleet Manager propose maintenant du &lt;a href="https://aka.ms/kubernetes-fleet/networking/cross-cluster"&gt;networking cross-cluster&lt;/a&gt; via un cluster mesh Cilium managé :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connectivité unifiée entre clusters AKS&lt;/li&gt;
&lt;li&gt;Registre global de services pour la découverte cross-cluster&lt;/li&gt;
&lt;li&gt;Configuration gérée centralement, pas répétée par cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vous exécutez des microservices .NET sur plusieurs régions pour la résilience ou la conformité, ça remplace beaucoup de colle custom fragile. Le Service A en West Europe peut découvrir et appeler le Service B en East US à travers le mesh, avec des politiques de routage et de sécurité cohérentes.&lt;/p&gt;
&lt;h2 id="des-mises-à-jour-qui-ne-demandent-pas-du-courage"&gt;Des mises à jour qui ne demandent pas du courage&lt;/h2&gt;
&lt;p&gt;Soyons honnêtes — les mises à jour Kubernetes en production sont stressantes. « Mettre à jour et espérer » a été la stratégie de fait pour trop d&amp;rsquo;équipes, et c&amp;rsquo;est la raison principale pour laquelle les clusters restent en retard sur les versions.&lt;/p&gt;
&lt;p&gt;Deux nouvelles capacités changent la donne :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les blue-green agent pool upgrades&lt;/strong&gt; créent un pool de nœuds parallèle avec la nouvelle configuration. Validez le comportement, déplacez le trafic progressivement et gardez un chemin de rollback propre. Plus de mutations in-place sur les nœuds de production.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le rollback d&amp;rsquo;agent pool&lt;/strong&gt; permet de revenir à la version Kubernetes et l&amp;rsquo;image de nœud précédentes d&amp;rsquo;un pool après qu&amp;rsquo;une mise à jour se passe mal — sans reconstruire le cluster.&lt;/p&gt;
&lt;p&gt;Ensemble, ils donnent enfin aux opérateurs un vrai contrôle sur le cycle de vie des mises à jour. Pour les équipes .NET, c&amp;rsquo;est important car la vélocité de la plateforme contrôle directement la vitesse à laquelle vous pouvez adopter de nouveaux runtimes, patchs de sécurité et capacités réseau.&lt;/p&gt;
&lt;h2 id="les-workloads-ia-deviennent-des-citoyens-de-première-classe-kubernetes"&gt;Les workloads IA deviennent des citoyens de première classe Kubernetes&lt;/h2&gt;
&lt;p&gt;Le travail upstream en open-source est tout aussi important. Dynamic Resource Allocation (DRA) vient de passer en GA dans Kubernetes 1.36, faisant du scheduling GPU une vraie fonctionnalité de première classe plutôt qu&amp;rsquo;un contournement.&lt;/p&gt;
&lt;p&gt;Quelques projets à surveiller :&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Projet&lt;/th&gt;
&lt;th&gt;Ce qu&amp;rsquo;il fait&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;API Kubernetes commune pour l&amp;rsquo;inférence — déployez des modèles sans connaître K8s, avec découverte HuggingFace et estimations de coûts&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;Dépannage agentique pour le cloud-native — maintenant un projet 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;Builds déclaratifs d&amp;rsquo;images de conteneur avec génération de SBOM — moins de CVE à l&amp;rsquo;étape de build&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La direction est claire : votre API .NET, votre couche d&amp;rsquo;orchestration Semantic Kernel et vos workloads d&amp;rsquo;inférence devraient tous tourner sur un modèle de plateforme cohérent. On y arrive.&lt;/p&gt;
&lt;h2 id="par-où-commencer-cette-semaine"&gt;Par où commencer cette semaine&lt;/h2&gt;
&lt;p&gt;Si vous évaluez ces changements pour votre équipe, voici ma liste de priorités honnête :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;L&amp;rsquo;observabilité d&amp;rsquo;abord&lt;/strong&gt; — activez les métriques GPU et les logs de flux réseau dans un cluster non-prod. Voyez ce que vous avez manqué.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testez les blue-green upgrades&lt;/strong&gt; — essayez le workflow de rollback avant votre prochaine mise à jour de cluster en production. Construisez la confiance dans le processus.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pilotez le networking identity-aware&lt;/strong&gt; — choisissez un chemin de service interne et activez mTLS avec Cilium. Mesurez l&amp;rsquo;overhead (spoiler : c&amp;rsquo;est minimal).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Évaluez Fleet Manager&lt;/strong&gt; — si vous gérez plus de deux clusters, le networking cross-cluster se rentabilise tout seul en réduisant la colle custom.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Petites expériences, feedback rapide. C&amp;rsquo;est toujours le bon choix.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Les annonces KubeCon peuvent être accablantes, mais cette fournée fait vraiment bouger les choses pour les équipes .NET sur AKS. Meilleure sécurité réseau sans overhead de mesh, vraie observabilité GPU, mises à jour plus sûres et des fondations d&amp;rsquo;infrastructure IA plus solides.&lt;/p&gt;
&lt;p&gt;Si vous êtes déjà sur AKS, c&amp;rsquo;est un excellent moment pour renforcer votre baseline opérationnel. Et si vous prévoyez de migrer des workloads .NET vers Kubernetes — la plateforme vient de devenir nettement plus prête pour la production.&lt;/p&gt;</content:encoded></item></channel></rss>