LFCA apprenez les concepts de base de l'utilisation des conteneurs - Partie 22

LFCA apprenez les concepts de base de l'utilisation des conteneurs - Partie 22

Au fil du temps, à mesure que la demande de tests rapides et de déploiement des applications s'est développé couplé à des cycles commerciaux plus rapides, les organisations ont été obligées d'innover afin de suivre l'environnement commercial au rythme rapide.

La quête pour moderniser les applications et en créer de nouvelles pour créer des workflows agiles a conduit au concept d'utilisation des conteneurs. La technologie de contenerisation est presque aussi ancienne que la virtualisation. Cependant, les conteneurs n'allumaient pas beaucoup d'excitation avant Docker a explosé dans la scène en 2013 et a suscité un intérêt frénétique parmi les développeurs et autres professionnels de l'informatique.

Actuellement, toutes les entités technologiques géantes telles que Google, Amazone, Microsoft, et chapeau rouge Pour mentionner que quelques-uns ont sauté dans le train en marche.

Pourquoi les conteneurs?

L'un des défis auxquels les développeurs sont confrontés est la différence dans les environnements informatiques à chaque étape du développement logiciel. Des problèmes surviennent lorsque l'environnement logiciel est différent d'une étape à l'autre.

Par exemple, une application peut s'exécuter de manière transparente sur un environnement de test en utilisant Python 3.6. Cependant, l'application se comporte étrangement, renvoie certaines erreurs ou des plantages complètement lorsqu'ils sont portés dans un environnement de production en cours d'exécution Python 3.9.

Les conteneurs sont venus sur la scène pour relever ce défi et s'assurer que les applications s'exécutent de manière fiable lorsqu'elle est déplacée d'un environnement informatique à la suivante à chaque étape du développement de logiciels - du PC des développeurs jusqu'à l'environnement de production. Et ce n'est pas seulement l'environnement logiciel qui peut provoquer de telles incohérences, mais aussi les différences dans la topologie du réseau et les politiques de sécurité.

Que sont les conteneurs?

UN récipient est une unité logicielle isolée qui emballe tous le code binaire, bibliothèques, exécutables, dépendances et fichiers de configuration dans un seul pack. Il ne vient pas avec une image du système d'exploitation qui le rend léger et facilement portable.

Une image de conteneur est un package autonome, léger et exécutable qui regroupe tout ce qui est nécessaire pour exécuter l'application. Au moment de l'exécution, une image de conteneur se transforme en conteneur. Dans le cas d Docker, par exemple, une image docker devient un conteneur docker lorsqu'il est exécuté sur Moteur docker. Docker est un environnement d'exécution utilisé pour construire des applications conteneurisées.

Les conteneurs exécutés en isolement complet du système d'exploitation sous-jacent, et les applications conteneurisées s'exécuteront toujours de manière cohérente, quel que soit l'environnement informatique ou l'infrastructure. C'est pour cette raison qu'un développeur peut développer une application à partir du confort de cet ordinateur portable et le déployer facilement sur un serveur.

La cohérence et la fiabilité des conteneurs de course donne aux développeurs la tranquillité d'esprit en sachant que leurs applications fonctionneront comme prévu, peu importe où ils sont déployés.

En quoi les conteneurs sont-ils différents des machines virtuelles?

Une chose commune que les conteneurs et les machines virtuelles partagent est qu'ils fonctionnent dans un environnement virtualisé. La conteneurisation, en un sens, est une forme de technologie virtualisée. Cependant, les conteneurs diffèrent des machines virtuelles à plus d'un titre.

Machines virtuelles

Une machine virtuelle également appelée instance virtuelle ou Machine virtuelle Bref est une émulation d'un serveur physique ou d'un PC. La virtualisation est une technologie qui permet de créer des machines virtuelles. Le concept de virtualisation remonte au début des années 1970 et a jeté les bases de la première génération de technologie cloud.

Dans la virtualisation, une couche d'abstraction est créée au-dessus d'un serveur à métal nu ou du matériel informatique. Cela permet aux ressources matérielles d'un seul serveur de partager sur plusieurs machines virtuelles.

Le logiciel utilisé pour faire de la couche d'abstraction est appelé hyperviseur. L'hyperviseur résume la machine virtuelle et le système d'exploitation invité du métal nu ou du matériel informatique. Ainsi, une machine virtuelle se trouve au-dessus de l'hyperviseur qui rend les ressources matérielles disponibles grâce à la couche d'abstraction.

Les machines virtuelles exécutent un système d'exploitation complet (OS invité) qui est indépendant du système d'exploitation sous-jacent (OS hôte) sur lequel l'hyperviseur est installé. Le système d'exploitation invité fournit ensuite une plate-forme pour créer, tester et déployer des applications aux côtés de leurs bibliothèques et binaires.

[Vous pourriez également aimer: comment installer KVM sur Centos / Rhel 8]

Il existe deux types d'hyperviseurs:

Hyperviseur de type 1 (hyperviseur en métal nu)

Ce hyperviseur est installé directement sur un serveur physique ou le matériel sous-jacent. Il n'y a pas de système d'exploitation qui se trouve entre l'hyperviseur et le matériel informatique, d'où le nom de la balise Metal à nu hyperviseur. Il fournit un excellent support car les ressources ne sont pas partagées avec le système d'exploitation hôte.

