Il est de plus en plus rare d'effectuer des installations de logiciel sur des serveurs physique, Aujourd'hui les installation de serveur les plus courantes sont de type virtuelle au travers d'un hyperviseur sur des machines physiques avec du stockage externe ou interne.
Un hyperviseur est un logiciels hôtes installé sur une serveur physique qui execute ce que l'on appelle une VM (Virtual Machine). L'hyperviseur mutualise les ressources du serveur physique pour les partager par la suite entre les différentes VM (Mémoire Ram, processeur, espace disque, réseau etc.)
Il existe differents types :
Les systèmes que l'on installe sur des machine hôtes équipé d'un OS (ex : Windows 10) :
Les systèmes de type BarMetal (Sans Os sur l'Hôte physique)
Hébergés dans le cloud
Docker est une plateforme de conteneurisation qui permet aux développeurs de construire, partager et exécuter des applications dans des conteneurs.
Docker a un fonctionnement révolutionnaire. L'hyperviseur sera remplacé par le "Container engine" qui lui partage le kernel de son OS hôte avec d’autres conteneurs. C’est une différence avec une machine virtuelle, utilisant un hyperviseur pour distribuer les ressources hardware.
Cette méthode permet de réduire l’empreinte des applications sur l’infrastructure. Le conteneur regroupe tous les composants système nécessaires à l’exécution du code, sans pour autant peser aussi lourd qu'un OS complet.
Docker fournit une suite d’outils de développement, de services, de contenu fiable et d’automatisations, utilisés individuellement ou ensemble, pour accélérer la livraison d’applications sécurisées .
Docker est utilisé par plus de 20 millions de développeurs chaque mois pour exécuter plus de 7 millions d’applications.
Docker fournit des moyens pour contrôler la quantité de mémoire ou de CPU qu’un conteneur peut utiliser en définissant des indicateurs de configuration d’exécution de la commande docker run 1.
Par défaut, un conteneur n’a pas de contraintes de ressources et peut utiliser autant d’une ressource donnée que le planificateur de noyau de l’hôte le permet. Pour limiter la consommation de ressources, vous pouvez définir des limites sur la quantité de mémoire ou de CPU qu’un conteneur peut utiliser.
Docker peut appliquer des limites de mémoire dure, qui permettent au conteneur d’utiliser au maximum une certaine quantité de mémoire utilisateur ou système, ou des limites souples, qui permettent au conteneur d’utiliser autant de mémoire qu’il en a besoin sauf si certaines conditions sont remplies, telles que lorsque le noyau détecte une faible mémoire ou une contention sur la machine hôte 1.
Pour surveiller l’utilisation des ressources par les conteneurs Docker, vous pouvez utiliser la commande
docker stats
Cette commande affiche les informations sur l’utilisation actuelle du CPU, de la mémoire, du réseau et du disque pour tous les conteneurs en cours d’exécution.
Les conteneurs sont souvent utilisés pour exécuter des applications dans un environnement isolé et portable. Contrairement à la virtualisation traditionnelle, la virtualisation des conteneurs ne nécessite pas d’hyperviseur pour exécuter plusieurs instances de systèmes d’exploitation sur une seule machine physique.
Au lieu de cela, les conteneurs partagent le même noyau hôte et isolent les processus et les ressources système à l’aide de mécanismes tels que les espaces de noms et les cgroups.
Les avantages de la virtualisation des conteneurs incluent une utilisation plus efficace des ressources système, une portabilité accrue des applications et une isolation améliorée des applications.
Cela veux dire que pour une application type vous aurez l'execution des services Apache, Base de donnée et applicatif sur des conteneurs différents.
Docker peut être installé sous Linux, Windows et Mac OS. Pour plus d'information vous pouvez consulter le liens vers la documentation officiel du site docker. Mais aussi mon tuto sur l'installation de docker sous Ubuntu.
Enjoy !