Apprivoiser le monolithe : Premiers jours en DevOps sur un système legacy
Un nouvel ingénieur DevOps intègre une équipe où une application monolithique — le cœur de l'architecture — cohabite difficilement avec des microservices. L'état partagé entre les composants crée des goulets d'étranglement lors des déploiements. Le pipeline gère les builds, les tests, le staging et une approbation manuelle avant la production. Les problèmes surgissent au moment de l'accès : refus de permission qui bloque le rituel de mise en production.
L'équipe organise des daily standups : les devs partagent leurs avancées, leurs blocages et leurs plans. Le DBA signale les risques de migration, le lead rappelle les règles non écrites. Sans automatisation, les approbations d'accès deviennent un calvaire en plusieurs étapes : demande, formation, double validation.
Structure du pipeline et pannes courantes
Le déploiement démarre avec un pipeline au feu vert :
- Builds d'artefacts.
- Tests unitaires et d'intégration.
- Déploiement en staging.
- Approbation manuelle (le goulet d'étranglement).
- Déploiement en production.
Les gardiens de la sécurité interviennent à l'étape manuelle : pas de validation signifie rejet. Les rollbacks sont quotidiens. Le runbook reste à l'état de brouillon, tandis que le sorcier legacy (l'architecte) met en garde contre toute manipulation du monolithe endormi.
Le monolithe contrôle l'état partagé, les microservices en dépendent, ce qui génère des conflits de ressources. L'observabilité — métriques, alertes, logs — est configurée pour le déploiement live pendant la release.
Structure de l'équipe et rituels
L'escouade de la stabilité comprend :
- Product manager (orchestre les releases).
- Team lead (gère les risques).
- DBA (gardien de la base de données, ennemi des index spontanés).
- Développeurs (corrigent les FIXME dans le code).
- Inquisiteur sécurité (validations et accès).
Les standups sont d'une honnêteté brutale : victoires d'hier, plan du jour, blocages. L'agile masque les deadlines, mais la réalité (permission refusée) l'emporte. Le pager vibre avec des alertes opportunes.
Défis de l'architecture legacy
Le schéma du système ressemble à un donjon : monolithe au centre, microservices en périphérie. L'état partagé entraîne :
- Guerres de territoires sur les ressources.
- Dépendances de déploiement.
- Interventions manuelles.
L'adoption de l'IaC (infrastructure as code) bute sur des obstacles humains et processuels. Les permissions existent mais sont chaotiques — terrain idéal pour refactoriser rôles et politiques.
Points clés :
- Les monolithes avec microservices exigent un runbook unifié pour les déploiements.
- Les approbations manuelles sont un anti-pattern ; automatisez le RBAC.
- Les standups détectent les blocages tôt, mais les portes de sécurité restent fermes.
- L'état partagé génère des incidents ; planifiez la migration.
- L'observabilité (métriques, alertes, logs) est indispensable pour les releases en production.
Feuille de route d'optimisation
Dès le premier jour : standardisez le pipeline, réduisez les étapes manuelles, mettez en place l'observabilité. Ne touchez pas au legacy sans plan — tests d'abord, puis release. L'équipe est prête au changement si on canalise le chaos via Kanban.
— Editorial Team
Aucun commentaire pour le moment.