Docker oui mais pourquoi ?

Docker oui mais pourquoi ?

Chez Soluce Technologies, cela fait maintenant plusieurs années que nous utilisons Docker quotidiennement dans nos missions.

Docker est une plateforme logicielle qui permet de créer, déployer et gérer des applications dans des conteneurs.

Qu’est-ce qu’un conteneur ?

Un conteneur Docker est un environnement d'exécution contenant tous les composants nécessaires, tels que le code, les dépendances et les bibliothèques, nécessaires pour exécuter le code de l'application sans utiliser les dépendances de la machine hôte. Les conteneurs sont légers, portables et s'exécutent dans différents environnements tels que Linux, macOS ou encore Windows.

Voici 6 points qui vous expliquerons pourquoi nous utilisons largement Docker dans nos missions :

1. La portabilité : 

Docker permet aux applications de s'exécuter sur différents environnements, qu'il s'agisse de développement, de test ou de production mais aussi sur différents systèmes d’exploitation tels que Linux, Macos ou encore Windows. Les conteneurs incluent tout ce dont une application a besoin pour s'exécuter : code, runtime, bibliothèques et paramètres système.

2. L’isolation : 

Les conteneurs isolent les applications et leurs dépendances, réduisant les conflits entre différentes applications ou microservices qui pourraient utiliser différentes versions de bibliothèques ou d'autres dépendances. De plus cette isolation permet d’augmenter la sécurité , c'est une couche supplémentaire qui aide à réduire les risques de compromission.

3. Consistance et Répétabilité : 

Grâce aux fichiers Docker (Dockerfile), il est possible de définir l'environnement exact dans lequel une application doit s'exécuter. Cela garantit que l'application se comporte de la même manière peu importe où elle est déployée.

4. Efficacité des Ressources : 

Contrairement aux machines virtuelles (VM), les conteneurs partagent le noyau du système hôte, ce qui permet d'utiliser moins de ressources. Les conteneurs démarrent plus rapidement et consomment moins de mémoire et de CPU. 

Source : Soluce Technologies & next.ink

5. Déploiement Rapide et Scalable : 

Docker simplifie le processus de déploiement. Une fois l'application empaquetée dans un conteneur, elle peut être rapidement déployée sur n'importe quel hôte Docker. Cela facilite également la mise à l'échelle horizontale des applications.

6. DevOps et CI/CD : 

Docker s'intègre parfaitement avec les pratiques de DevOps et les pipelines CI/CD (Intégration Continue et Déploiement Continu) notamment avec Gitlab CI/CD et les runners qui feront l'objet d’un autre article prochainement. Il permet des tests plus rapides, des déploiements automatisés et des mises à jour de logiciels sans interruption de service.

En résumé, Docker est un outil puissant pour les développeurs et les administrateurs système, facilitant le développement, le déploiement, et la gestion des applications de manière plus efficace, cohérente et scalable. Présent sur tous les front docker devient un outils essentiel au développement de micro-services, avec une communauté en forte expansion ces dernières années. 

Source kinsta.com