L'usine logicielle

Cycle DevOps

  • Améliorer la communication entre les développeurs et l’exploitation afin de réduire le temps de mise sur le marché d’un produit
  • Proposer des bonnes pratiques destinées à répondre au besoin croissant d’industrialisation et de normalisation du système d’information
  • Sécuriser et stabiliser les mises en production
  • Limiter les interventions humaines : sources principales d'erreur
  • Se reposer sur des outils et construire une usine logicielle

Plan : planifier le travail

  • Planifier le travail / gestion de projet
  • Plan de production
  • Planification des itérations
  • Documentation
  • Mise en place d'évolutions
  • Gestion des anomalies

Code : création et intégration du code du produit

  • Créer, construire et produire le code
  • Suivre l'évolution de ce code
  • Gestion de configuration
  • Gestion des branches, fusion
  • Conventions sur le code

Build : construire son produit

  • Produire la forme "exécutable" du code
  • Avoir une version "compilée"
  • Produire des artefacts
  • Construire automatiquement du code prêt à être déployer

Test : tester la viabilité de son produit

  • Tests unitaires
  • Tests d'intégration
  • Tests fonctionnels
  • Suite de tests automatique

Release: livrer le code

  • Publier le code sous forme d'un livrable
  • Publier/tagguer une version de logiciel
  • Documenter en vue du déploiement
  • Gérer les artefacts
  • Phase intimement liée au déploiement

Deploy / Operate :

  • Déploiement des artefacts dans l'environnement adéquat
  • Configuration de l'environnement et de l'architecture
  • Mise en place d'une stratégie de déploiement (Rollout, Blue-Green, ...)
  • Mise à disposition du logiciel aux utilisateurs
  • Etape fortèment liée à l'infrastructure
  • Assurer l'opération du logiciel, le suivi de son usage, mise en place du retour continu

Monitor :

  • Monitorer tout ce qui peut l'être : code, infrastructure
  • Suivre les logs et les usages
  • Etre dans une démarche d'amélioration continue

Cycle DevOps et intégration continue

Cycle DevOps et TP

Une myriade d'outils

Des outils qui couvrent de nombreux aspects

Les outils, c'est pas suffisant

  • le DevOps / L'usine logicielle ce n'est pas seulement des outils
  • C'est une démarche à adopter
  • C'est une démarche à construire avec des objectifs et des moyens
  • C'est une démarche itérative et évolutive

Mise en place d'une usine logicielle

  • Il faut prévoir la démarche au coeur du projet, ne pas la gérer à la fin

  • Par conséquent, prévoir du temps pour cette thématique

  • Ne pas vouloir tout faire d'un coup

  • S'appuyer sur les outils et les bonnes pratiques existants

  • Ne pas croire que les outils vont tout résoudre pour vous

  • Ne pas sous-estimer la phase de mise en place

La mise en place par étapes

  1. Définir un référentiel de bonnes pratiques de code

  2. Adopter une gestion centralisée du Code Source

  3. Mettre en place des tests automatisés

  4. Documenter l’architecture du code et le code

  5. Déployer la partie CI/CD

  6. Monitorer tout élément automatisé

Définir un référentiel de bonnes pratiques

  • Sensibiliser les équipes à la Qualité Logicielle

  • Échanger sur les bonnes pratiques

  • Former les développeurs débutants

  • Mettre en place des règles métiers, des conventions de nommage

Pour la mise en place de la CI/CD

  • Ne cherchez pas à créer votre pipeline d'un seul coup

  • Automatisez déja vos tests / vos livraisons localement

  • Examinez les logs de votre CI/CD même quand ça marche

  • Réévaluez vos priorités et objectifs au cours du projet

Pour aller plus loin, le cycle DevSecOps

Le cycle DevSecOps