Opérations et gestion → Documentation des opérations en tant que code
Documentation des opérations sous forme de code
1) L'essence de l'approche
La documentation en tant que code est une pratique dans laquelle les connaissances opérationnelles, les instructions et les processus sont stockés, édités et vérifiés de la même manière que le code : via Git, pull-requests, review et CI-validation.
Dans le circuit opérationnel, cela constitue la base de la fiabilité, de la transparence et de la compatibilité des commandes.
- Créez un système de connaissances en direct, reproductible et versionable, où chaque instruction est un artefact d'infrastructure plutôt qu'un PDF obsolète.
2) Pourquoi est-ce nécessaire
Transparence : vous pouvez voir qui, quand et pourquoi a changé la procédure.
Cohérence : toutes les équipes travaillent selon les versions actuelles.
Intégration avec CI/CD : vérification automatique de la validité des instructions.
Réplicabilité : l'infrastructure et la documentation sont synchronisées.
Sécurité : contrôle d'accès et audit via Git.
Accélération de l'onbording : les nouveaux opérateurs voient des scénarios précis liés au code.
3) Les principaux objets
4) Architecture de référentiel
ops-docs/
├── README.md # описание структуры
├── standards/
│ ├── sop-deploy.md
│ ├── sop-oncall.md
│ └── sop-release.md
├── runbooks/
│ ├── payments-latency.md
│ ├── games-cache.md
│ └── kyc-verification.md
├── playbooks/
│ ├── dr-failover.yaml
│ ├── psp-switch.yaml
│ └── safe-mode.yaml
├── postmortems/
│ └── 2025-03-17-bets-lag.md
├── policies/
│ ├── alerting.yaml
│ ├── communication.yaml
│ └── security.yaml
└── templates/
├── postmortem-template.md
├── sop-template.md
└── playbook-template.yaml
Astuce : chaque dossier est son propre référentiel Git ou submodule pour que différentes commandes puissent gérer le contenu indépendamment.
5) Format et normes
Métadonnées (front-matter YAML) :yaml id: sop-deploy owner: platform-team version: 3.2 last_review: 2025-10-15 tags: [deployment, ci-cd, rollback]
sla: review-180d
Structure Markdown :
Цель
Контекст
Последовательность шагов
Проверка результата
Риски и откат
Контакты и каналы
YAML-playbook (exemple) :
yaml name: failover-psp triggers:
- alert: PSP downtime steps:
- action: check quota PSP-X
- action: switch PSP-Y
- action: verify payments latency < 200ms rollback:
- action: revert PSP-X
6) GitOps et processus de changement
Pull Request = Modifications de la documentation RFC.
Révision : le propriétaire du domaine et Head of Ops doivent approuver.
Validation CI : vérification de la structure, champs obligatoires, linter Markdown/YAML.
Publication automatique : après merge - génération HTML/wiki/dashboards.
Change log : auto-historique des changements avec les dates et les auteurs.
Alert-rappels : révision du document tous les N jours (par SLA).
7) Intégration CI/CD
Contrôles Lint : Syntaxe Markdown, validation YAML, champs owner/version.
Link-check : vérifie l'URL et les liens internes.
Docs-build : conversion en HTML/Confluence/portail.
Diff-analyse : ce qui a changé depuis la dernière version de la documentation.
Auto-sync : mise à jour des liens dans les dashboards Grafana, Ops UI, Slack.
Review bots : conseils sur les sections obsolètes ou les propriétaires manquants.
8) Intégration avec les outils opérationnels
Grafana/Kibana : annotations et liens vers le runbook correspondant directement à partir du panneau.
Insident Manager : bouton « Open Runbook » lors de la création d'un ticket.
Portail d'appel : émission de SOP et de playbook à jour par catégorie d'incident.
Assistants AI : recherche par dépôt, génération de TL ; DR et conseils d'action.
Panneau BCP : Chargement automatique des instructions DR lorsque le script est activé.
9) Gestion du cycle de vie des documents
10) Automatisation et synchronisation
Docs-bot : vérifie quels documents sont obsolètes.
Version badge : '! [dernière revue : 2025-05]' juste dans le chapeau.
Runbook-finder : par alert, ouvre le document requis par tag.
Templates-generator : crée de nouveaux SOP à partir d'un modèle ('make new-sop « Deployment »).
Audit-sync : relie la version SOP à la version système et commit-ID.
11) Sécurité et vie privée
RBAC sur le référentiel : accès à l'édition uniquement chez les propriétaires de domaine.
Secrets et PII : ne peut pas être stocké dans des documents ouverts ; uniquement les références à un vault protégé.
Audit : journal de tous les changements, revues et publications.
Politique de mise à jour : révision du PON tous les 6 mois.
Backups : snapshots réguliers du référentiel et portail cache dans la zone DR.
12) Métriques de maturité
13) Anti-modèles
La documentation est stockée sur Google Docs sans version ni propriétaire.
Runbook n'est pas mis à jour après les sorties.
SOP fait référence à des commandes/outils obsolètes.
Pas de validation CI : Markdown avec des erreurs et des liens battus.
Dupliquer les mêmes instructions à différents endroits.
Absence de propriétaires et de processus de révision.
14) Chèque de mise en œuvre
- Identifier les propriétaires de domaine et les responsables de la documentation.
- Créer le référentiel Git 'ops-docs/' et les modèles SOP/runbook/playbook.
- Configurer les contrôles CI et les linters (Markdown/YAML).
- Configurer la publication automatique dans le portail ou Wiki.
- Intégrer avec Grafana/Incident Manager.
- Ajouter un Ops-bot pour les rappels et les révisions SLA.
- Former les équipes sur « docs-as-code workflow ».
15) 30/60/90 - plan de mise en œuvre
30 jours :- Créez une structure de référentiel, des modèles, un linter CI et un processus PR.
- Migrer les SOP clés et 5-10 runbook critiques.
- Configurer auto-build dans le portail.
- Implémenter les intégrations avec Incident Manager et Grafana.
- Connectez le bot Ops pour les audits et les rapports.
- Mettre à jour le modèle post-mortem et l'associer à l'incident dashboard.
- Couverture SOP/runbook complète (≥90 %).
- Entrez KPI : Coverage, Examen SLA, Utilisation.
- Effectuer rétro sur la commodité et la qualité du processus « docs-as-code ».
16) Exemple de modèle SOP (Markdown)
SOP: Deployment через ArgoCD id: sop-deploy owner: platform-team last_review: 2025-10-15 tags: [deployment, rollback, argo]
Цель
Обеспечить безопасное и управляемое развертывание сервисов через ArgoCD.
Контекст
Используется для всех микросервисов с шаблоном Helm v2+.
Требует активного GitOps-контура и включенных health-checks.
Последовательность шагов
1. Проверить статус `argocd app list`
2. Выполнить `argocd app sync payments-api`
3. Убедиться, что `status: Healthy`
4. В случае проблем — `argocd app rollback payments-api --to-rev <rev>`
Проверка результата
SLO API доступность ≥ 99.95%, алертов нет.
Риски и откат
- Ошибка синхронизации — rollback.
- При повторных ошибках — эскалация Head of Ops.
Контакты
@platform-team / #ops-deploy
17) Intégration avec d'autres processus
Analyse opérationnelle : rapports sur les audits Coverage et SLA.
Formation des opérateurs : formation basée sur un vrai runbook.
Postmortems : Insertion automatique de liens vers SOP et playbook.
Éthique de gestion : transparence du changement et auteur.
Assistants AI : recherche contextuelle et TL ; DR du référentiel.
18) FAQ
Q : Pourquoi Git s'il y a Confluence ?
R : Git donne les versions, la révision, l'automatisation et la reproductibilité. Confluence peut être la vitrine ultime, mais pas la source de la vérité.
Q : Comment éviter les instructions obsolètes ?
A : SLA pour la révision (180 jours) + rappels Ops-bot + badge automatique de la dernière vérification.
Q : Puis-je connecter l'IC à la documentation ?
A : Oui. La vérification de la syntaxe, des champs obligatoires et des références binaires s'effectue comme une pipeline standard, similaire aux tests de code.