Qu’est-ce que Docker et pourquoi est-il si populaire ?

  • Sep 02, 2023

Docker est plus chaud que chaud car il permet d'exécuter beaucoup plus d'applications sur les mêmes anciens serveurs et il rend également très facile l'empaquetage et l'expédition de programmes. Voici ce que vous devez savoir à ce sujet.

Comment Docker a généralisé les conteneurs

Nuage

  • Qu’est-ce que la transformation numérique? tout ce que tu as besoin de savoir
  • Comparaison des meilleurs fournisseurs de cloud: AWS, Azure, Google Cloud, etc.
  • Le top 6 des services d'hébergement Web bon marché: trouvez une option abordable
  • Qu’est-ce que le cloud computing? Voici tout ce que vous devez savoir

Il y a cinq ans, Solomon Hykes a contribué à la création d'une entreprise, Docker, qui cherchait à rendre les conteneurs faciles à utiliser. Avec le sortie de Docker 1.0 en juin 2014, le buzz s’est transformé en rugissement. Et au fil des années, le son est devenu de plus en plus fort.

Tout ce bruit se produit parce que les entreprises adoptent Docker à un rythme remarquable. En juillet 2014 à OSCon, j'ai rencontré de nombreuses entreprises qui avaient déjà migré leurs applications serveur des machines virtuelles (VM) vers des conteneurs.

En effet, James Turnbull, alors vice-président des services et du support chez Docker, m'a dit lors de la conférence que trois de ses plus grands clients bêta-banques le mettaient en production. Il s’agit d’une décision extrêmement confiante pour n’importe quelle technologie 1.0, mais c’est presque du jamais vu dans le monde financier axé sur la sécurité.

Aujourd'hui, Docker et son père open source désormais nommé Moby, est plus grand que jamais. Selon Docker, plus de 3,5 millions d'applications ont été placées dans des conteneurs utilisant la technologie Docker et plus de 37 milliards d'applications conteneurisées ont été téléchargées.

Docker n’est pas le seul à penser qu’il est sur le point de réaliser quelque chose de grand. 451 Recherche voit également la technologie Docker connaître un énorme succès. Il prédit « le le marché des conteneurs d’applications va exploser au cours des cinq prochaines années. Le chiffre d'affaires annuel devrait être multiplié par 4, passant de 749 millions de dollars en 2016 à plus de 3,4 milliards de dollars d'ici 2021, ce qui représente un taux de croissance annuel composé (TCAC) de 35 pour cent. »

Les données réelles confirment la conclusion selon laquelle Docker est largement adopté. DataDog, un système de surveillance du cloud, a constaté qu'en mars 2016, "13,6 % des clients de Datadog ont adopté Docker. Un an plus tard, ce chiffre est passé à 18,8 pour cent. Cela représente une croissance de part de marché de près de 40 pour cent en 12 mois. » Échelle droite observé dans son Rapport RightScale 2018 sur l'état du cloud que l'adoption de Docker par l'industrie est passée de 35 % en 2017 à 49 %.

Docker, une technologie open source, n'est pas seulement le chouchou des puissances Linux telles que chapeau rouge et Canonique. Les éditeurs de logiciels propriétaires tels que Oracle et Microsoft a également adopté Docker. Aujourd'hui, presque toutes les entreprises informatiques et cloud ont adopté Docker.

Pourquoi les entreprises adoptent les conteneurs Docker

Alors pourquoi tout le monde aime les conteneurs et Docker? James Bottomley, anciennement Parallèles" CTO de la virtualisation des serveurs et développeur leader du noyau Linux, a expliqué les hyperviseurs de VM, tels que Hyper-V, KVM et Xen, tous sont " basés sur émulation de matériel virtuel. Cela signifie qu'ils sont gros en termes de configuration système requise. »

Voir également

Qu’est-ce que DevOps? Un guide exécutif sur le développement agile et les opérations informatiques

