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.
20articles et ce n’est qu’un début.
OpsCanopy8 min de lecture
Apprendre le DevOps en 90 jours, de développeur à ingénieur
Pourquoi nous avons créé Mission: 90 Days DevOps — un parcours gratuit de Linux à Kubernetes, jour par jour, avec des missions d'incident jouables.
- devops
- career
- learning
OpsCanopy13 min de lecture
Déboguer le routage d'Alertmanager : le mauvais receiver
Vos alertes partent vers le mauvais receiver, ou vers aucun ? Déboguez le routage d'Alertmanager : first-match-wins, continue oublié et routes catch-all.
- alertmanager
- observability
- alerting
OpsCanopy11 min de lecture
Alertmanager : matchers, regroupement et héritage de routes
Référence de la config de routes Alertmanager : matchers, match et match_re, regex ancrées, les quatre champs de regroupement et ce qu'hérite une route enfant.
- alertmanager
- observability
- alerting
OpsCanopy10 min de lecture
Déboguer relabel_configs quand Prometheus perd une cible
Une cible a disparu après le relabeling ? Déboguez relabel_configs face à metric_relabel_configs, l'ancrage des regex et la logique keep/drop.
- prometheus
- observability
- relabeling
OpsCanopy9 min de lecture
Pourquoi votre « if » GitHub Actions s'exécute toujours
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.
- github-actions
- ci-cd
OpsCanopy9 min de lecture
Pourquoi votre workflow GitHub Actions ne se déclenche pas
Un nom de branche qui ne correspond pas, la sémantique ET de branches + paths, l'exigence du glob **, paths-ignore sur pull_request — et les correctifs.
- github-actions
- ci-cd
- debugging
OpsCanopy11 min de lecture
Actions de relabeling Prometheus : keep, labelmap, hashmod
Référence des 11 actions de relabeling Prometheus — replace, keep, drop, labelmap, labeldrop, hashmod, keepequal, lowercase — chacune avec un exemple.
- prometheus
- observability
- relabeling
OpsCanopy11 min de lecture
7 erreurs courantes dans .gitlab-ci.yml et leurs correctifs
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.
- gitlab-ci
- ci-cd
- yaml
OpsCanopy10 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 dans votre navigateur, avant le commit.
- gitlab-ci
- ci-cd
- yaml
OpsCanopy11 min de lecture
Quand utiliser Docker Compose plutôt que docker run
Lequel choisir et ce qui change vraiment quand vous basculez : réseau par défaut, politique de redémarrage, mode détaché, et le retour à une ligne run.
- docker
- docker-compose
- containers
OpsCanopy11 min de lecture
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 et redémarrage.
- docker
- docker-compose
- containers
OpsCanopy6 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. Les quatre couches : sélecteurs, plages, fonctions et agrégations.
- promql
- prometheus
- observability
OpsCanopy6 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 se correspondent, et où ils divergent.
- logql
- promql
- observability
OpsCanopy6 min de lecture
Arrêtez de livrer un .env.example périmé
Votre .env.example est une documentation qui pourrit en silence. Pourquoi le drift de configuration casse l'onboarding et comment repérer les clés manquantes.
- configuration
- developer-experience
- twelve-factor
OpsCanopy6 min de lecture
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 et gourmandise.
- regex
- logs
- parsing
OpsCanopy6 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 et rattrapage.
- systemd
- cron
- linux
OpsCanopy7 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, les @macros et leurs pièges.
- cron
- scheduling
- devops
OpsCanopy8 min de lecture
Sécurité GitHub Actions : ce que les linters ne voient pas
Les validateurs YAML repèrent la syntaxe, pas l'exposition. Cinq mauvaises configurations GitHub Actions à fort impact, avec le mauvais schéma et le correctif.
- github-actions
- security
- ci-cd
OpsCanopy6 min de lecture
Un CVE, quatre fichiers d’exclusion à tenir synchronisés
Une même suppression de CVE doit être réencodée dans .trivyignore, .grype.yaml, .snyk et osv-scanner.toml : la même exclusion dans les quatre formats.
- security
- vulnerability-management
- devops
OpsCanopy5 min de lecture
Tester les règles d'alerte Loki là où promtool s'arrête
Prometheus dispose de promtool test rules. Loki n'a aucun équivalent. Pourquoi tester les règles d'alerte LogQL compte, et à quoi ressemblerait un test Loki.
- loki
- observability
- testing