Guide pratique pour ajouter une orchestration à une application .NET existante

Effectué

.NET Aspire peut être divisé en solutions pour trois problèmes rencontrés par les applications natives Cloud modernes. Il s’agit des étapes suivantes :

  1. Gestion de la complexité de l’orchestration entre les microservices.
  2. Simplification de la façon dont vos microservices utilisent des composants via des packages NuGet.
  3. Accélération de la vitesse de développement par le biais d’outils et de modèles.

Dans cette leçon, découvrez comment l’utilisation de l’orchestration .NET Aspire offre des avantages à vos applications natives Cloud existantes. Découvrez ensuite comment inscrire votre application dans l’orchestration .NET Aspire et examiner les modifications apportées à votre solution.

Avantages de l’orchestration .NET Aspire

L’orchestration est la coordination et la gestion des différents services au sein d’une application native Cloud. .NET Aspire fournit des abstractions pour la gestion de la découverte de services, des variables d’environnement et des configurations de conteneur de votre solution. Ces abstractions fournissent également des modèles de configuration cohérents entre les applications avec de nombreux composants et services.

Diagramme montrant la relation entre le projet AppHost .NET Aspire et les autres services d’une application.

.NET Aspire a trois types de calcul de base qu’il prend en charge avec l’orchestration :

  • ProjectResource : Un projet .NET, tel que des applications web ASP.NET Core.
  • ContainerResource : Image conteneur, telle qu’une image Docker contenant Redis.
  • ExecutableResource : Fichier exécutable.

Comparez .NET Aspire à la façon dont vous gérez la découverte de services à l’aide de Docker Compose. Docker Compose est très bien, mais commence à devenir contre-productif lorsque tout vous devez simplement exécuter plusieurs projets ou exécutables. Vous devez créer des images conteneurs, composer le YAML pour les connecter, puis exécuter des applications à l’intérieur de conteneurs. En outre, il existe des remplacements de variables d’environnement (et des inclusions) et pas IntelliSense, et il est difficile de déterminer exactement ce qui est en cours d’exécution et pourquoi. Le débogage peut également être difficile.

La configuration par le biais d’un code déclaratif est meilleure. À l’aide de .NET Aspire, vous n’avez pas besoin d’apprendre quoi que ce soit au-delà de ce que vous savez déjà. .NET Aspire est une meilleure expérience qui permet de démarrer rapidement et d’effectuer un scale-up vers un orchestrateur comme Docker Compose à l’aide d’un langage de programmation réel.

L’orchestration .NET Aspire prend également en charge votre développement de la manière suivante :

  • Composition de l’application : .NET Aspire spécifie les projets, conteneurs, exécutables et ressources cloud .NET qui composent l’application.
  • Gestion des chaînes de connexion et de découverte de service : L’hôte de l’application gère l’injection des chaînes de connexion et des informations de découverte de service appropriées pour simplifier l’expérience du développeur.

Inscription d’une application existante dans l’orchestration .NET Aspire

Visual Studio fournit des menus pour inscrire un projet existant dans l’orchestration .NET Aspire.

Capture d’écran du menu Ajouter montrant la prise en charge de .NET Aspire Orchestrator mise en surbrillance.

La première fois que vous ajoutez l’orchestration à votre solution, une boîte de dialogue demande le préfixe de nom du projet et explique que les projets AppHost et ServiceDefaults .NET Aspire sont ajoutés. Lorsque vous ajoutez d’autres projets à une solution déjà orchestrée, la boîte de dialogue vous informe que le projet AppHost est mis à jour pour inclure ces projets.

Si vous créez un projet, pendant le nouveau workflow de projet, Visual Studio vous demande si vous souhaitez vous inscrire à l’orchestration .NET Aspire.

Capture d’écran du nouveau workflow de projet montrant l’option Inscrire dans l’orchestration Aspire mise en surbrillance.

Modifications apportées par Aspire à une solution existante

Lorsque vous ajoutez l’orchestration .NET Aspire à votre solution, les modifications suivantes se produisent :

  • Un projet AppHost est ajouté. Le projet contient le code d’orchestration. Il devient le point d’entrée de votre application et est responsable du démarrage et de l’arrêt de votre application. Il gère également la découverte de services et la gestion des chaînes de connexion.
  • Un projet ServiceDefaults est ajouté. Le projet configure OpenTelemetry, ajoute des points de terminaison de contrôle d’intégrité par défaut et active la découverte du service via HttpClient.
  • Le projet de démarrage par défaut de la solution est remplacé par AppHost.
  • Les dépendances sur les projets inscrits dans l’orchestration sont ajoutées au projet AppHost.
  • Le tableau de bord .NET Aspire est ajouté à votre solution, ce qui permet d’accéder à tous les points de terminaison de projet de votre solution.
  • Le tableau de bord ajoute des journaux, des traces et des métriques pour les projets de votre solution.

Si vous ajoutez une orchestration à un projet d’application web, .NET Aspire ajoute automatiquement une référence au projet ServiceDefaults. Il apporte ensuite les modifications suivantes au code dans Program.cs :

  • Ajoute un appel à AddServiceDefaults qui active la découverte par défaut d’OpenTelemetry, de compteurs et de service.
  • Ajoute un appel à MapDefaultEndpoints qui active les points de terminaison par défaut, tels que /health et /alive.