Articles
Notes de la canopée.
Observations sur l’outillage DevOps, l’observabilité et les petits manques de l’écosystème qui méritent d’être comblés — écrites pour les ingénieurs qui les rencontrent.
20 articles et ce n’est qu’un début.
-
OpsCanopy 8 min de lecture
Apprendre le DevOps en 90 jours : le parcours gratuit, axé sur les incidents, de développeur à ingénieur DevOps
Pourquoi nous avons créé Mission: 90 Days DevOps — un parcours gratuit de Linux à Kubernetes, jour par jour, avec des missions d'incident jouables. Le plan, les choix de conception et les compromis.
- devops
- career
- learning
-
OpsCanopy 13 min de lecture
Pourquoi mon alerte n'arrive-t-elle pas au bon receiver ? Déboguer le routage d'Alertmanager
Vos alertes partent vers le mauvais receiver, ou vers aucun receiver ? Déboguez le routage d'Alertmanager — first-match-wins, continue oublié, regex de matcher et routes catch-all par défaut.
- alertmanager
- observability
- alerting
-
OpsCanopy 11 min de lecture
Comment fonctionne le routage Alertmanager : matchers, continue et l'arbre de routes
Un modèle mental clair du routage Alertmanager — l'arbre de routes, les matchers, le flag continue, le regroupement et l'héritage du receiver — pour savoir exactement où part une alerte.
- alertmanager
- observability
- alerting
-
OpsCanopy 10 min de lecture
Pourquoi Prometheus a-t-il supprimé ma cible ? Déboguer les relabel_configs
Une cible a disparu ou un label s'est volatilisé après le relabeling. Déboguez les relabel_configs de Prometheus face aux metric_relabel_configs, l'ancrage des regex et la logique keep/drop.
- prometheus
- observability
- relabeling
-
OpsCanopy 9 min de lecture
Pourquoi votre condition « if » GitHub Actions s'exécute toujours (et comment y remédier)
Votre condition if GitHub Actions est toujours vraie ? C'est le piège du texte littéral : tout texte en dehors de ${{ }} est converti en chaîne truthy. Voici la cause et le correctif.
- github-actions
- ci-cd
-
OpsCanopy 9 min de lecture
Pourquoi votre workflow GitHub Actions ne s'est pas déclenché : les filtres branches, tags et paths expliqués
Pourquoi votre workflow GitHub Actions ne s'est pas déclenché : un nom de branche qui ne correspond pas, la sémantique ET des filtres branches + paths, l'exigence du glob **, paths-ignore sur pull_request, et les correctifs.
- github-actions
- ci-cd
- debugging
-
OpsCanopy 11 min de lecture
Comprendre les relabel_configs de Prometheus : guide pratique
Maîtrisez les relabel_configs de Prometheus de bout en bout — source_labels, regex, replacement et chaque action (replace, keep, drop, labelmap, hashmod) — avec des recettes prêtes à copier-coller.
- prometheus
- observability
- relabeling
-
OpsCanopy 11 min de lecture
7 erreurs courantes dans .gitlab-ci.yml (et comment les détecter)
Les erreurs de .gitlab-ci.yml qui font passer les pipelines au rouge : stages non déclarés, jobs sans script, needs et rules cassés, mauvais usage des ancres — chacune avec un correctif prêt à copier.
- gitlab-ci
- ci-cd
- yaml
-
OpsCanopy 10 min de lecture
Comment valider votre .gitlab-ci.yml avant de pousser
Arrêtez de pousser des pipelines cassés. Validez votre .gitlab-ci.yml pour les erreurs YAML et structurelles directement dans votre navigateur — avant le commit, pas après le pipeline en rouge.
- gitlab-ci
- ci-cd
- yaml
-
OpsCanopy 11 min de lecture
docker run face à Docker Compose : guide pratique de migration
Quand utiliser docker run, quand passer à Docker Compose, et comment convertir de l'un vers l'autre dans les deux sens — en gérant correctement les volumes, les réseaux et la reproductibilité.
- docker
- docker-compose
- containers
-
OpsCanopy 11 min de lecture
Comment convertir une commande docker run en docker-compose.yml
Convertissez n'importe quelle commande docker run en service docker-compose.yml, drapeau par drapeau — ports, volumes, environnement, redémarrage et plus encore. Un guide pratique, prêt à copier-coller.
- docker
- docker-compose
- containers
-
OpsCanopy 6 min de lecture
Comment lire une requête PromQL
Une requête PromQL se lit de l'intérieur vers l'extérieur, et non de gauche à droite. Découvrez les quatre couches — sélecteurs, plages, fonctions et agrégations — pour décoder n'importe quelle expression Prometheus en un coup d'œil.
- promql
- prometheus
- observability
-
OpsCanopy 6 min de lecture
LogQL vs PromQL : la même requête dans les deux langages
LogQL emprunte la forme de PromQL mais part de lignes de log, et non de métriques. Voici comment les deux langages de requête se correspondent, où ils se traduisent proprement, et où ils ne le font tout simplement pas.
- logql
- promql
- observability
-
OpsCanopy 6 min de lecture
Arrêtez de livrer un .env.example périmé
Votre .env.example est une documentation qui pourrit en silence. Voici pourquoi le drift de configuration casse l'onboarding et les déploiements, comment détecter les clés manquantes et inutilisées, et comment garder le fichier d'exemple honnête.
- configuration
- developer-experience
- twelve-factor
-
OpsCanopy 6 min de lecture
Écrire des expressions régulières robustes pour les lignes de log
Un guide pratique pour construire des regex qui analysent les lignes de log de manière fiable — ancrage, groupes de capture, échappement, gourmandise et les modes de défaillance qui vous piègent en production.
- regex
- logs
- parsing
-
OpsCanopy 6 min de lecture
Migrer de cron vers les timers systemd
Un guide pratique pour convertir des entrées crontab en unités .timer et .service systemd — syntaxe OnCalendar, journalisation, délais aléatoires, exécutions de rattrapage et les pièges qui surgissent pendant la migration.
- systemd
- cron
- linux
-
OpsCanopy 7 min de lecture
Lire les expressions cron : un guide champ par champ
Un guide pratique, champ par champ, pour lire les expressions cron — les cinq champs temporels, les plages, les pas, les listes et les @macros — ainsi que les pièges qui déclenchent les planifications au moment où vous vous y attendez le moins.
- cron
- scheduling
- devops
-
OpsCanopy 8 min de lecture
Les erreurs de sécurité GitHub Actions que les linters ne détectent pas
Les validateurs YAML repèrent la syntaxe, pas l'exposition. Voici les cinq mauvaises configurations GitHub Actions à fort impact — pull_request_target, injection de script, actions non épinglées, portées trop larges de GITHUB_TOKEN et curl|bash — avec le mauvais schéma et le correctif pour chacune.
- github-actions
- security
- ci-cd
-
OpsCanopy 6 min de lecture
Un CVE, quatre fichiers d’exclusion : unifier Trivy, Grype, Snyk et osv-scanner
Une seule suppression de CVE triée doit être réencodée dans .trivyignore, .grype.yaml, .snyk et osv-scanner.toml — chacun avec une forme différente. Voici la même suppression dans les quatre formats, ce qui se transpose proprement et ce qui se perd.
- security
- vulnerability-management
- devops
-
OpsCanopy 5 min de lecture
Tester unitairement les règles d'alerte Loki : la lacune que promtool laisse
Prometheus dispose de promtool test rules. Loki n'a aucun équivalent. Voici pourquoi tester les règles d'alerte LogQL est important, à quoi devrait ressembler un test unitaire de règle Loki, et comment combler cette lacune dès aujourd'hui.
- loki
- observability
- testing