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 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
É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). 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 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
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
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 .NET peuvent être utilisés AWS Transform pour porter votre base de code de .NET Framework vers .NET. 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 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
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
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 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 . 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 WorkSpaces Applications
— 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 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)
-
Multi-App Support avec des domaines personnalisés pour .NET et AWS Elastic Beanstalk
(blog sur AWS les outils de développement)
Mise en conteneur des applications existantes
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 (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 :
-
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
. 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
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 le .NET Framework en utilisant AWS Transform for .NET, 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
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, 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
AWS Lambda
Ressources supplémentaires
-
AWS Toolkit pour 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)