Outils pour utilisateurs

Outils du site


si7:presentation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
si7:presentation [2020/03/08 15:30]
techer.charles_educ-valadon-limoges.fr
si7:presentation [2020/03/08 15:59] (Version actuelle)
techer.charles_educ-valadon-limoges.fr [Retour au cours Docker]
Ligne 38: Ligne 38:
 La virtualisation classique permet, via un hyperviseur, de simuler une ou plusieurs machines physiques, et de les exécuter sur le serveur hôte sous forme de machines virtuelles (VM). Ces VM intègrent elles-mêmes un système d’exploitation complet sur lequel les applications qu'elles contiennent sont exécutées. La virtualisation classique permet, via un hyperviseur, de simuler une ou plusieurs machines physiques, et de les exécuter sur le serveur hôte sous forme de machines virtuelles (VM). Ces VM intègrent elles-mêmes un système d’exploitation complet sur lequel les applications qu'elles contiennent sont exécutées.
 L’hyperviseur est donc responsable de tous les échanges de données. Exécuter plusieurs machines virtuelles sur un même serveur demande de grosses performances et un nombre suffisant de ressources pour assumer plusieurs machines virtuelles. Le démarrage d’une machine virtuelle peut être plus ou moins long en fonction aussi de la technique utilisée (virtualisation complète ou paravirtualisation). L’hyperviseur est donc responsable de tous les échanges de données. Exécuter plusieurs machines virtuelles sur un même serveur demande de grosses performances et un nombre suffisant de ressources pour assumer plusieurs machines virtuelles. Le démarrage d’une machine virtuelle peut être plus ou moins long en fonction aussi de la technique utilisée (virtualisation complète ou paravirtualisation).
 +
 {{ :si7:docker_03.png?400|}} {{ :si7:docker_03.png?400|}}
 Les conteneurs Docker s'exécutant sur une machine hôte partagent le noyau du système d'exploitation de cette machine et font directement appel à celui-ci  pour exécuter leurs applications. Ils démarrent ainsi très rapidement et utilisent peu de ressources (processeur, mémoire vive, etc.). Les conteneurs Docker s'exécutant sur une machine hôte partagent le noyau du système d'exploitation de cette machine et font directement appel à celui-ci  pour exécuter leurs applications. Ils démarrent ainsi très rapidement et utilisent peu de ressources (processeur, mémoire vive, etc.).
Ligne 43: Ligne 44:
 Par ailleurs, la technologie mise en œuvre isole les applications les unes des autres et de l'infrastructure sous-jacente. Par ailleurs, la technologie mise en œuvre isole les applications les unes des autres et de l'infrastructure sous-jacente.
  
 +===== Les limites des conteneurs Docker =====
  
-Les limites des conteneurs Docker 
 Les conteneurs Docker souffrent tout de même de quelques limites : Les conteneurs Docker souffrent tout de même de quelques limites :
