Ce tutoriel détaillé explique comment mettre en place une solution de supervision complète de vos serveurs avec Prometheus (pour la collecte et le stockage des métriques système) et Grafana (pour leur visualisation sous forme de tableaux de bord interactifs).
Il couvre l’installation et la configuration de Prometheus et Grafana via Docker sur un serveur dédié, ainsi que le déploiement d’exporters comme node_exporter (métriques système), cAdvisor (métriques containers Docker), process_exporter (métriques processus), et blackbox_exporter (tests de disponibilité des services). Le guide aborde aussi la sécurisation des interfaces, la création d’alertes, et l’intégration d’Alert Manager pour la gestion des notifications. Idéal pour surveiller en temps réel l’état de votre infrastructure et recevoir des alertes en cas de dépassement de seuils, avec des exemples concrets et des tableaux de bord Grafana prêts à l’emploi.
Un super outil à auto héberger qui permet de convertir des fichiers dans plein de formats
L’article présente l’utilisation de Make pour simplifier et standardiser les commandes courantes dans un projet Symfony, surtout en environnement Docker. L’auteur partage ses Makefiles personnalisés, qui permettent de lancer des tâches comme l’installation des dépendances (make composer
), l’exécution des tests (make test
), l’analyse statique (make static-analysis
), ou encore la gestion de la base de données (make db-reset
), le tout avec des paramètres optionnels pour l’environnement (env=prod
) ou des arguments supplémentaires (arg=--testdox
). Grâce à Make, les commandes Docker complexes deviennent simples et documentées (ex: make qa
pour lancer la vérification de code, l’analyse statique et les tests en une seule commande). L’article propose trois versions de Makefile : pour Docker Compose, Docker seul, et PHP natif, inspirées du projet symfony-docker. L’objectif est d’améliorer la productivité en évitant de retaper des commandes longues et en centralisant la documentation des tâches disponibles. Une solution élégante pour uniformiser les workflows entre projets Symfony.
Le tutoriel présente BunkerWeb, une solution open-source combinant reverse proxy et Web Application Firewall (WAF) pour sécuriser les services web. Elle intègre des fonctionnalités comme le filtrage ModSecurity avec les règles OWASP CRS, le renforcement TLS, et la limitation de requêtes. Le tutoriel guide à travers le déploiement de BunkerWeb via Docker Compose, depuis la préparation de l'environnement jusqu'à la configuration d'un service web. Il explique comment créer un fichier compose.yaml
, lancer les conteneurs, et configurer BunkerWeb via une interface web d'administration. Le tutoriel montre également comment déployer un service web interne, comme IT-Tools, derrière BunkerWeb, en détaillant les étapes de configuration pour sécuriser et publier le service. Enfin, il conclut en soulignant la facilité d'utilisation et les options avancées de BunkerWeb pour renforcer la sécurité des applications web.
Le site Cosmos Cloud propose une plateforme sécurisée et facile à utiliser pour l'auto-hébergement. Voici un résumé des points clés :
Points Forts
- Sécurité et Maintenance Automatisée : Cosmos offre une configuration entièrement sécurisée avec une maintenance automatisée, intégrant des fonctionnalités comme l'authentification unique (SSO), l'anti-bot, l'anti-DDoS, et l'authentification à deux facteurs (2FA).
- Intégration Facile : La plateforme s'intègre facilement à votre configuration existante.
- Marché d'Applications : Cosmos propose un marché d'applications où vous pouvez parcourir et installer des applications qui s'intègrent à votre configuration, avec des règles de sécurité et de bases de données configurées automatiquement.
- Proxy Inverse Intégré : Un proxy inverse intégré facile à configurer et flexible, accessible via l'interface utilisateur moderne de Cosmos.
- Gestion des Conteneurs : Vous pouvez contrôler, mettre à jour et surveiller vos conteneurs directement depuis Cosmos et les exposer via le proxy inverse interne.
- VPN : Constellation est un VPN entièrement intégré qui vous permet de vous connecter à votre serveur à distance et de manière sécurisée, même sans ouvrir vos ports. Il inclut un DNS similaire à PiHole.
- Surveillance en Temps Réel : Surveillance persistante en temps réel avec des alertes et notifications personnalisables pour vous informer de tout problème.
Objectif
Cosmos vise à rendre l'auto-hébergement de vos services cloud et web satisfaisant tout en éliminant les tracas grâce à une maintenance automatisée et une configuration sécurisée dès le départ.
Pour plus de détails, vous pouvez consulter la documentation ou essayer la démo sur leur site web.
L'article explique comment transformer son réseau domestique en un environnement productif en utilisant des conteneurs Docker pour créer des alternatives privées aux services cloud. L'auteur décrit comment Docker facilite le déploiement d'applications et de services sans avoir à gérer des machines virtuelles complexes. Parmi les applications recommandées, on trouve Nextcloud pour le stockage et la collaboration de documents, Grocy pour la gestion des courses et des repas, Tududi pour la gestion des tâches, Bitwarden pour la gestion sécurisée des mots de passe, et Portainer pour la gestion des conteneurs Docker. Ces outils permettent de créer un écosystème privé, sécurisé et flexible directement depuis son réseau local.
L'article présente Erugo, un logiciel auto hébergé pour le partage de fichiers. L'auteur décrit aussi la procédure d'installation (plutôt simple grâce à Docker)
L'idée derrière ces 5 projets est d'apprendre la mécanique interne de Docker pour mieux construire ses propres images.
L'article présente des astuces pour optimiser l'utilisation de Docker Compose. Il propose d'utiliser des profils pour activer des services de manière conditionnelle, de gérer les variables d'environnement avec des fichiers .env, et d'optimiser les builds avec le cache. Il aborde également l'utilisation des vérifications de santé pour gérer les dépendances entre services, la personnalisation des logs pour une meilleure lisibilité, l'utilisation de volumes nommés pour la persistance des données, et l'extension des fichiers de configuration pour une meilleure modularité. Ces techniques permettent de rendre les workflows de développement plus efficaces et flexibles.
Apptainer, anciennement connu sous le nom de Singularity, est une plateforme de conteneurisation open source conçue pour exécuter des applications dans des environnements isolés et portables. Contrairement à d'autres solutions de conteneurisation comme Docker, Apptainer est spécialement optimisé pour les environnements de calcul haute performance (HPC) et les systèmes multi-utilisateurs, permettant aux utilisateurs d'exécuter des conteneurs sans nécessiter de privilèges root. Cela en fait un outil idéal pour les centres de recherche et les institutions académiques où la sécurité et la performance sont essentielles. Apptainer prend en charge les images Docker, facilitant ainsi l'intégration avec les infrastructures existantes, et offre une compatibilité avec les environnements HPC, permettant une interaction directe avec le matériel spécialisé. Grâce à sa capacité à fonctionner dans des environnements sans privilèges et à son architecture sans démon, Apptainer simplifie le déploiement d'applications conteneurisées tout en maintenant un haut niveau de sécurité et d'efficacité.
L'article explique comment l'auteur a finalement compris Docker et Kubernetes en les abordant de manière pratique. Docker est présenté comme un outil permettant d'empaqueter une application et ses dépendances dans un conteneur portable, assurant ainsi qu'elle fonctionne de la même manière partout. Kubernetes, quant à lui, est décrit comme un système de gestion de ces conteneurs, permettant de coordonner plusieurs services, de les maintenir en fonctionnement et de les mettre à l'échelle selon les besoins. L'auteur souligne que comprendre ces technologies est devenu plus simple en les utilisant pour résoudre des problèmes concrets plutôt qu'en essayant de mémoriser du jargon technique.
L'option metrics-addr de Docker permet d'exposer les métriques de performance et d'utilisation des ressources via un endpoint HTTP sur le port 9323, offrant ainsi un accès à des informations détaillées sur l'environnement Docker. Ces métriques, formatées pour Prometheus, incluent des données sur l'utilisation du CPU, de la mémoire, du disque et du réseau par conteneur, ainsi que des informations sur l'état du démon Docker et les performances des opérations. Cette fonctionnalité est particulièrement utile pour la supervision d'infrastructure, l'alerting automatisé et l'analyse de tendance, bien qu'elle nécessite des outils complémentaires pour une visualisation et une gestion avancées des données.
La fonctionnalité live-restore de Docker permet aux conteneurs de continuer à fonctionner normalement pendant le redémarrage du démon Docker, évitant ainsi les interruptions de service. Cela est particulièrement utile pour les mises à jour de sécurité et la maintenance planifiée, car cela découple les conteneurs du cycle de vie du démon, les maintenant actifs sous la supervision du noyau Linux. Cependant, cette fonctionnalité ne protège pas contre les redémarrages du système d'exploitation ou les pannes matérielles, et certaines fonctionnalités Docker sont limitées pendant le redémarrage.
L'article explique comment Docker utilise par défaut le pilote json-file pour stocker les logs, ce qui peut entraîner des problèmes d'espace disque si non configuré correctement. Il propose des solutions pour configurer et limiter la taille des fichiers de logs via le fichier /etc/docker/daemon.json et présente divers pilotes de logs comme syslog, journald, et des solutions plus avancées comme Splunk ou AWS CloudWatch Logs pour des environnements critiques. Enfin, l'article souligne l'importance des bonnes pratiques telles que la rotation des logs, l'étiquetage, et la centralisation pour une gestion efficace des logs dans Docker.
L'article explique comment Docker utilise un système de stockage en couches, où chaque instruction dans un Dockerfile crée une nouvelle couche en lecture seule, avec une couche supérieure en lecture-écriture pour les conteneurs en fonctionnement. Il aborde les différents pilotes de stockage disponibles, comme overlay2, recommandé pour les distributions Linux modernes, et propose des conseils pour optimiser l'espace disque, comme l'utilisation d'images légères et la configuration de cron jobs pour le nettoyage périodique. Enfin, il souligne l'importance d'une bonne gestion des données persistantes dans un environnement de conteneurs éphémères.
L'article explique la configuration des réseaux par défaut dans Docker, qui crée automatiquement trois réseaux : bridge, host, et none. Il aborde la résolution des conflits d'adresses IP en modifiant le fichier /etc/docker/daemon.json et en redémarrant Docker. L'article détaille également les différents types de réseaux disponibles dans Docker, comme macvlan pour les réseaux physiques et overlay pour les clusters Swarm, tout en offrant des bonnes pratiques pour une gestion efficace des réseaux Docker.
L'article présente des choses à ne plus faire avec Docker :
- mettre le champ "version" dans le fichier compose
- ne pas mettre de "healthchecks"
- être root par défaut
- ne avoir de .dockerignore
- avoir des Dockerfiles en une seule étape surchargée -> il faut utiliser les builds en plusieurs étapes
- des builds manuels sans cache, il y a même la possibilité de faire du hot reload
Docker peut servir aussi bien en développement local qu'en production.
DDEV propose des environnements de développement PHP basés sur Docker. L'auteur montre comment s'en servir pour Symfony / Vue
L'article présente une stratégie Docker éprouvée pour déployer des applications Symfony avec Apache, MySQL et OpenSearch. L'auteur partage son setup personnel utilisant un Dockerfile
et docker-compose
, optimisé pour la production et incluant des ajustements spécifiques à Symfony. L'article met en avant les avantages de Docker pour PHP, notamment la définition de l'infrastructure en tant que code, éliminant ainsi les problèmes de reproductibilité des bugs entre différents environnements
.
L'article explore des fonctionnalités avancées de Docker souvent méconnues mais puissantes pour améliorer les workflows DevOps et renforcer la sécurité des déploiements.
-
SBOM et l’analyse avec Trivy : Générez des inventaires de composants logiciels (SBOM) et analysez-les avec Trivy pour détecter les vulnérabilités dans vos images Docker.
-
Multi-architecture avec Docker et Buildx : Créez des images Docker compatibles avec plusieurs architectures (AMD, ARM, etc.) en une seule commande grâce à Docker Buildx.
-
Signature des images Docker avec Sigstore : Signez et vérifiez vos images Docker avec Sigstore et Cosign pour garantir leur intégrité et provenance.
-
OCI Registry et ORAS : Utilisez ORAS pour pousser et récupérer des artefacts OCI sur des registries, au-delà des images Docker, pour une gestion standardisée et sécurisée des artefacts.
Ces fonctionnalités montrent l'évolution de Docker vers une plateforme plus sécurisée et flexible, adaptée aux besoins des environnements DevOps modernes.