Pour tirer le meilleur parti des conteneurs, serveurs, machines virtuelles et cloud actuels, vous devez déployer DevOps dans votre entreprise. Ou encore, vous pouvez laisser vos concurrents vous mettre à la faillite. C'est ton choix.

Lisez maintenant

Les conteneurs utilisent cependant des systèmes d’exploitation partagés. Cela signifie qu'ils sont beaucoup plus efficaces que les hyperviseurs en termes de ressources système. Au lieu de virtualiser le matériel, les conteneurs reposent sur une seule instance Linux. Cela signifie que vous pouvez « laisser derrière vous les 99,9 % de déchets inutiles de la VM, vous laissant avec une petite capsule soignée contenant votre application », a déclaré Bottomley.

Par conséquent, selon Bottomley, avec un système de conteneurs parfaitement adapté, vous pouvez en avoir autant que quatre à six fois le nombre d'instances d'application serveur que vous pouvez utiliser en utilisant des machines virtuelles Xen ou KVM sur le même matériel.

Une autre raison pour laquelle les conteneurs sont populaires est qu'ils se prêtent à Intégration continue/déploiement continu (CI/CD). C'est un Méthodologie DevOps conçu pour encourager les développeurs à intégrer leur code dans un référentiel partagé tôt et souvent, puis à déployer le code rapidement et efficacement.

Docker permet aux développeurs d'emballer, d'expédier et d'exécuter facilement n'importe quelle application sous la forme d'un conteneur léger, portable et autonome, qui peut s'exécuter pratiquement n'importe où. Comme Bottomley me l'a dit: « Les conteneurs vous offrent une portabilité instantanée des applications. »

Pour ce faire, les conteneurs permettent aux développeurs d'isoler le code dans un seul conteneur. Cela facilite la modification et la mise à jour du programme. Il se prête également, comme le souligne Docker, à les entreprises doivent répartir les grands projets de développement entre plusieurs petites équipes agiles en utilisant Jenkins, un programme CI/CD open source, pour automatiser la livraison de nouveaux logiciels dans des conteneurs.

Jay Lyman, analyste senior chez 451 Research, a ajouté: « Les entreprises cherchent et ont parfois du mal à réussir applications et charges de travail plus portables et distribué de manière efficace, standardisée et reproductible. Tout comme GitHub stimulé la collaboration et l'innovation en rendant le code source partageable, Docker Hub, Official Repos et commercial support aident les entreprises à relever ce défi en améliorant la façon dont elles emballent, déploient et gèrent applications."

De plus, les conteneurs Docker sont faciles à déployer dans un cloud. Comme l'écrivait Ben Lloyd Pearson dans Opensource.com: "Docker a été conçu de manière à pouvoir être intégré à la plupart des applications DevOps, y compris Fantoche, Chef, Vagabond, et Ansible, ou il peut être utilisé seul pour gérer les environnements de développement.

Plus précisément, pour CI/CD, Docker permet de configurer des environnements de développement locaux qui ressemblent exactement à un serveur en direct; exécuter plusieurs environnements de développement à partir du même hôte avec des logiciels, des systèmes d'exploitation et des configurations uniques; tester des projets sur des serveurs nouveaux ou différents; et permettre à n'importe qui de travailler sur le même projet avec exactement les mêmes paramètres, quel que soit l'environnement hôte local. Cela permet aux développeurs d'exécuter les suites de tests, qui sont essentielles à CI/CD, pour voir rapidement si une modification nouvellement apportée fonctionne correctement.

En utilisant CI/CD, selon un Enquête sur les marionnettes 2016 Sur 4 600 professionnels de l'informatique, les services informatiques dotés d'un solide flux de travail DevOps ont déployé des logiciels 200 fois plus fréquemment que les services informatiques peu performants. De plus, ils ont récupéré 24 fois plus rapidement et ont eu des taux d’échec de changement trois fois inférieurs. Simultanément, ces entreprises consacrent globalement 50 % de temps en moins à résoudre les problèmes de sécurité et 22 % de temps en moins aux tâches imprévues.