Hyperviseur de type 1

En raison de leur efficacité, les hyperviseurs de type 1 sont principalement utilisés dans les environnements d'entreprise. Les vendeurs d'hyperviseur de type 1 comprennent VMware ESXi et Kvm.

Hyperviseur de type 2:

Ceci est également considéré comme un hyperviseur hébergé. Il est installé sur le système d'exploitation hôte et partage les ressources matérielles sous-jacentes avec le système d'exploitation hôte.

Hyperviseur de type 2

Les hyperviseurs de type 2 sont idéaux pour les petits environnements informatiques et sont principalement utilisés pour tester les systèmes d'exploitation et la recherche. Les fournisseurs d'hyperviseur de type 2 incluent Oracle VirtualBox et VMware Workstation Pro.

L'inconvénient avec des machines virtuelles

Les machines virtuelles ont tendance à être une taille énorme (peuvent prendre plusieurs GB), lent à démarrer et à s'arrêter et à engloutir de nombreuses ressources système conduisant à des raccrochés et à des performances lentes en raison de ressources limitées. En tant que tel, une machine virtuelle est considérée comme volumineuse et est associée à des frais généraux élevés.

Conteneurs

Contrairement à une machine virtuelle, un conteneur ne nécessite pas d'hyperviseur. Un conteneur se trouve au sommet d'un serveur physique et de son système d'exploitation et partage le même noyau que le système d'exploitation entre autres comme les bibliothèques et les binaires. Plusieurs conteneurs peuvent fonctionner sur le même système, chacun exécutant son propre ensemble d'applications et de processus du reste. Les plateformes de conteneurs populaires incluent Docker et podman.

Conteneurs

Contrairement aux machines virtuelles, les conteneurs fonctionnent en isolement complet du système d'exploitation sous-jacent. Les conteneurs sont exceptionnellement légers - seulement quelques mégaoctets - prennent moins de place et sont adaptés aux ressources. Ils sont faciles à démarrer et à s'arrêter et peuvent gérer plus d'applications qu'une machine virtuelle.

Avantages de l'utilisation de conteneurs

Les conteneurs offrent un moyen pratique de concevoir, de tester et de déployer des applications de votre PC jusqu'à un environnement de production, que ce soit sur la prémisse ou le cloud. Voici quelques-uns des avantages de l'utilisation d'applications conteneurisées.

1. Plus grande modularité

Avant les conteneurs, nous avions le modèle monolithique à l'ancienne où une application entière comprenant à la fois des composants frontend et backend serait regroupé dans un seul paquet. Les conteneurs permettent de diviser une application en plusieurs composants individuels qui peuvent communiquer entre eux.

De cette façon, les équipes de développement peuvent collaborer sur diverses parties d'une application à condition qu'aucune modification majeure ne soit apportée en ce qui concerne la façon dont les applications interagissent entre elles.

C'est sur cela que le concept de microservices est basé.

2. Accrue de productivité

Plus de modularité signifie plus de productivité car les développeurs peuvent travailler sur des composants individuels de l'application et des erreurs de débogage beaucoup plus rapidement qu'avant.

3. Réduction des frais généraux

Par rapport aux machines virtuelles et autres environnements informatiques conventionnels, les conteneurs utilisent moins de ressources système car elles n'incluent pas de système d'exploitation. Cela évite les dépenses inutiles pour obtenir des serveurs coûteux pour créer et tester les applications.

4. Portabilité accrue

En raison de leur petite empreinte, les applications conteneurisées sont facilement déployées dans plusieurs environnements informatiques / systèmes d'exploitation.

5. Plus grande efficacité et flexibilité

Les conteneurs permettent un déploiement rapide et une mise à l'échelle des applications. Ils offrent également la flexibilité indispensable pour déployer des applications dans plusieurs environnements logiciels.

Comment les conteneurs bénéficient-ils aux équipes DevOps?

Les conteneurs jouent un rôle clé dans DevOps Et il serait impossible d'imaginer comment la situation serait sans applications conteneurisées. Alors, qu'apportent les conteneurs à la table?

Premièrement, les conteneurs sous-tendent l'architecture des microservices, permettant à l'élaboration, à déployer et à mettre à l'échelle les éléments de construction indépendants. Comme mentionné, cela permet une plus grande collaboration et un déploiement rapide des applications.

La conteneurisation joue également un rôle majeur dans la facilitation des pipelines CI / CD en fournissant un environnement contrôlé et cohérent pour créer des applications. Toutes les bibliothèques et dépendances sont emballées avec le code en une seule unité pour un déploiement plus rapide et plus facile. L'application testée sera le logiciel exact qui sera déployé en production.

De plus, les conteneurs améliorent le déploiement des correctifs et des mises à jour lorsqu'une application est divisée en plusieurs microservices., chacun dans un conteneur séparé. Les conteneurs individuels peuvent être examinés, corrigés et redémarrés sans interrompre le reste de l'application.

Conclusion

Toute organisation cherchant à atteindre la maturité DevOps devrait envisager de tirer parti de la puissance des conteneurs pour les déploiements agiles et sans couture. Le défi consiste à savoir comment les configurer, sécuriser et les déployer de manière transparente dans plusieurs environnements.

Devenez un associé IT Certified IT (LFCA)