Infrastructures Technologiques
Article
Nouvelle
Étude de cas
Portrait de formateur

DevOps – les grands principes

4 janvier 2021
Gabriel Guimond-Prevost
DevOps - les grands principes

Au départ DevOps est un mouvement propre à l’ingénierie informatique dont le but est de combiner le développement logiciel (en anglais Development) avec l’administration des infrastructures informatiques (en anglais Operations). D’où le nom DevOps : Dev pour Development et Ops pour Operations.

La mise en place d’une pratique DevOps dans l’entreprise est généralement initiée selon deux sources possibles :

  • Soit c’est une initiative du gestionnaire T.I. voire de la haute direction de l’entreprise, persuadé des bienfaits de ce changement et qui veut embarquer son équipe sur cette voie. On parle alors de sponsor.
  • Soit ce sont les membres de l’équipe qui veulent convaincre leur hiérarchie des bienfaits de la méthodologie et donc mettre de l’avant, à leur niveau, les avantages.

Origines

DevOps est inspirée par les nombreuses approches d’amélioration continue, tels que le modèle Toyota ou le mouvement Agile. Ces méthodes visent une réorganisation des méthodes de production en vue d’optimiser et de se débarrasser de tout ce qui n’est pas nécessaire, au profit de la création de valeur pour le client. D’où une certaine proximité avec le Lean également.

Objectif

Pour simplifier on peut dire que DevOps est une pratique qui peut se concrétiser via des logiciels de suivi et d’automatisation. Avec l’objectif affiché d’amener à travailler ensemble d’une part ceux qui développent des application (développeurs, analystes…) et d’autre part ceux qui les opérationnalisent (administrateurs systèmes et réseaux…). Le tout pour réduire significativement le cycle de vie de développement et améliorer la qualité des logiciels livrés.

Le But ?

  • Apporter de la valeur aux usagers (au sens large).

Là où la méthode Agile facilite la communication entre le client et l’équipe de développement, la méthode DevOps facilite la communication entre l’équipe de développement  et l’équipe des opérations

Pourquoi l’utiliser ?

  • Réduire les délais de mise en production.
  • Établir un processus répétable.

Azure DevOps

Un des outils disponibles pour soutenir vos équipes dans l’implantation de ces principes est Azure DevOps de Microsoft. La solution offre une panoplie d’outils, autant pour gérer les déploiements que les projets. De plus, l’utilisateur n’est pas limité à l’utilisation d’autres outils Microsoft (e.g. Java, Linux, Go, Android).

La force d’Azure est d’offrir un environnement étendu de l’approche DevOps, là où ses concurrents se concentrent sur certains aspects seulement. Comme Jira qui est au niveau gestion de projet, sprint ou Kanban boards, ou encore Git qui est au niveau de gestion du dépôt de code, etc.

Azure DevOps se divise en 3 outils principaux :

  • Azure Boards : Gestion des requis, gestion des itérations
  • Azure Repos : Gestion du code source
  • Azure Pipelines : Gestion des compilations et des déploiements automatiques

Le cycle vertueux

Ce processus de suivi et de mise en place est un cercle vertueux dont les étapes sont :

  • Lister les requis des clients
  • Traduire les requis en récits utilisateurs
  • L’équipe technique commence les itérations (Azure Boards)
  • Le dev prend un récit et commence le développement
  • Réviser le code (Azure Repos)
  • Compiler le code
  • Valider par les tests
  • Déployer les artéfacts dans les environnements cibles (Azure pipeline)

DevOps - le cercle vertueux

Par « artefact » on entend un morceau de code développé, compilé et prêt à être déployé (comme un .exe par exemple).

Par « pipeline » on entend une série d’étapes qui vont être automatisées, et qui démarreront selon un déclencheur prédéfini.

Les clés du succès

Ensemble

Pour que « ça marche » il faut une bonne collaboration entre les équipes, cela va sans dire, puisque c’est le fondement même de cette méthode. Le corolaire est qu’il faut être prêt et en mesure de réviser/augmenter les responsabilités des intervenants : quand un problème surgit, il ne doit pas être attribuable à une personne en particulier (ou à une équipe). Au contraire, il concerne tout le monde et tout le monde doit contribuer à sa résolution. Là où autrefois les équipes Dev et Infra avaient des objectifs contraires (en simplifiant Dev veut livrer rapidement et à bas prix alors qu’Infra va se focaliser sur des standards de qualité sans regarder au budget et au temps), il était plus simple de rejeter le blâme en cas d’enjeu sur « l’autre équipe ». À ce jeu personne n’est gagnant, et surtout pas l’entreprise. Avec la complexification des applications à développer, implanter et maintenir, une synergie entre tous les acteurs est indispensable.

Empirisme

Les savoirs des équipes sont basés sur l’expérience acquise. C’est cette dernière qui va permettre de cultiver les succès et limiter les échecs. Les fameux tests a/b en sont l’exemple le plus connu et le plus répandu, même au-delà des T.I.

Sur le plan technique

Avoir des environnements de travail (e.g. dev, test et prod) les plus similaires possibles, est aussi un facteur clé d’une livraison réussie.

Avantages d’une pratique DevOps

Tout le monde, y compris la hiérarchie, utilise les même métriques et le même vocabulaire. Ainsi chacun est au courant de ce qui se passe (avancement, enjeux…) et des besoins éventuels.

Cette meilleure visibilité du travail permet une livraison plus grande, de la flexibilité en cas de changement et des déploiements moins risqués.

À ne pas faire

Avant de se lancer dans une initiative DevOps, il est important d’avoir certains points à l’esprit. Tout d’abord, il peut être excitant de vouloir changer rapidement la façon dont toutes nos applications sont déployées. Néanmoins il est essentiel de commencer avec une solide preuve de concept, la tester correctement et continuer à avancer à petits pas.

Ensuite, le changement d’outil à lui seul ne peut suffire pour tirer tous les avantages de DevOps. Il faut aussi revoir les rôles et les responsabilités de chacun des membres de vos équipes de développement et d’opérations. N’oubliez pas que le but est de les faire travailler ensemble et de partager la responsabilité des logiciels livrés en production.

Conclusion

Les avantages de DevOps sont nombreux mais ils ne peuvent s’acquérir du jour au lendemain. Une bonne implantation de cette approche nécessite avant tout une réelle mobilisation, tant de la direction que des équipes terrain.

Si le sujet vous intéresse nous vous recommandons la formation :

Azure DevOps : Configurer des pipelines de déploiement en continu

Contactez-nous

Pour en savoir plus sur nos nouveaux services ou nous parler de vos besoins en développement de compétences, contactez nos spécialistes en formation au 514 380-0380 ou par courriel : formation@technologia.ca.

Articles similaires

Voir tous les articles de blogue