Accueil Nos publications Blog Retour sur l’accompagnement & l’intégration DevOps​ à Orléans

Retour sur l’accompagnement & l’intégration DevOps​ à Orléans

article-expert-devops-orléans

Sommaire

  1. Les problématiques de notre client​
  2. Pour chaque problématique, nos solutions DevOps​
  3. La mise en place de GitLab
  4. L’implémentation ​de Scrum​
  5. La mise en place du centre de services Néosoft
  6. Les bénéfices pour notre client DevOps à Orléans
  7. Conclusion


Chez Néosoft Orléans, nous développons activement le DevOps à l’état de l’art au sein de l’agence. Avec près de 40 consultants experts, nous accompagnons nos clients dans leurs démarches d’optimisation IT en utilisant les dernières innovations technologiques.

Un de nos clients, acteur local de l’enseignement, nous a sollicité pour un projet DevOps à Orléans dans le cadre d’une prise en charge des activités d’intégration et de déploiement des applications de gestion administrative.​

Les problématiques de notre client​

En 2021, notre client orléanais rencontrait certaines difficultés dans la livraison de ses packages. En cause :

  • Des applications très dépendantes les unes des autres, difficiles à utiliser et maintenir. Il y avait beaucoup d’incertitudes sur le comportement des packages et il fallait bien souvent modifier des choses manuellement sur les serveurs, engendrant ainsi des erreurs humaines.
  • Un temps de déploiement conséquent. Le déploiement d’application monopolisait un environnement le rendant indisponible pour son usage premier. Le temps d’indisponibilité d’un environnement pouvant parfois dépasser le mois, générant du stress pour les équipes.
  • Une amélioration continue impossible: chaque manipulation représentait un risque et seules les personnes disposant de l’expérience suffisante étaient autorisées à utiliser les packages. Aucun test n’était donc possible, bloquant toute amélioration continue des applicatifs. En 2020, nous estimions la dette technique accumulée entre 5 à 8 ans.​
  • ​Des freins humains et une résistance au changement ​: les ressources internes étaient réticentes à l’idée d’adopter de nouvelles pratiques et à abandonner leurs méthodes de travail habituelles.​
  • Une hétérogénéité des outils​ : nous assistions à une démultiplication des plateformes pour les mêmes fonctions.​

Pour chaque problématique, nos solutions DevOps​

La première étape consistait à supprimer le stress généré par les équipes qui attendaient la mise à disposition d’un environnement et de s’absoudre de la peur de casser des fonctionnalités critiques sans pouvoir revenir en arrière. ​

L’approche « Pets and Cattle » a été utilisée pour différencier la gestion des serveurs et des ressources informatiques :

  • Pets (animaux domestiques) : les serveurs pets sont traités de manière spéciale et individuelle. Ils ont des noms, des configurations personnalisées, et toute interruption ou problème avec un serveur est considéré comme un événement critique. Les administrateurs passent beaucoup de temps à les entretenir.​
  • Cattle (bétail) : les serveurs cattle sont gérés de manière standardisée et automatisée. Ils sont considérés comme interchangeables et remplaçables. Si un serveur cattle présente un problème, il est simplement retiré et remplacé par un autre. Il n’y a pas de personnalisation individuelle, les administrateurs passent moins de temps à s’occuper d’eux.

L’objectif du DevOps étant de passer d’une approche pets à une approche cattle, notre première étape fut donc de « désacraliser » la gestion des serveurs. Cela signifie automatiser leur gestion, standardiser les configurations, et être prêt à remplacer facilement les serveurs en cas de besoin. Cette approche permet une gestion plus efficace, plus évolutive et moins sujette aux erreurs humaines dans les opérations informatiques.​

L’approche « Pets and Cattle » a également rendu les démonstrations plus faciles, encourageant les équipes clients à réaliser plus de tests, et donc à favoriser l’amélioration continue.

La mise en place de GitLab

Le nombre d’outils était également un frein avec une démultiplication des plateformes pour les mêmes fonctions.​

L’étape suivante fût donc la centralisation des artefacts avec, en tout premier lieu, le fait d’arrêter de stocker des packages sur les postes de travail. ​

Nous pouvions alors utiliser :​

  • le système de ticketing qui porte les fonctionnalités aussi appelées « issues »
  • les mécaniques de « branches » et de « merge request » pour prôner le pair programming et le travail collaboratif de façon générale (aussi bien au sein de l’équipe qu’avec les autres équipes)

Ce travail d’évangélisation fut long mais il a été assez facile de convaincre notre client car la plateforme GitLab jouit de sa renommée et qu’il s’agit d’un outil standard. L’effort principal concernait donc l’accompagnement.​

Pour les outils de communication, encore aujourd’hui, nous avons beaucoup de mal à converger vers un canal unique. Nous perdons moins d’informations qu’auparavant car celles-ci sont davantage partagées et nous stockons les informations précieuses dans les wikis et les issues sur GitLab.

L’implémentation ​de Scrum​

Très vite, nous étions confrontés à un autre problème : il n’y avait aucune notion de priorisation, les équipes travaillant constamment dans l’urgence.​

  • Quels étaient leurs objectifs principaux (Sprint Goals) ​sur les 2 prochaines semaines (Sprint) ​
  • Quels étaient leur critères d’acceptance et de qualité (Definition of Done = DoD)​