Tout cela n’est pas surprenant puisque le moyen le plus populaire de fournir des applications via CI/CD sont les conteneurs.

Qu'est-ce qu'il ne faut pas aimer? Vous obtenez beaucoup plus d'applications pour votre argent de serveur et vous améliorez et déployez votre logiciel plus rapidement que jamais. Alors pourquoi personne ne l’a fait avant? Eh bien, en fait, ils l’ont fait. Les conteneurs sont une vieille idée.

Historique du conteneur

Les conteneurs datent au moins de l’an 2000 et les prisons FreeBSD. Oracle Solaris a également un concept similaire appelé Zones tandis que des sociétés telles que Parallels, Google et Docker ont travaillé sur des projets open source tels que OpenVZ et LXC (conteneurs Linux) pour que les conteneurs fonctionnent bien et en toute sécurité.

En effet, peu d’entre vous le savent, mais la plupart d’entre vous utilisent des conteneurs depuis des années. Google possède sa propre technologie de conteneur open source lmctfy (Laissez-moi contenir ça pour vous). Chaque fois que vous utilisez certaines fonctionnalités de Google (Recherche, Gmail, Google Docs, etc.), un nouveau conteneur vous est attribué.

Docker, cependant, est construit sur LXC. Comme pour toute technologie de conteneur, en ce qui concerne le programme, il possède son propre système de fichiers, son propre stockage, son processeur, sa RAM, etc. La principale différence entre les conteneurs et les machines virtuelles réside dans le fait que, alors que l'hyperviseur résume un périphérique entier, les conteneurs résument simplement le noyau du système d'exploitation.

Cela signifie que les hyperviseurs de machines virtuelles peuvent faire une chose que les conteneurs ne peuvent pas faire: utiliser des systèmes d'exploitation ou des noyaux différents. Ainsi, par exemple, vous pouvez utiliser Microsoft Azure pour exécuter les deux instances de Windows Serveur 2012 et Serveur d'entreprise SUSE Linux, en même temps. Avec Docker, tous les conteneurs doivent utiliser le même système d'exploitation et le même noyau.

D'un autre côté, si tout ce que vous voulez faire est d'exécuter le plus grand nombre d'instances d'applications serveur sur le moins de matériel possible, vous ne pourriez pas se soucient moins de l’exécution de plusieurs machines virtuelles du système d’exploitation. Si vous souhaitez plusieurs copies de la même application, alors vous allez adorer conteneurs.

Cette décision peut permettre à un centre de données ou à un fournisseur de cloud d'économiser des dizaines de millions de dollars par an en coûts d'énergie et de matériel. Il n’est pas étonnant qu’ils se précipitent pour adopter Docker le plus rapidement possible.

Standardisation des conteneurs

Docker apporte plusieurs nouveautés que les technologies précédentes n'apportaient pas. La première est que les conteneurs sont désormais plus faciles et plus sûrs à déployer et à utiliser que les approches précédentes. De plus, comme Docker s'associe à d'autres puissances de conteneurs, notamment Canonical, Google, Red Hat et Parallels, sur sa clé composant open source libcontainer, il a apporté une standardisation indispensable aux conteneurs.

Depuis lors Docker a fait un don "son format de conteneur logiciel et son environnement d'exécution, ainsi que les spécifications associées", à la Linux Foundation Projet de conteneur ouvert. Spécifiquement, "Docker a récupéré tout le contenu du projet libcontainer, y compris nsinit, et toutes les modifications nécessaires pour le faire fonctionner indépendamment de Docker, et nous en avons fait don à cet effort."

Docker a continué à travailler sur d'autres efforts de normalisation des conteneurs. Par exemple, Conteneur de Docker, le runtime open source du conteneur, est désormais hébergé par le Fondation Cloud Native Computing (CNCF).

