Les principes du DevOps : de la cohésion des équipes à l’automatisation des actions

Lors de notre précédent article, nous avons introduit la notion de DevOps, tout à la fois une culture et une fonction à part entière, laquelle intègre une méthodologie bien déterminée. Pour résumer, on peut dire que penser DevOps signifie que l’on tient compte des composantes suivantes :

  • Administration des systèmes, ce qui requiert de fortes compétences en développement logiciel
  • Cohésion entre les équipes de développement et d’exploitation
  • Automatisation des actions par intégration continue

Adopter le DevOps dans son entreprise est une petite révolution en soi car elle bouscule les pratiques tout autant que les mentalités. Alors, c’est bien beau mais, concrètement, quelles actions sont menées ?

Améliorer la qualité et la production grâce au rapprochement des équipes

L’un des fondamentaux d’un projet DevOps est la cohésion des équipes. Dans le monde de l’IT, il est très souvent nécessaire de rapprocher les équipes de développement et les équipes d’exploitation. Que cela puisse sembler évident ou non, les intérêts d’un tel rapprochement sont :

  • d’améliorer la qualité du travail fourni ;
  • de réduire les délais de mise en production ;
  • de rendre cohérent le développement avec les contraintes opérationnelles ;
  • et d’avoir un objectif commun : la qualité de l’expérience utilisateur.

Il est fréquent de faire appel à un prestataire externe pour s’occuper de la partie exploitation : les développeurs en place sont en limite de compétences, l’infrastructure commence à dater et à devenir lourde, les serveurs physiques vieillissent, les OS sont anciens voire obsolètes et l’équipe en place est parfois murée dans l’immobilisme de peur de dégrader le service… Or une entreprise a besoin d’évoluer pour rester compétitive. L’équipe de développeurs a besoin que l’infrastructure puisse bouger, s’adapter et être flexible. Elle a aussi besoin que les développements puissent être testés puis rapidement mis en production.

C’est dans ces cas-là qu’il est nécessaire d’opérer de réels changements, tant sur les infrastructures et les méthodologies que sur les mentalités. Il sera important d’organiser les développements, les tests et les mises en production pour que l’expérience utilisateur soit la meilleure possible. Le feedback du prestataire ainsi que les échanges entre les équipes en place sont primordiaux pour que cette transformation puisse prendre forme et aboutir aux résultats escomptés.

Automatisation des actions : « l’infrastructure as code »

L’un des principaux axes de l’intervention du DevOps dans une entreprise est d’arriver à automatiser un maximum d’actions, c’est ce que l’on appelle aussi l’infrastructure as code. En pratique, l’Infrastructure as Code se présente sous la forme d’outils d’automatisation permettant de simplifier la gestion et le maintien en condition opérationnelle de la production.

Les outils de configuration management et d’orchestration de déploiement

Au sein d’AdmanTIC, on travaille essentiellement avec des logiciels open-source, mais il arrive que des clients nous demandent de travailler avec une techno propriétaire… On s’adapte donc ! Quoi qu’il en soit, selon ce que l’on souhaite faire et les objectifs que l’on cherche à atteindre avec l’infrastructure as code, plusieurs outils sont disponibles.

  • Docker est un logiciel open-source qui permet l’utilisation de containers spécialisés en lieu et place des VM (machines virtuelles). L’utilisation de Docker permet notamment une introduction très aisée dans le Cloud.

  • Ansible est également un logiciel libre, très récent, et qui a, en quelques années, fédéré des millions d’adeptes. Ansible permet, avec un simple accès SSH, de déployer de manière automatisée de nouveaux serveurs, de les configurer et de préparer l’exécution de leurs tâches.

  • Pour les mêmes utilisations qu’Ansible, vous trouverez également Puppet qui est écrit en Ruby. Mais, à l’inverse des outils précédents, Puppet utilise ce que l’on nomme un agent, que l’on installe sur chaque serveur à administrer. Cet agent permet ensuite de communiquer entre le serveur de commande et les serveurs d’exploitation.

Productivité

De l’intérêt d’automatiser les tâches

Mais pourquoi automatiser les tâches, quel est l’intérêt ? En tout état de cause, l’infrastructure as Code présente quelques avantages non négligeables lorsque l’on vise la performance de ses structures opérationnelles.

Réduire le risque d’erreurs

Il est possible de réduire les erreurs, qui sont le plus souvent des erreurs humaines, en facilitant la révision du code produit grâce notamment aux outils de versionning, utilisés couramment dans le monde du développement pour ce que l’on appelle la gestion de versions. Les « Ops » utilisent non seulement le code, le scripting (utilisation de scripts) pour déployer de nouveaux serveurs, mais utilisent désormais les mêmes outils que les « Devs » pour réviser leur code.

Augmenter la productivité et accélérer les processus de déploiement et de mise en production

De plus, l’outil d’automatisation garantie des actions idempotentes, à savoir une action réalisée dont le résultat sera toujours le même, indépendamment de l'état d'origine. Une fois les actions de déploiement testées et approuvées, il devient possible de relancer la même action ayant le même comportement. L’infrastructure as code (ou infrastructure programmable) permet d’augmenter la productivité car le code produit peut servir aussi bien pour un seul serveur que pour plusieurs. Les déploiements sont réalisés en parallèle et permettent ainsi un gain de temps certain. Les scripts écrits peuvent servir à déployer une plateforme de production, mais également une plateforme de recette ou encore de préproduction. Les sources sont les mêmes quelle que soit la plateforme à déployer, et il est possible de réutiliser des briques logicielles d’un script à l’autre.

Mettre en place et maintenir plus facilement les PRA (Plan de reprise d’activité)

Les plans de reprise d’activité sont souvent de véritables casse-têtes pour les entreprises : soit elles n’en ont pas, soit le PRA n’est pas testé ni mis régulièrement à jour. Or le PRA doit être fonctionnel en permanence pour corriger les dysfonctionnements éventuels de la plateforme de production. L’automatisation permet de déployer rapidement et automatiquement une plateforme de secours en réutilisant les sources de la plateforme de production, garantissant une plateforme identique.

Réduire les coûts

Enfin, l’automatisation permet de réduire les coûts en rationnalisant les coûts d’hébergement. Les plateformes ou serveurs non utilisés peuvent être arrêtés automatiquement puis reprendre leur activité si besoin, comme en cas de saisonnalité de l’activité.

Autant de raisons en faveur de la mise en place d’une démarche DevOps dans votre stratégie digitale. Nous approfondirons dans les articles à venir des cas concrets expliquant les raisons pour lesquelles nos clients ont choisi d’intégrer le DevOps, et comment nous les avons accompagnés.

Suivant Précédent