

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Migration d’applications .NET
<a name="migrating-net-workloads"></a>

La migration de vos applications .NET vous AWS permet de créer des charges de travail hautement disponibles avec des fonctionnalités de mise à l'échelle élastique, de réduire les frais d'exploitation et d'accroître l'agilité de votre entreprise en vous concentrant sur votre valeur distinctive.

Cette section se concentre sur les différentes options d'hébergement de vos applications .NET sur AWS. Vous pouvez choisir entre l'utilisation d'une machine virtuelle, une solution gérée telle que [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)la conteneurisation de votre code ou la refactorisation de votre code vers une architecture basée sur des microservices ou sans serveur.

## Évaluation
<a name="migrating-net-workloads-assess"></a>

Le choix d’un chemin de migration pour votre charge de travail .NET repose sur les principaux facteurs suivants :
+ **Rechercher la version .NET utilisée** : Microsoft prend en charge deux implémentations .NET différentes : .NET Framework (1.0 à 4.8) et .NET (.NET Core 1.0 à 3.1 et .NET 5 et versions ultérieures). Tous deux partagent de nombreux composants identiques et peuvent exécuter du code d'application écrit à l'aide des différents langages de programmation .NET (tels que C\#, F\# et VB.NET). Le choix d’une stratégie de migration et d’un service d’hébergement dépend de l’environnement d’exécution utilisé, étant donné que .NET Framework s’exécute sous Windows, alors que la version plus récente de .NET est multiplateforme. Pour .NET Framework, vous pouvez héberger votre code sur un système d’exploitation Windows ou le refactoriser pour utiliser la version plus récente de .NET. Le nouveau .NET peut également être hébergé sur des OS-based services Linux. Lors de la modernisation Framework-based des charges de travail .NET, vous pouvez utiliser [.NET AWS Transform pour](https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html) scanner votre code et générer un rapport d'évaluation de compatibilité. En déterminant si des API .NET Framework non compatibles sont référencées par votre projet, vous pouvez planifier la complexité d’un projet de migration et décider si et quand vous devez refactoriser votre code pour utiliser un environnement d’exécution plus récent.
+ Passez en **revue votre déploiement actuel** : vérifiez si la charge de travail actuellement migrée possède des CI/CD pipelines existants qui peuvent être mis à jour pour déployer les mêmes charges de travail dans le cloud. L’utilisation d’un pipeline de création et de déploiement existant peut réduire le temps nécessaire au déploiement de votre application dans le cloud en automatisant la procédure nécessaire à la création, à la configuration et au déploiement de vos charges de travail.
+ **Examiner votre feuille de route** : en fonction de l’état actuel du projet, vous envisagez peut-être déjà de réarchitecturer ou de reconcevoir vos applications. Toute modernisation effectuée doit tenir compte de la feuille de route du produit. Par exemple, la décision de conteneuriser le code existant ou de refactoriser une architecture monolithique en microservices fait idéalement partie de la feuille de route du produit et s’inscrit dans le cadre d’autres efforts de développement.

## Mobilisation
<a name="migrating-net-workloads-mobilize"></a>

Il existe trois chemins de migration différents à prendre en compte lors de la migration de vos charges de travail .NET vers. AWS Vous pouvez choisir entre les différentes options en fonction de la complexité de votre base de code existante, du temps consacré à la migration et de la taille de l’équipe chargée de soutenir l’effort de migration. Lorsque vous envisagez la modernisation dans le cadre de votre migration, il est recommandé de vous aligner sur la feuille de route du produit.
+ **Réhébergement (lift & shift)** : vous pouvez choisir cette approche si votre priorité est d'accélérer la migration vers une migration AWS avec peu ou pas de modifications. Vous pouvez réhéberger ASP.NET-based des sites Web sur Internet Information Services (IIS) exécutés sur des instances Amazon EC2. [Vous pouvez réhéberger vos applications de bureau (telles que Windows Presentation Foundation, Web Forms et .NET MAUI) sur l'une des plateformes informatiques destinées aux utilisateurs finaux, comme Amazon [Applications WorkSpaces ](https://aws.amazon.com/appstream2/) ou Amazon. WorkSpaces](https://aws.amazon.com/workspaces-family/)
+ **Replateformer** : la replateforme est la solution idéale lorsque vous souhaitez héberger votre application à l’aide d’un service géré sans apporter de modifications au code, mais que vous désirez réduire votre charge opérationnelle en vous déchargeant de tâches lourdes et indifférenciées telles que l’installation, l’application de correctifs, les mises à niveau et la gestion des instances. Cette stratégie convient également aux équipes qui souhaitent passer à des charges de travail basées sur des conteneurs. [Vous pouvez reconfigurer vos applications existantes vers [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) ou utiliser des conteneurs Docker hébergés sur [Amazon ECS, Amazon](https://aws.amazon.com/ecs/) EKS ou. [AWS App Runner](https://aws.amazon.com/apprunner/)](https://aws.amazon.com/eks/)
+ **Refactorisation** : optez pour cette approche si vous pouvez investir du temps et des efforts pour apporter des modifications au code et à l'architecture afin de réduire les frais d'exploitation et d'améliorer l'évolutivité, la haute disponibilité et la reprise après sinistre en utilisant des services AWS cloud natifs. La refactorisation consiste à moderniser votre base de code en transférant les applications .NET Framework existantes vers .NET (anciennement .NET Core) ou en modernisant une base de code existante pour qu’elle s’exécute mieux dans le cloud. Vous pouvez utiliser le [AWS SDK pour .NET](https://aws.amazon.com/sdk-for-net/)pour appeler de nombreux services AWS cloud depuis votre code .NET. Des outils tels que [.NET peuvent être utilisés AWS Transform pour](https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html) porter votre base de code de .NET Framework vers .NET. En refactorisant vos charges de travail .NET existantes pour les exécuter [AWS Lambda](https://aws.amazon.com/lambda/), vous pouvez utiliser l'informatique sans serveur pour éviter le provisionnement et la gestion de l'infrastructure.

## Migrer
<a name="migrating-net-workloads-migrate"></a>

Les étapes de la migration de vos charges de travail .NET dépendent du chemin de migration que vous avez choisi lors de l’étape d’évaluation et de votre type d’application.

### Réhébergement d’applications .NET
<a name="net-rehost"></a>

Choisissez ce chemin de migration si vous souhaitez migrer votre application sans apporter de modifications au code, mais si vous souhaitez bénéficier de la mise à l’échelle automatique, de l’équilibrage de charge et de l’élasticité dans le cloud. Pour les Windows-based sites Web, le réhébergement consiste généralement à les exécuter sur Internet Information Services (IIS) sur AWS. Pour les applications de bureau, vous devez installer l’application et permettre aux utilisateurs de s’y connecter depuis l’extérieur.

### Services d'information Internet sur AWS
<a name="net-iis"></a>

Internet Information Services (IIS) est un serveur Web Microsoft qui s’exécute sur un système d’exploitation Windows et qui sert à héberger des sites Web et des services Web. IIS peut être installé sur n'importe quelle instance Amazon EC2 exécutant Windows Server. Une fois IIS activé et configuré, vous pouvez déployer vos ASP.NET sites Web et services en utilisant le même mécanisme de déploiement que celui que vous utilisez pour les environnements sur site.

Si vous hébergez IIS sur des instances Windows EC2, il est important de suivre le [AWS Well-ArchitectedFramework](https://aws.amazon.com/architecture/well-architected/) en utilisant l'équilibrage de charge, les groupes Auto Scaling et le déploiement multi-AZ en fonction de votre charge de travail et de vos besoins en matière de HADR. Nous vous recommandons d'utiliser le [AWS Launch Wizard](https://docs.aws.amazon.com/launchwizard/latest/userguide/what-is-launch-wizard-iis.html)car il vous guide tout au long du dimensionnement, de la configuration et du déploiement d'une charge de travail Windows Server sur AWS laquelle sont exécutées des ressources IIS. Launch Wizard déploie une architecture hautement disponible qui couvre deux zones de disponibilité avec les composants de calcul, de réseau et de stockage requis pour un VPC récemment créé ou existant.

### Hébergement d'applications de bureau sur AWS
<a name="net-hosting"></a>

De nombreux clients ont besoin d’accéder à des applications de client lourd basées sur Windows. Vous avez le choix entre trois plateformes différentes :
+ [Amazon EC2](https://aws.amazon.com/pm/ec2/) — Choisissez cette option si vous souhaitez que vos utilisateurs se connectent à un Server-based environnement Windows à l'aide de Microsoft Remote Desktop. Avec cette option, vous êtes responsable de l’application des correctifs et de la maintenance de votre système d’exploitation. Vous devez également acheter des licences d’accès client Remote Desktop Services (RDS CAL) supplémentaires pour vos utilisateurs et une [assurance logicielle (SA) active](https://aws.amazon.com/windows/resources/licensemobility/). Pour plus d'informations, consultez la section [Microsoft Licensing AWS](https://aws.amazon.com/windows/resources/licensing/) dans la AWS documentation.
+ [Amazon WorkSpaces](https://aws.amazon.com/workspaces-family/) — Choisissez cette option si vous avez besoin d'une infrastructure de bureau virtuel (VDI) entièrement gérée pour vos utilisateurs. Vous pouvez l'utiliser WorkSpaces pour fournir une expérience Windows Desktop persistante à vos utilisateurs. Vous pouvez également personnaliser votre WorkSpaces environnement et installer des applications .NET à l'aide d'une image personnalisée ou [AWS Systems Manager](https://aws.amazon.com/systems-manager/)pour déployer vos applications .NET WorkSpaces dans vos environnements. Les utilisateurs peuvent se connecter à l'aide de leur navigateur ou du [ WorkSpacesclient Amazon](https://clients.amazonworkspaces.com/).
+ [Amazon WorkSpaces Applications](https://aws.amazon.com/appstream2/) — Choisissez cette option pour fournir un accès sécurisé, fiable et évolutif aux applications et aux bureaux non persistants depuis n'importe quel endroit. Vous pouvez utiliser WorkSpaces Applications pour permettre à vos utilisateurs d'accéder à vos applications .NET depuis le Web. Si vous possédez déjà des CAL RDS et une SA active, vous pouvez utiliser ces licences avec des WorkSpaces applications à l'aide de [License](https://aws.amazon.com/windows/resources/licensemobility/) Mobility.

## Recréation de plateforme
<a name="migrating-net-workloads-replatform"></a>

La replateforme implique de modifier votre environnement d’hébergement avec peu ou pas de modifications de code. Choisissez cette stratégie pour réduire vos frais opérationnels et tirer parti des fonctionnalités et des services cloud.

### AWS Elastic Beanstalk
<a name="net-beanstalk"></a>

Vous pouvez l'utiliser [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)pour reconfigurer vos charges de travail .NET Framework. Si vous regroupez vos ASP.NET Core-based applications ASP.NET-based ou vos applications, vous pouvez rapidement les déployer et les gérer AWS sans avoir à vous renseigner sur l'infrastructure qui exécute ces applications. Cela réduit la complexité sans pour autant sacrifier le choix ou le niveau de contrôle. Vous téléchargez simplement votre application, et Elastic Beanstalk gère automatiquement les détails du dimensionnement des capacités, de la répartition de la charge, de la mise à l'échelle et de la surveillance de l'état de l'application.

Pour en savoir plus, veuillez consulter les ressources suivantes :
+ [Création et déploiement d'applications .NET sur Elastic Beanstalk (documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html) Elastic Beanstalk)
+ [Utilisation de .NET Core sous Linux (documentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-dotnet-core-linux.html) Elastic Beanstalk)
+ [Multi-App Support avec des domaines personnalisés pour .NET et AWS Elastic Beanstalk](https://aws.amazon.com/blogs/developer/multi-app-support-with-custom-domains-for-net-and-aws-elastic-beanstalk/) (blog sur AWS les outils de développement)

### Mise en conteneur des applications existantes
<a name="net-containerize-existing"></a>

Vous pouvez utiliser Amazon ECS ou Amazon EKS pour héberger vos applications Docker-based conteneurisées. AWS gère les deux services. Le choix entre les deux dépend des connaissances et des préférences existantes. Les deux options peuvent exécuter Linux-based des conteneurs ou Windows-based des conteneurs.

Pour en savoir plus, veuillez consulter les ressources suivantes :
+ [Conteneurs Windows Amazon EC2 (](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_Windows.html)documentation Amazon ECS)
+ [Activation du support Windows pour votre cluster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/windows-support.html) (documentation Amazon EKS)
+ [Exécution de conteneurs Windows avec Amazon ECS sur AWS Fargate](https://aws.amazon.com/blogs/containers/running-windows-containers-with-amazon-ecs-on-aws-fargate/) (blog AWS)
+ [Accélération des délais de lancement des conteneurs Windows grâce au générateur d'images EC2 et à la stratégie de cache d'images (Blog](https://aws.amazon.com/blogs/containers/speeding-up-windows-container-launch-times-with-ec2-image-builder-and-image-cache-strategy/))AWS 
+ [Démarrage rapide : CI/CD pour les applications .NET sur AWS Fargate](https://aws.amazon.com/quickstart/architecture/dotnet-cicd-fargate/) (AWS documentation)

La conteneurisation des applications basées sur .NET dépend de l’environnement d’exécution .NET utilisé. Éléments à prendre en compte :
+ ** Framework-based Les applications .NET s'exécutent sur des conteneurs Windows** : l'ajout du support Docker aux applications existantes se fait en créant un fichier Docker qui décrit la manière dont l'application doit être conteneurisée.
+ **.NET ou .NET Core** : en plus d'exécuter des versions plus récentes. NET-based applications Web sur Amazon ECS ou Amazon EKS, que vous pouvez également utiliser [AWS App Runner](https://aws.amazon.com/apprunner/). App Runner est une solution entièrement gérée sans serveur qui exécute votre code ou votre image de conteneur et qui gère l’équilibrage de charge, l’autoscaling, la journalisation, les certificats et le réseau.

### Refactor/re-architect code existant
<a name="net-refactor"></a>

Choisissez cette option si votre entreprise a un fort besoin d'ajouter des fonctionnalités, de l'évolutivité ou des performances qui seraient autrement difficiles à atteindre dans l'environnement actuel de l'application. En fonction de la feuille de route de votre application, vous pouvez choisir de modifier votre code pour utiliser le dernier cadre, des services natifs cloud, ou de le reconcevoir pour mieux fonctionner dans le cloud.

La première option de refactorisation disponible consiste à migrer votre application .NET Framework existante vers .NET. La transition vers .NET vous offre l’avantage de s’exécuter sous Linux plutôt que sous Windows. Cela réduit le coût total des licences, vous fournit les derniers cadres et propose les dernières versions des langages de programmation .NET.

### AWS SDK pour .NET
<a name="sdk-for-net"></a>

[AWS SDK pour .NET](https://aws.amazon.com/sdk-for-net/)simplifie l'utilisation de Services AWS en fournissant un ensemble de bibliothèques cohérentes et familières aux développeurs .NET. Le AWS SDK offre un support multiplateforme et est distribué à l'aide de. NuGet Les développeurs peuvent utiliser le AWS SDK pour appeler facilement des services cloud à partir de leur code .NET, en respectant les exigences de stockage, de mise en file d'attente, d'authentification et de configuration de leur application.

### Modernisation des applications .NET Framework
<a name="net-modernize"></a>

Vous pouvez migrer depuis le .NET Framework en utilisant [AWS Transform for .NET](https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html), qui analyse vos fichiers de code et crée un rapport qui aide à planifier la feuille de route de migration de votre portefeuille d'applications. L'assistant de portage pour .NET peut également réduire votre charge de portage en identifiant les API et les packages .NET Core incompatibles et en trouvant des solutions de remplacement connues. La migration des applications .NET Framework vers .NET permet de les exécuter sur des processeurs ARM64-based Graviton pour un meilleur rapport prix/performances. Pour plus d'informations, consultez [.NET sur Graviton](https://github.com/aws/aws-graviton-getting-started/blob/main/dotnet.md) on GitHub et [Graviton et les conteneurs](https://catalog.workshops.aws/graviton/en-US/amazoncontainers) dans la documentation de AWS Workshop Studio.

### Du monolithe aux microservices
<a name="net-monolith"></a>

De nombreuses équipes de développement souhaitent reconcevoir leurs applications monolithiques existantes en microservices. En passant à des architectures basées sur des microservices, vos équipes de développement peuvent accroître l’agilité du développement, réduire les coûts de calcul, mettre à l’échelle les services individuellement et réduire leurs délais de déploiement. En identifiant les composants et en groupant les fonctionnalités, les équipes de développement peuvent extraire progressivement les fonctionnalités des applications monolithiques .NET Framework vers les services .NET.

### Refactorisation vers des applications sans serveur
<a name="net-serverless-refactor"></a>

[AWS Lambda](https://aws.amazon.com/lambda/)est un service informatique sans serveur piloté par les événements qui vous permet d'exécuter du code pour pratiquement n'importe quel type d'application ou de service principal sans provisionner ni gérer de serveurs. Vous pouvez extraire la logique de votre application existante pour créer des flux de travail sans serveur basés sur des événements qui se mettent automatiquement à l’échelle en cas de besoin à l’aide de .NET et de Lambda. Les [cas d’utilisation courants pour Lambda](https://docs.aws.amazon.com/lambda/latest/dg/applications-usecases.html) incluent les charges de travail pilotées par des événements qui s’exécutent pendant quelques secondes ou quelques minutes avec des besoins de mise à l’échelle variés, tels que le traitement de fichiers, l’analytique, les sites Web et les applications mobiles. Pour plus d'informations, consultez la section [Création de fonctions Lambda avec C\#](https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html) dans la documentation Lambda.

## Ressources supplémentaires
<a name="migrating-net-workloads-resources"></a>
+ [AWS Toolkit pour Azure DevOps](https://aws.amazon.com/vsts/)(AWS documentation)
+ [Configuration d'un CI/CD pipeline en intégrant Jenkins à AWS CodeBuild et AWS CodeDeploy](https://aws.amazon.com/blogs/devops/setting-up-a-ci-cd-pipeline-by-integrating-jenkins-with-aws-codebuild-and-aws-codedeploy/) (AWS DevOps Blog)
+ [À propos de l'outil de AWS déploiement pour .NET](https://aws.github.io/aws-dotnet-deploy/) (AWS GitHub)
+ [.NET activé AWS](https://aws.amazon.com/developer/language/net/) (AWS documentation)
+ [aws/dotnet](https://github.com/aws/dotnet) (GitHub)