-isolement relatif avec le système d’exploitation hôte, les conteneurs peuvent être plus vulnérables, car ils partagent un noyau et des composants systèmes et leur fonctionnement exige déjà un niveau d'autorisation élevé (généralement l'accès root dans les environnements Linux) : si toute l’architecture est basée sur Docker et si le système hôte est attaqué tous les services seront « accessibles » et exposés plus facilement et rapidement aux attaques. À noter que les plateformes de conteneurs évoluent dans le sens d'une plus grande sécurisation en matière d’isolement et de séparation des droits des OS ; +  * **isolement relatif avec le système d’exploitation hôte**, les conteneurs peuvent être plus vulnérables, car ils partagent un noyau et des composants systèmes et leur fonctionnement exige déjà un niveau d'autorisation élevé (généralement l'accès root dans les environnements Linux) : si toute l’architecture est basée sur Docker et si le système hôte est attaqué tous les services seront « accessibles » et exposés plus facilement et rapidement aux attaques. À noter que les plateformes de conteneurs évoluent dans le sens d'une plus grande sécurisation en matière d’isolement et de séparation des droits des OS ; 
-attribution moins fine et stricte des ressources système et multiplication facile des conteneurs, ce qui rend possible une consommation d’une grande quantité de ressources sans s’en rendre compte ; +  * **attribution moins fine et stricte des ressources système et multiplication facile des conteneurs**, ce qui rend possible une consommation d’une grande quantité de ressources sans s’en rendre compte ; 
-très forte dépendance entre les conteneurs et le système hôte qui fait qu’un conteneur Linux ne peut être exploité nativement que sur Linux (idem avec un conteneur Windows qui ne peut être exécuté que sur Windows) même si les choses commencent à évoluer.+  * **très forte dépendance entre les conteneurs et le système hôte** qui fait qu’un conteneur Linux ne peut être exploité nativement que sur Linux (idem avec un conteneur Windows qui ne peut être exécuté que sur Windows) même si les choses commencent à évoluer. 
 + 
 +===== Docker pour quoi faire ? =====
  
-Docker pour quoi faire ? 
 Alors que Solomon Hykes, le CTO  et fondateur de Docker, quitte l'entreprise, les résultats sont là et il ne se passe pas une semaine sans qu’une annonce autour de Docker ne soit faite. Alors que Solomon Hykes, le CTO  et fondateur de Docker, quitte l'entreprise, les résultats sont là et il ne se passe pas une semaine sans qu’une annonce autour de Docker ne soit faite.
 +<WRAP center round info>
 +Le **CTO**, pour Chief Technology Officer en anglais et directeur de la technologie en français est un salarié chargé de s'occuper de la direction des questions scientifiques et techniques au sein d'une organisation.
 +</WRAP>
  
-On peut lire ici (article de journal du net)  « Docker Inc revendique une communauté massive d'utilisateurs, avec à la clé plus de 200 groupes actifs à travers le monde. Inaugurée en 2014, en parallèle de la sortie de Docker 1.0, la forge lancée par la société de San Francisco (le Docker Hub), et via laquelle les développeurs peuvent partager leurs containers, atteint à ce jour 3,5 millions d'applications containeurisées. Depuis son ouverture, la plateforme a enregistré pas moins de 37 milliards de téléchargements de containers (ou pull en langage technique). « L'augmentation du nombre de pull sur le Docker Hub est exponentielle. Il atteint désormais le chiffre pharaonique de 1 milliard toutes les deux semaines », confie Patrick Chanezon. ».+{{ :si7:docker_04.png?400|}}On peut lire [[https://www.journaldunet.com/solutions/cloud-computing/1208176-docker-souffle-ses-5-bougies-et-atteint-37-milliards-de-containers-telecharges/|ici]] (article de journal du net)  « Docker Inc revendique une communauté massive d'utilisateurs, avec à la clé plus de 200 groupes actifs à travers le monde. Inaugurée en 2014, en parallèle de la sortie de Docker 1.0, la forge lancée par la société de San Francisco (le [[https://hub.docker.com/|Docker Hub]]), et via laquelle les développeurs peuvent partager leurs containers, atteint à ce jour 3,5 millions d'applications containeurisées. Depuis son ouverture, la plateforme a enregistré pas moins de 37 milliards de téléchargements de containers (ou pull en langage technique). « L'augmentation du nombre de pull sur le Docker Hub est exponentielle. Il atteint désormais le chiffre pharaonique de 1 milliard toutes les deux semaines », confie Patrick Chanezon. ».
  
 Cet article fait également état de 450 clients payants dont plusieurs dizaines sont français, parmi lesquels une majorité de groupes du CAC40. Cet article fait également état de 450 clients payants dont plusieurs dizaines sont français, parmi lesquels une majorité de groupes du CAC40.
  
-Pourquoi tant d’engouement ? Quelles sont les utilisations possibles, efficaces et pertinentes de Docker ? +**Pourquoi tant d’engouement ? Quelles sont les utilisations possibles, efficaces et pertinentes de Docker ?** 
-Déployer rapidement un service lorsque l’on a besoin de le déployer plusieurs fois : cette reproductibilité est la base de docker, c’est typiquement l’utilisation que peut en faire un fournisseur de cloud. +  * **Déployer rapidement un service** lorsque l’on a besoin de le déployer plusieurs fois : cette reproductibilité est la base de docker, c’est typiquement l’utilisation que peut en faire un fournisseur de cloud. 
-Distribuer une application : Docker en tant que "système de distribution d'une application" est de plus en plus utilisé tant par les développeurs qui créent rapidement un serveur de développement et n’ont plus à packager une application sous différents systèmes (deb, rpm, etc) avant de la distribuer que par l'utilisateur qui utilise une image docker (en général très légère) pour tester puis garder/migrer ou finalement jeter une application (plutôt que de compiler un tarball). Souvent quelques commandes suffisent pour avoir une solution comme Nextcloud ou Ansible opérationnelle. +  * **Distribuer une application** : Docker en tant que "système de distribution d'une application" est de plus en plus utilisé tant par les développeurs qui créent rapidement un serveur de développement et n’ont plus à packager une application sous différents systèmes (deb, rpm, etc) avant de la distribuer que par l'utilisateur qui utilise une image docker (en général très légère) pour tester puis garder/migrer ou finalement jeter une application (plutôt que de compiler un tarball). Souvent quelques commandes suffisent pour avoir une solution comme Nextcloud ou Ansible opérationnelle. 
-Développer et tester une application, Docker permet : +  * **Développer et tester une application**, Docker permet : 
-de concevoir une architecture de test plus agile, chaque conteneur de test pouvant par exemple intégrer une brique de l'application (base de données, langages, composants, …), le développeur pourra tester sur la même machine plusieurs versions d'un même logiciel en inter changeant le conteneur correspondant. Par exemple pour une application PHP, on pourrait facilement tester plusieurs versions de PHP comme plusieurs versions d’Apache ou de Nginx ; +    de concevoir une architecture de test plus agile, chaque conteneur de test pouvant par exemple intégrer une brique de l'application (base de données, langages, composants, …), le développeur pourra tester sur la même machine plusieurs versions d'un même logiciel en inter changeant le conteneur correspondant. Par exemple pour une application PHP, on pourrait facilement tester plusieurs versions de PHP comme plusieurs versions d’Apache ou de Nginx ; 
-de développer une application selon le concept d’architecture de micro-services avec pour chaque couche des conteneurs isolant les composants de l’application ; +    de développer une application selon le concept d’architecture de micro-services avec pour chaque couche des conteneurs isolant les composants de l’application ; 
-faciliter le process de mise à jour de l’application : les images Docker sont versionnées et permettent une mise à jour simplifiée et maîtrisée. Le process de rollback est aussi simplifié : on redéploie la version précédente de l’image. +    faciliter le process de mise à jour de l’application : les images Docker sont versionnées et permettent une mise à jour simplifiée et maîtrisée. Le process de rollback est aussi simplifié : on redéploie la version précédente de l’image. 
-d’avoir un environnement de développement identique à l’environnement de production d’autant plus que du fait de la disparition du système d’exploitation intermédiaire classique des machines virtuelles, les développeurs bénéficient d'une pile applicative plus proche de celle de l'environnement de production ce qui engendre mécaniquement moins de mauvaises surprises lors des passages en production.+    d’avoir un environnement de développement identique à l’environnement de production d’autant plus que du fait de la disparition du système d’exploitation intermédiaire classique des machines virtuelles, les développeurs bénéficient d'une pile applicative plus proche de celle de l'environnement de production ce qui engendre mécaniquement moins de mauvaises surprises lors des passages en production.
  
 +===== Retour au cours Docker=====
 +  * [[si7:docker|Fiche Cours : exploitation de Docker]]
si7/presentation.1583677803.txt.gz · Dernière modification: 2020/03/08 15:30 de techer.charles_educ-valadon-limoges.fr