Nous avions des points quotidiens (i.e. Daily Stand Up) puis, à la fin des deux semaines, nous présentions une démo de l’incrément logiciel aux différentes équipes. Nous discutions ensuite des prochaines échéances (Sprint Review). ​

Enfin, nous prenions le temps de discuter de l’amélioration de ce nouveau processus (Sprint Retrospective) puis nous planifions les prochaines issues à prendre en compte avant et pendant le Sprint (Sprint Planning). Le processus était jalonné de sessions (Refinement) où nous estimions et priorisions les éléments hors Sprint (Product Backlog).​

Afin d’éviter un rejet par les équipes, un travail de pédagogie a été nécessaire pour chaque cérémonies (Sprint Planning, Sprint Review, Daily Meeting, etc.) afin d’en comprendre le sens. ​

Cette méthodologie a vu l’efficacité de l’équipe exploser assez rapidement car les échanges étaient concentrés sur un point d’entrée principal : le Scrum Master. Il a fallu environ 4 Sprints, soient 2 mois, pour que chacun comprenne sa place et ses responsabilités. Nous avons même pu tester un Scrum Master tournant. L’équipe a globalement bien appréhendé cette nouvelle pratique, nous sommes passés d’une somme d’efforts individuels, à un effort collectif.

La mise en place du centre de services Néosoft

Pourquoi un centre de services DevOps ?

Une fois la phase d’accompagnement terminée, nous avons mis en place un centre de services Néosoft afin de maintenir les compétences nécessaires à la réalisation des activités d’intégration. Néosoft intervient également sur des besoins d’expertises ponctuelles :​

  • Intégration d’applications existantes ou non dans le SI de notre client afin que l’exploitation soit homogène et cohérente​
  • Fourniture d’une chaîne d’intégration continue

Le centre de services Néosoft prend en charge :​

  • La gestion du déploiement continu via GitLab CI/CD​
  • La création des hébergements​
  • La gestion de la haute disponibilité (loadbalancer, reverse proxy)​
  • La documentation et la communication vers les équipes de développements, diffusion et production

L’environnement technique proposé ​

  • Intégration et déploiement continus (GitLab CI/CD, Jenkins, Ansible)​
  • Systèmes (Linux, AD,…)​
  • Serveurs d’applications (Db2, PostgreSQL, Apache, Nginx,  Tomcat, Jboss, Weblogic)​
  • RSA, Oauth2​
  • Réseaux, Openssl, certificats, gestion des niveaux de sécurités des sites exposés​
  • Scripting (batch, Perl, Python,…) et développement (Java, Go, Angular…)​
  • Kubernetes, Docker​

La méthodologie de notre centre de services

Néosoft intègre au sein du centre de services les notions méthodologiques déployées par le client :​

  • L’agilité adaptée à son contexte :​ Sprints de 3 semaines avec intégration continue​, participation aux daily​ et communication proactive​.
  • Mise en œuvre des bonnes pratiques d’intégration DevOps (workflow GitLab, sécurisation des déploiements…) et mise en place des pipelines de déploiement continue (CI/CD) en collaboration avec les équipes d’infogérance des environnements.​

Les indicateurs de performance que nous suivons

Indicateurs généraux :

  • Production des comptes-rendus​
  • Satisfaction globale semestrielle​

Indicateurs de sécurité :

  • Sensibilisation sécurité​
  • Formation sécurité de l’infrastructure
  • Sensibilisation RGPD​
  • Suivi des incidents de sécurité​

Indicateurs opérationnels :

  • Nombre de tickets traités​
  • Nombre de documentations mises à jour​
  • Nombre de contributions aux projets GitLab​

Les bénéfices pour notre client DevOps à Orléans

L’adoption des méthodologies et outils DevOps ont permis à notre client :​

  • L’amélioration de la livraison : nous avons transformé les processus de livraison de packages pour les rendre plus rapides, plus fiables et moins coûteux :​
    • Rapidité de livraison des applicatifs x240 (30 min. vs. 3 semaines auparavant)​
    • Fréquence de release x12 (1 release par semaine vs. tous les 3 mois auparavant)​
  • 1 000 fois moins de chances d’erreurs humaines (car plus de 1 000 tests TDD mis en place vs. 0 auparavant)​
  • La réduction de la dette technique accumulée grâce à l’optimisation des processus et à l’automatisation. 6x moins de dette technique (1 an vs. 4-5 ans auparavant)​
  • Le renforcement de la collaboration entre les équipes​
  • L’adoption d’une culture Agile​
  • Le mentoring et l’autonomie des équipes pour une transition efficace vers des pratiques DevOps durables​

Conclusion

Au-delà des résultats obtenus, ce projet illustre parfaitement l’ADN de Néosoft, révélant la synergie entre les compétences de chacun.​ Le lead DevOps a joué un rôle essentiel dans la communication entre le métier et l’équipe de développement.​​ Le centre de services Néosoft et les équipes du client ont su faire appel au sens du collectif et être force de proposition en apportant une solution complète. Ces missions ne se sont pas seulement limitées à des réponses techniques ou organisationnelles / fonctionnelles. Ce projet a favorisé le rapprochement des profils et créé une dynamique d’enrichissement mutuel.

Thomas Sanson, Technical Officer DevOps Orléans
Neosoft-portrait-Thomas-Sanson

Vous souhaitez en savoir plus ? Contactez-nous !