Ainsi, Docker n’a aujourd’hui aucun rival en soi. Certes, il existe d'autres implémentations de conteneurs basées sur LXC, comme CoreOS, maintenant Red Hat, Rct, ou LXD de Canonical, mais ce ne sont pas tant des concurrents que des raffinements LXC. Cela dit, vous pouvez exécuter des conteneurs Docker sur pratiquement n'importe quel système d'exploitation ou cloud. Cela lui donne un avantage sur les autres.

Au niveau supérieur des conteneurs, de l'orchestration des conteneurs, Docker a un concurrent sérieux: Kubernetes.

Orchestration de conteneurs

Comme tout autre élément de votre infrastructure informatique, les conteneurs doivent être surveillés et contrôlés. Sinon, vous n'avez littéralement aucune idée de ce qui s'exécute sur vos serveurs.

Vous pouvez utiliser des programmes DevOps pour déployer et surveiller les conteneurs Docker, mais ils ne sont pas optimisés pour les conteneurs. Comme le souligne DataDog, une société de surveillance du cloud, dans son rapport sur Adoption de Docker dans le monde réel, « La courte durée de vie des conteneurs et leur densité accrue ont implications importantes pour la surveillance des infrastructures. Ils représentent une augmentation d’un ordre de grandeur du nombre de choses qui doivent être surveillées individuellement. »

La réponse réside dans les outils d’orchestration cloud. Ceux-ci surveillent et gèrent le clustering et la planification des conteneurs. En mai 2017, il y avait trois programmes majeurs d'orchestration de conteneurs cloud: Docker Swarm, Kubernetes et mésosphère. Aujourd’hui, tout cela existe toujours, mais Kubernetes est de loin le programme d’orchestration cloud le plus dominant.

En effet, début octobre, La mésosphère a pris le train en marche de Kubernetes. Docker a annoncé qu'il intégrerait Kubernetes dans la plateforme Docker. Les utilisateurs peuvent choisir d'utiliser Kubernetes et/ou Essaim de Dockers pour l'orchestration.

Pourquoi? Comme Adrian Chifor, ingénieur DevOps senior chez une société anglaise de vérification des antécédents Onfido, a blogué plus tôt cette année, "Kubernetes possède la plus grande communautéy et est de loin le plus populaire.

Docker savait que cela allait arriver. Hykes a dit à DockerCon EU à Copenhague que l'entreprise a ajouté Kubernetes à ses offres car cela donnait « à nos utilisateurs et clients la possibilité de créer une orchestration choix avec la sécurité, la gestion et l'expérience Docker de bout en bout qu'ils attendent de Docker depuis le tout début. début."

Pourtant, même si Kubernetes est peut-être le gagnant de l'orchestration de conteneurs, les conteneurs eux-mêmes restent en grande partie conçus par Docker et exécutés sur containersd. La technologie Docker nous accompagnera pendant des années.

Conclusions sur les conteneurs

En un mot, voici ce que Docker peut faire pour vous: il peut faire fonctionner plus d'applications sur le même matériel que d'autres technologies; il permet aux développeurs de créer rapidement des applications en conteneur prêtes à l'emploi; et cela facilite grandement la gestion et le déploiement des applications. Mettez tout cela ensemble et je peux comprendre pourquoi Docker a suivi le cycle de battage médiatique aussi vite que je me souvienne d'avoir vu une technologie d'entreprise disparaître.

D’ailleurs, pour une fois, la réalité est à la hauteur du battage médiatique. Franchement, je ne peux pas penser à une seule entreprise, quelle que soit sa taille, qui n'envisage pas au moins de déplacer ses applications serveur vers des conteneurs en général et vers Docker en particulier.

Histoires connexes :

  • Docker LinuxKit: conteneurs Linux sécurisés pour Windows, macOS et cloud
  • Docker et IBM étendent leur partenariat
  • Docker vise le profit avec la nouvelle édition Enterprise