Bonjour tout le monde, avez-vous déjà entendu parler de containers ? De Docker ou Kubernetes ? Non ? Vous passez alors à côté d’une grosse opportunité. Je vais aujourd’hui, vous présenter les avantages d’utiliser des containers dans votre quotidien. Les conteneurs sont une forme de virtualisation des systèmes d’exploitation. Un seul conteneur peut être utilisé pour faire une exécution à partir d’un petit microservice ou d’un processus logiciel vers une application plus grande.
Pourquoi utiliser des containers ?

Les technologies de “conteneurisation” telles que Docker et Kubernetes permettent de créer et de gérer des conteneurs isolés pour chaque service, facilitant ainsi le déploiement, l’orchestration et la gestion des applications de microservices. Les avantages sont multiples et seront cités plus bas dans l’article.
Les commandes
Voici les commandes les plus utiles :
docker run -e POSTGRES_PASSWORD=password -d postgres => run postgres
docker ps => affiche les containers
docker exec -it \l psql -U postgres => lance postgres
docker rm -f $(docker ps -a -q) => La commande ninja qui supprime les conteneurs
Avantages
- Taille : La taille d’un conteneur est généralement beaucoup plus faible que celui d’une machine virtuelle.
- Vitesse : Un conteneur démarre très rapidement.
- Portabilité : Utilisable partout et en tout temps.
- Autosuffisance : N’a pas besoin d’aller chercher des librairies partout, tout est dans le conteneur.
- Coût : Coûte beaucoup moins cher que les machines virtuelles, besoin de moins de materiel
Inconvénients

- Faille de sécurité : plusieurs machines/conteneurs peuvent être touchées en cas de failles.
- Difficulté pour une sécurité poussée entre différents environnements
architecture | avantages | désavantages |
---|---|---|
monolithique | Regrouper toutes les fonctionnalités d’une application, plus simple à développer et à déployer | Peut rendre le système difficile à maintenir |
microservices | Offre une grande flexibilité et évolutivité | beaoucp plus complexe |
exemple d’architectures monolitiques
-
Les premières versions de Photoshop étaient des applications monolithiques où toutes les fonctionnalités étaient regroupées en un seul programme
-
Les premières versions de Photoshop étaient des applications monolithiques où toutes les fonctionnalités étaient regroupées en un seul programme
-
Un système de gestion de contenu (CMS) tel que WordPress ou Drupal peut être considéré comme une application monolithique, car toutes les fonctionnalités sont regroupées en un seul système.
exemple d’architectures de services
-
Netflix et Spotify utilisent une architecture de microservices pour gérer leurs fonctionnalités de streaming et de gestion de compte utilisateur. Les différents services, tels que la recherche, les recommandations ou les notifications, sont tous conçus pour être indépendants et évolutifs
-
Uber utilises des microservices pour gérer les différentes parties de son application, telles que les systèmes de géolocalisation, de facturation et de notification
Architecture de microservices
-
Les technologies de “conteneurisation” telles que Docker et Kubernetes permettent de créer et de gérer des conteneurs isolés pour chaque service, facilitant ainsi le déploiement, l’orchestration et la gestion des applications de microservices
-
Les “API RESTful” (Representational State Transfer) sont souvent utilisées pour permettre la communication entre les différents services de microservices, car elles permettent de transférer des données entre les services de manière simple et cohérente
-
Les langages de programmation tels que Java, Node.js, Python et Go sont couramment utilisés pour développer des microservices. Toutefois, il n’y a pas de langage de programmation “unique” pour ce type de développement
-
Les bases de données NoSQL (Not Only SQL) telles que MongoDB, Firebase, Cassandra et Couchbase sont souvent utilisées pour les microservices, car elles offrent une évolutivité horizontale et une meilleure flexibilité que les bases de données relationnelles
-
Les outils de surveillance tels que Zabbix, Prometheus et Grafana sont utilisés pour surveiller la santé et les performances des services mais également et pour faciliter la détection et le dépannage des erreurs