DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Comment exécuter un conteneur Docker sur le cloud
    Uncategorized

    Comment exécuter un conteneur Docker sur le cloud

    février 24, 2023
    Comment exécuter un conteneur Docker sur le cloud
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Au cours des dernières années, un nombre croissant d’organisations et de développeurs ont rejoint l’aventure Docker. La conteneurisation simplifie le processus de développement logiciel car elle élimine la gestion des dépendances et l’utilisation de matériel spécifique. Néanmoins, le plus grand avantage de l’utilisation de conteneurs réside dans la portabilité qu’ils offrent. Mais, il peut être assez déroutant de savoir comment exécuter un conteneur sur le cloud. Vous pouvez certainement déployer ces conteneurs sur des serveurs de votre fournisseur de cloud en utilisant l’infrastructure en tant que service (IaaS). Cependant, cette approche ne vous ramènera qu’au problème que nous avons mentionné précédemment, à savoir que vous devrez maintenir ces serveurs lorsqu’il existe une meilleure façon de le faire.

    Table des matières

    • Comment exécuter un conteneur Docker sur le cloud
      • Utilisation d’un registre de conteneurs
      • Utiliser le conteneur en tant que service
    • Pourquoi devrais-je utiliser CaaS ?
    • Quelles sont les meilleures solutions CaaS ?
      • AWS ECS
      • AWS Lambda
      • Coureur d’application AWS
      • Instances de conteneur Azure
      • Google Cloud Run
    • Conclusion

    Comment exécuter un conteneur Docker sur le cloud

    Utilisation d’un registre de conteneurs

    Vous lisez probablement ceci si votre conteneur s’exécute localement mais vous vous demandez comment l’exécuter sur le cloud. Dans ce cas, la prochaine étape à suivre pour l’amener dans le cloud consiste à sélectionner un registre de conteneurs qui servira d’emplacement centralisé pour stocker vos conteneurs. Essentiellement, vous devrez pousser votre conteneur vers ce registre, qu’il soit public ou privé, afin que votre image puisse être distribuée à partir de là.

    Utiliser le conteneur en tant que service

    Containers-as-a-Service (CaaS) est un concept qui permet aux entreprises d’exécuter directement leur conteneur sur le cloud en utilisant le fournisseur de leur choix. Avec CaaS, l’infrastructure nécessaire pour faire fonctionner les conteneurs tels que les outils d’orchestration, par exemple, Docker Swarm, Kubernetes, OpenStack, etc., ainsi que les logiciels de gestion de cluster sont inexistants pour l’utilisateur. En passant, CaaS rejoint les modèles de services cloud déjà établis tels que l’infrastructure en tant que service (IaaS), la plate-forme en tant que service (PaaS) et le logiciel en tant que service (SaaS).

    Pourquoi devrais-je utiliser CaaS ?

    Certains des avantages de l’utilisation de Container-as-a-Service sont :

    • Réduction des coûts: cela élimine le temps, les efforts et l’argent consacrés à la maintenance d’une infrastructure sécurisée pour faire fonctionner votre conteneur.
    • La flexibilité: vous pouvez facilement passer d’un cloud à l’autre ou même revenir à votre infrastructure sur site, vous libérant ainsi de la dépendance vis-à-vis d’un fournisseur.
    • Vitesse: puisque l’infrastructure sous-jacente en fait abstraction, vous pouvez déployer votre conteneur plus rapidement.

    Dans l’ensemble, CaaS simplifiera non seulement le processus d’exécution d’une application logicielle, mais améliorera également la sécurité globale qui l’entoure, car la plupart des solutions CaaS offrent des analyses de vulnérabilité. De plus, vous n’avez pas à vous soucier de la gestion du matériel qui fera fonctionner votre conteneur.

    Quelles sont les meilleures solutions CaaS ?

    Lors du choix d’une solution CaaS, certaines des considérations clés incluent :

    • Peut-il faire fonctionner des applications multi-conteneurs ?
    • Quels réseaux et fonctions de stockage sont disponibles ?
    • Quel format de fichier prend-il en charge ?
    • Comment le stockage est-il réalisé ?
    • Quel modèle de facturation utilise-t-il ?

    Amazon Elastic Container Service (Amazon ECS)

    Amazon ECS est une plate-forme d’orchestration de conteneurs évolutive d’AWS conçue pour exécuter, arrêter et gérer des conteneurs dans un environnement de cluster à l’aide de la définition de tâche. Essentiellement, la définition de tâche est l’endroit où vous définissez :

    • Le contenant à utiliser.
    • Combien de conteneurs exécuter.
    • Comment vos conteneurs sont liés.
    • Quelles ressources vos conteneurs utilisent.

    Note: AWS ECS prend également en charge le montage de volumes EFS.

    Dans cet esprit, vous avez deux façons d’utiliser ECS :

    1. En utilisant des instances EC2.
    2. En utilisant Fargate.
    Options d'orchestration de conteneur AWS ECS

    ECS Avec EC2

    Dans ce cas, les conteneurs seront déployés sur des instances EC2 (VM) créées pour le cluster. Les mérites comprennent:

    • Contrôle total sur le type d’instance EC2 utilisé. Votre conteneur est utilisé pour l’apprentissage automatique et est orienté GPU, ce qui signifie que vous pouvez choisir de l’exécuter sur une instance EC2 optimisée pour cet usage.
    • Réduisez vos coûts en utilisant des instances Spot, qui peuvent réduire vos coûts jusqu’à 90 %.

    Par contre, le seul inconvénient est que :

    • Vous êtes responsable des correctifs, de la gestion de la sécurité du réseau et de l’évolutivité associée à ces instances.

    Tarification:

    En ce qui concerne les coûts, vous êtes facturé pour les instances EC2 exécutées dans votre cluster ECS et la mise en réseau VPC.

    ECS avec Fargate

    AWS Fargate a été lancé en 2017, et avec ce modèle, vous n’avez pas à vous soucier de la gestion des instances EC2. AWS Fargate gère directement les serveurs sous-jacents requis pour exécuter votre conteneur en préconfigurant un cluster pour vous. Il vous suffira d’y ajouter votre charge de travail. Les avantages incluent :

    • Aucune infrastructure à gérer.
    • AWS s’occupe de la disponibilité et de l’évolutivité de votre application de conteneur.
    • Fargate Spot, basé sur des principes similaires aux instances Spot, AWS mentionne une réduction des coûts pouvant aller jusqu’à 70%.

    En revanche, l’inconvénient est:

    • Un seul mode de mise en réseau est actuellement pris en charge (awsvpc), ce qui peut vous limiter avec les couches réseau dans certains scénarios spécifiques que vous pourriez essayer de réaliser.

    Un récent rapport de Datadog mentionne qu’en 2021, 32 % des environnements de conteneurs AWS utilisaient AWS Fargate. Cette tendance confirme que les entreprises basculent progressivement vers des environnements sans serveur.

    Tarification:

    La tarification de Fargate est basée sur un modèle « pay as you go ». Il n’y a pas de frais initiaux et vous ne payez que pour les ressources de calcul et de mémoire consommées. Voici un exemple de tarification pour la région USA Ouest (Oregon) :

    • 0,04048 $ par processeur virtuel par heure.
    • 0,004445 $ par gigaoctet par heure.

    Le tableau ci-dessous vous aidera à mieux comprendre la terminologie utilisée avec ECS/Fargate et Kubernetes :

    Couche d’infrastructure Composant ECS Fargate Kubernetes
    Charge de travail Unité de déploiement
    État désiré
    Point de terminaison d’accès
    Tâche
    Service
    ALB
    Cosse
    Déploiement
    Entrée
    Avion de contrôle Point de terminaison de l’API
    Planificateur
    Manette
    Gestion de l’état
    Service frontal
    Gestionnaire de capacité
    Gestionnaire de cluster
    BD d’état
    C’était apiserver
    Planificateur Kube
    C’était un contrôleur
    etcd
    Plan de données Système d’exploitation invité
    Agent
    Exécution du conteneur
    Réseau
    AmazonLinux 2
    Agent Fargate
    Docker
    ENI/VPC
    Linux/Windows
    Kubelet
    Conteneur
    CN/Kubeproxy

    AWS Lambda

    Un service sans serveur d’AWS dans lequel vous apportez votre code, qu’il s’agisse de Java, Go, C#, Python, Powershell, Node.js ou Ruby, et Amazon l’exécute dans une fonction appelable conforme à l’interface Lambda de leur langage. Les fonctions Lambda sont principalement appelées en les connectant à AWS API Gateway, qui expose les fonctions en tant qu’appels d’API REST. Vous vous demandez peut-être pourquoi nous mentionnons même AWS Lambda à ce stade, car il n’y a aucun lien avec Docker ou les images de conteneurs. Selon AWS, en décembre 2020, AWS Lambda a commencé à prendre en charge l’exécution d’images de conteneurs d’une taille maximale de 10 Go. L’utilisation de Lambda pour exécuter un conteneur Docker sur le cloud vous offre :

    • Évolutivité: Lambda créera automatiquement de nouvelles instances de votre fonction pour répondre à la demande, car elle peut évoluer jusqu’à 500 nouvelles instances par minute.

    Cependant, vous devrez peut-être faire face à :

    • Portabilité réduite: Étant donné que Lambda est la technologie sans serveur propriétaire d’AWS, vous devrez ajuster considérablement votre fonction pour passer à un autre fournisseur de cloud.
    • Évolutivité lente: Lorsque nous avons mentionné comment Lambda peut créer de nouvelles instances, nous ne parlions pas de sa vitesse. Un démarrage à froid de votre fonction prendra du temps et impactera durement les applications Java et .NET.
    • Impossible d’exécuter des tâches de longue durée: Les fonctions Lambda ne peuvent s’exécuter que pendant 15 minutes.

    Tarification:

    Vous êtes facturé en fonction du nombre de demandes de leurs fonctions et de la durée (temps passé à exécuter la fonction). Le prix variera également en fonction de la quantité de mémoire que vous allouez à votre fonction. Néanmoins, Lambda propose un niveau gratuit qui fonctionne même si vous utilisez votre durée annuelle de niveau gratuit AWS, qui offre 400 000 Go-secondes de temps de calcul chaque mois.

    Coureur d’application AWS

    Lancé en mai 2021, AWS App Runner facilite l’intégration d’une application Web dans le cloud sans se soucier de la mise à l’échelle ou de l’infrastructure qui lui est associée. Essentiellement, il exécute simplement Amazon ECS avec Fargate pour exécuter votre conteneur, mais vous n’avez pas besoin d’installer ou de configurer quoi que ce soit lié à Fargate pour démarrer. Il peut fonctionner dans mode construction, qui extrait le code de votre référentiel GitHub et construit l’application à tous les commits que vous pourriez envoyer à votre branche principale. Alternativement, il peut fonctionner dans mode conteneur, où vous connecterez votre registre de conteneurs (seul AWS ECR est pris en charge) et pointez vers votre image. Si vous voulez voir ce qu’AWS a prévu pour App Runner, ils décrivent tout ce que vous devez savoir avec leur feuille de route détaillée.

    Le principal avantage d’AWS App Runner lorsqu’il s’agit d’exécuter un conteneur Docker sur le cloud est que :

    • Il est facile à configurer et offre un moyen simple d’exécuter une application Web dans le cloud.

    D’autre part, les inconvénients comprennent:

    • Le mode de construction ne prend en charge que les runtimes Python et Node.js.
    • Impossible de réduire à 0, vous devez payer pour au moins une instance.
    • Le mode de construction n’a pas d’intégration avec AWS CodeCommit ou une autre gestion du contrôle des sources, ce qui signifie que vous serez obligé d’utiliser GitHub.
    • L’application ne peut pas communiquer avec le VPC privé : plus de détails ici.

    Tarification:

    Vous êtes facturé pour ce que vous utilisez. Par exemple, une instance minimale (1vCPU, 2 Go) coûtera 0,078 USD par heure ou environ 56,00 USD par mois, plus un petit supplément pour la construction et le déploiement automatiques, si elle est toujours en cours d’exécution :

    • 0,064 $ par vCPU par heure.
    • 0,007 $ par gigaoctet par heure.
    • Déploiement automatique : 1 $ par application par mois.
    • Frais de construction : 0,005 $/minute de construction.

    Des informations détaillées sur les prix sont disponibles sur leur site Web.

    Instances de conteneur Azure (ACI)

    Microsoft est arrivé tardivement sur le marché du CaaS depuis l’annonce d’Azure Container Instances en juillet 2017. Il offre :

    • Prise en charge du stockage persistant en montant le partage de fichiers Azure sur le conteneur.
    • Groupes co-planifiés, Azure prend en charge la planification de groupes multi-conteneurs qui partagent une machine hôte, un réseau local ou un stockage.
    • …

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.