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.
Déplacer les applications Windows vers des conteneurs
Présentation
Selon l'enquête annuelle 2021 de la CNCF
Avantages en termes de coûts
L'infographie suivante montre les économies qu'une entreprise peut réaliser en consolidant ses applications ASP.NET Framework sur des instances Amazon Elastic Compute Cloud (Amazon EC2) sur la base d'AWS une recommandation d'optimisation et d'évaluation des licences
L' AWS OLA a recommandé à l'entreprise de faire un lifting et de passer aux instances individuelles de t3.small. L'entreprise pourrait réaliser ces économies en exécutant sept applications ASP.NET sur des serveurs locaux, comme le montre l'analyse d'utilisation des performances suivante.
Une analyse plus approfondie a révélé que l'entreprise pourrait économiser encore davantage sur les coûts en exécutant ses charges de travail sur des conteneurs. Les conteneurs réduisent la charge du système d'exploitation sur les ressources système telles que l'utilisation du processeur, de la RAM et du disque (expliqué dans la section suivante). Dans ce scénario, l'entreprise pourrait consolider les sept applications sur une seule instance t3.large tout en disposant encore de 3 Go de RAM. La migration vers des conteneurs peut aider l'entreprise à réaliser en moyenne 64 % d'économies sur les coûts de calcul et de stockage en utilisant des conteneurs au lieu d'Amazon EC2.
Recommandations d'optimisation des coûts
La section suivante propose des recommandations pour optimiser les coûts en consolidant les applications et en utilisant des conteneurs.
Réduisez l'encombrement de Windows sur Amazon EC2
Les conteneurs Windows peuvent réduire votre empreinte Windows sur Amazon EC2 en vous permettant de consolider davantage d'applications sur un nombre réduit d'instances EC2. Supposons, par exemple, que vous disposez de 500 applications ASP.NET. Si vous exécutez un cœur par application pour Windows sur Amazon EC2, cela équivaut à 500 instances Windows (t3.small). Si vous supposez un ratio de 1:7 (qui peut augmenter de manière significative en fonction du type/de la taille de l'instance EC2) pour l'utilisation de conteneurs Windows (avec t3.large), vous n'avez besoin que d'environ 71 instances Windows. Cela représente une diminution de 85,8 % de votre empreinte Windows sur Amazon EC2.
Réduisez les coûts de licence Windows
Si vous octroyez une licence à une instance Windows, vous n'avez pas besoin de licence pour les conteneurs exécutés sur cette instance. Par conséquent, la consolidation de vos applications ASP.NET à l'aide de conteneurs Windows peut réduire considérablement vos coûts de licence Windows.
Réduisez votre encombrement de stockage
Chaque fois que vous lancez une nouvelle instance EC2, vous créez et payez un nouveau volume Amazon Elastic Block Store (Amazon EBS) pour héberger le système d'exploitation. Au fur et à mesure que cela évolue, le coût évolue avec lui. Si vous utilisez des conteneurs, vous pouvez réduire les coûts de stockage car tous les conteneurs partagent le même système d'exploitation de base. En outre, les conteneurs utilisent le concept de couches pour réutiliser des parties immuables d'une image de conteneur pour tous les conteneurs en cours d'exécution basés sur cette image. Dans l'exemple de scénario précédent, tous les conteneurs exécutent .NET Framework et partagent donc tous la couche intermédiaire et immuable du framework ASP.NET.
Migrer end-of-support des serveurs vers des conteneurs
Support pour Windows Server 2012 et Windows Server 2012 R2 a pris fin le 10 octobre 2023. Vous pouvez migrer vos applications exécutées sous Windows Server 2012 ou des versions antérieures en les conteneurisant pour qu'elles s'exécutent sur de nouveaux systèmes d'exploitation. Ainsi, vous évitez d'exécuter vos applications sur des systèmes d'exploitation non conformes tout en tirant parti de la rentabilité, de la réduction des risques, de l'efficacité opérationnelle, de la rapidité et de l'agilité qu'offrent les conteneurs.
Cette approche présente un inconvénient à prendre en compte si votre application nécessite des API spécifiques liées à la version du système d'exploitation actuellement utilisée (COM Interop, par exemple). Dans ce cas, vous devez tester le transfert de votre application vers une version plus récente de Windows. Les conteneurs Windows alignent leur image de conteneur de base (par exemple, Windows Server 2019) avec le système d'exploitation de l'hôte du conteneur (par exemple, Windows Server 2019). Les tests et le passage à des conteneurs peuvent faciliter les mises à niveau du système d'exploitation à l'avenir en modifiant l'image de base dans votre Dockerfile et en la déployant sur un nouvel ensemble d'hôtes exécutant la dernière version de Windows.
Supprimer les outils de gestion et les licences tiers
La gestion de votre parc de serveurs nécessite l'utilisation de plusieurs outils d'exploitation système tiers pour la gestion des correctifs et de la configuration. Cela peut rendre la gestion de l'infrastructure complexe et vous devez souvent faire face à des coûts de licence tiers. Si vous utilisez des conteneurs AWS, vous n'avez pas besoin de gérer quoi que ce soit du côté du système d'exploitation. Le moteur d'exécution du conteneur gère les conteneurs. Cela signifie que l'hôte sous-jacent est éphémère et peut facilement être remplacé. Vous pouvez gérer vos conteneurs sans avoir à gérer directement l'hôte du conteneur. De plus, vous pouvez utiliser des outils gratuits tels que AWS Systems Manager Session Manager l'accès facile à l'hôte et la résolution des problèmes.
Améliorez le contrôle et la portabilité
Les conteneurs vous permettent de contrôler plus précisément les ressources du serveur, telles que le processeur et la RAM, que vous n'en avez sur les instances EC2. Pour les instances EC2, vous pouvez contrôler le processeur et la RAM en sélectionnant une famille d'instances, un type d'instance et des options de processeur. Cependant, avec les conteneurs, vous pouvez définir exactement la quantité de CPU ou de RAM que vous souhaitez allouer à un conteneur dans vos définitions de tâches ECS ou aux pods dans Amazon EKS. En fait, nous recommandons de spécifier le processeur et la mémoire au niveau du conteneur pour les conteneurs Windows. Ce niveau de granularité présente des avantages en termes de coûts. Prenons l'exemple de code suivant :
json { "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/demo-service:1", "containerDefinitions": [ { "name": "demo-service", "image": "mcr.microsoft.com/dotnet/framework/samples:aspnetapp-windowsservercore-ltsc2019", "cpu": 512, "memory": 512, "links": [], "portMappings": [ { "containerPort": 80, "hostPort": 0, "protocol": "tcp" } ],
Accélérez l'innovation
Le passage aux conteneurs facilite l'automatisation des étapes du cycle de développement, notamment la création, le test et le déploiement d'applications. Si vous automatisez ces processus, vous donnez à vos équipes de développement et d'exploitation plus de temps pour se concentrer sur l'innovation.
Réduire le coût total de possession
Le passage aux conteneurs réduit souvent le recours aux outils de gestion des licences et de protection des terminaux. Les conteneurs étant des unités de calcul éphémères, vous pouvez automatiser et simplifier les tâches de gestion telles que l'application de correctifs, le dimensionnement, la sauvegarde et la restauration. Cela peut réduire le coût total de possession lié à l'administration et à l'exploitation des charges de travail basées sur des conteneurs. Les conteneurs sont plus efficaces que les machines virtuelles car ils vous permettent d'optimiser le placement de vos applications afin d'augmenter l'utilisation des ressources d'infrastructure de vos applications.
Combler le déficit de compétences
AWS propose des programmes et des journées d'immersion pour améliorer les compétences des équipes de développement client en matière de conteneurs et de DevOps technologies. Cela inclut des services pratiques de conseil et d'habilitation.
Refactorisez vers .NET 5+ et utilisez des conteneurs Linux
Bien que vous puissiez réduire les coûts en déplaçant vos applications .NET Framework vers des conteneurs, vous pouvez réaliser des économies supplémentaires en refactorisant les anciennes applications .NET pour les remplacer par des alternatives natives au cloud sur. AWS
Supprimer les coûts de licence
La refactorisation de votre application de .NET Framework sous Windows à .NET Core sous Linux permet de réaliser des économies d'environ 45 %.
Accédez aux dernières améliorations
La refactorisation de vos applications de .NET Framework sous Windows à .NET Core sous Linux vous donne accès aux dernières améliorations telles que Graviton2. Graviton2 offre un meilleur rapport prix/performances de 40 % par rapport à des instances comparables.
Améliorez la sécurité et les performances
La refactorisation de votre application de .NET Framework sous Windows vers des conteneurs .NET Core sous Linux améliore la sécurité et les performances. Cela s'explique par le fait que vous bénéficiez des derniers correctifs de sécurité, que vous bénéficiez de l'isolation des conteneurs et que vous avez accès à de nouvelles fonctionnalités.
Utilisez des conteneurs Windows au lieu d'exécuter de nombreuses applications sur une seule instance d'IIS
Tenez compte des avantages suivants liés à l'utilisation de conteneurs Windows au lieu d'exécuter plusieurs applications sur une instance Windows EC2 avec Internet Information Services (IIS) :
-
Sécurité — Les conteneurs fournissent un niveau de sécurité prêt à l'emploi qui n'est pas atteint par l'isolation au niveau d'IIS. Si un site Web ou une application IIS est compromis, tous les autres sites hébergés sont exposés et vulnérables. L'évasion de conteneurs est rare et constitue une vulnérabilité plus difficile à exploiter que de prendre le contrôle d'un serveur par le biais d'une vulnérabilité Web.
-
Flexibilité — La possibilité d'exécuter des conteneurs de manière isolée par processus et de disposer de leur propre instance permet des options de mise en réseau plus granulaires. Les conteneurs proposent également des méthodes de distribution complexes sur de nombreuses instances EC2. Vous ne bénéficiez pas de ces avantages lorsque vous consolidez des applications sur une seule instance IIS.
-
Frais de gestion : l'indication du nom du serveur (SNI) crée une surcharge qui nécessite une gestion et une automatisation. Vous devez également vous concentrer sur les opérations classiques de gestion du système d'exploitation, telles que l'application de correctifs, le dépannage des BSOD (si le dimensionnement automatique n'est pas en place), la protection des terminaux, etc. La configuration des sites IIS conformément aux meilleures pratiques de sécurité
est une activité longue et continue. Vous devrez peut-être même définir des niveaux de confiance , ce qui alourdit également les frais de gestion. Les conteneurs sont conçus pour être apatrides et immuables. En fin de compte, vos déploiements sont plus rapides, plus sécurisés et reproductibles si vous utilisez plutôt des conteneurs Windows.
Étapes suivantes
Investir dans une infrastructure moderne pour exécuter vos anciennes charges de travail apporte d'immenses avantages à votre entreprise. AWS les services de conteneurs facilitent la gestion de votre infrastructure sous-jacente, que ce soit sur site ou dans le cloud, afin que vous puissiez vous concentrer sur l'innovation et les besoins de votre entreprise. Près de 80 % de tous les conteneurs du cloud fonctionnent AWS aujourd'hui. AWS fournit un ensemble complet de services de conteneurs pour à peu près tous les cas d'utilisation. Pour commencer, consultez la section Conteneurs à l'adresse AWS