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
La migration de vos applications .NET vous AWS permet de créer des charges de travail hautement disponibles avec des fonctionnalités d'évolutivité élastiques, 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
Évaluation
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). Toutes deux partagent de nombreux composants 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. La version plus récente de .NET peut également être hébergée sur des services basés sur le système d’exploitation Linux. Lorsque vous modernisez des charges de travail basées sur .NET Framework, vous pouvez utiliser l’Assistant de portage pour .NET
ou AWS Toolkit for .NET Refactoring afin d’analyser votre code et générer un rapport d’évaluation de compatibilité. En déterminant s'il existe un .NET Framework incompatible APIs référencé 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
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 des sites Web basés sur ASP.NET vers des services Internet (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 2.0 AppStream
ou Amazon. WorkSpaces -
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
ou utiliser des conteneurs Docker hébergés sur Amazon ECS, Amazon EKS ou. AWS App Runner -
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
pour appeler de nombreux services AWS cloud depuis votre code .NET. Des outils tels que Porting Assistant for .NET AWS Microservice Extractor for .NET peuvent être utilisés pour porter votre base de code de .NET Framework vers .NET et diviser votre application monolithique en microservices. En refactorisant vos charges de travail .NET existantes pour les exécuter AWS Lambda , vous pouvez utiliser l'informatique sans serveur pour éviter le provisionnement et la gestion de l'infrastructure.
Migrer
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
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 sites Web basés sur Windows, le réhébergement signifie 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
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 EC2 instance Amazon exécutant Windows Server. Une fois IIS activé et configuré, vous pouvez déployer vos sites Web et services ASP.NET 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 EC2 Windows, il est important de suivre le AWS Well-Architected
Hébergement d'applications de bureau sur AWS
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
— Choisissez cette option si vous souhaitez que vos utilisateurs se connectent à un environnement Windows Server à 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 (RDS CALs) supplémentaires pour vos utilisateurs et une assurance logicielle (SA) active . Pour plus d'informations, consultez la section Microsoft Licensing AWS dans la AWS documentation. -
Amazon WorkSpaces
— 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 pour déployer vos applications .NET WorkSpaces dans vos environnements. Les utilisateurs peuvent se connecter à l'aide de leur navigateur ou du WorkSpacesclient Amazon . -
Amazon AppStream 2.0
— 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 la AppStream version 2.0 pour permettre à vos utilisateurs d'accéder à vos applications .NET depuis le Web. Si vous disposez déjà d'un RDS CALs et d'une SA active, vous pouvez utiliser ces licences avec la AppStream version 2.0 en utilisant License Mobility .
Recréation de plateforme
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
Vous pouvez l'utiliser AWS Elastic Beanstalk
Pour en savoir plus, veuillez consulter les ressources suivantes :
-
Création et déploiement d'applications .NET sur Elastic Beanstalk (documentation Elastic Beanstalk)
-
Utilisation de .NET Core sous Linux (documentation Elastic Beanstalk)
-
Support multi-applications avec domaines personnalisés pour .NET et AWS Elastic Beanstalk
(blog sur les AWS outils de développement)
Mise en conteneur des applications existantes
Vous pouvez utiliser Amazon ECS ou Amazon EKS pour héberger vos applications conteneurisées basées sur Docker. 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 des conteneurs basés sur Linux ou sur Windows.
Pour en savoir plus, veuillez consulter les ressources suivantes :
-
Conteneurs Amazon EC2 Windows (documentation Amazon ECS)
-
Activation du support Windows pour votre cluster Amazon EKS (documentation Amazon EKS)
-
Exécution de conteneurs Windows avec Amazon ECS sur AWS Fargate
(blog AWS) -
Démarrage rapide : CI/CD pour les applications .NET sur AWS 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 :
-
Les applications basées sur .NET Framework s’exécutent sur des conteneurs Windows : l’ajout de la prise en charge de 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. Vous pouvez l'utiliser AWS App2Container
pour conteneuriser et migrer facilement des applications basées sur .NET Framework existantes vers. AWS App2Container analyse votre serveur IIS pour déterminer les fichiers requis et extrait l’application cible pour créer une image Docker. Vous pouvez également utiliser App2Container pour créer les artefacts de déploiement nécessaires pour héberger votre application dans le. AWS Cloud -
.NET ou .NET Core : outre l'exécution de nouvelles applications Web basées sur .NET sur Amazon ECS ou Amazon EKS, vous pouvez également utiliser. AWS App Runner
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.
Refactorisation/reconception du code existant
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
AWS SDK pour .NET
Modernisation des applications .NET Framework
Vous pouvez migrer depuis .NET Framework à l’aide de l’Assistant de portage pour .NET
Du monolithe aux microservices
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, adapter les services individuellement et réduire leurs délais de déploiement. AWS Microservice Extractor for .NET
Refactorisation vers des applications sans serveur
AWS Lambda
Ressources supplémentaires
-
Amazon CodeCatalyst
(CodeCatalystdocumentation) -
AWS Toolkit for Azure DevOps
(AWS documentation) -
Configuration d'un CI/CD pipeline en intégrant Jenkins à AWS CodeBuild et AWS CodeDeploy
(AWS DevOps Blog) -
À propos de l'outil de AWS déploiement pour .NET
(AWS GitHub) -
.NET activé AWS
(AWS documentation) -
aws/dotnet (
) GitHub