[Cloud & Ops : La chronique de l’Expert] Les équipes d’infrastructures IT s’initient au DevOps

March 23, 2017
[Cloud & Ops : La chronique de l’Expert] Les équipes d’infrastructures IT s’initient au DevOps

Chronique Cloud & Ops d’Alexandre Hugla

Il est communément acquis que l’efficacité business des entreprises est corrélée à leur capacité d’innovation, elle-même fortement dépendante de la modernisation de l’informatique. Mais le bénéfice de cette digitalisation est également perceptible au cœur même des directions informatiques, dans les équipes d’exploitation qui voient leur métier évoluer. Aujourd’hui où tout est « as a service » et disponible sous forme d’API, ces équipes deviennent des développeurs d’infrastructure qui doivent appliquer certaines des meilleures pratiques DevOps.

La généralisation des API ouvre de nouvelles perspectives pour l’IT

Auparavant les environnements étaient physiques, des silos isolés et immuables, aujourd’hui ils sont logiques, souples et évolutifs. Le datacenter est désormais digital, programmable, et toutes les ressources physiques sont abstraites, agrégées, puis logiquement segmentées et exposées sous de nouvelles formes. Des API permettent d’automatiser les tâches et le datacenter programmable devient programmé. Cette nouvelle plateforme logique est idéale pour le développement et la mise en production des projets applicatifs car elle raccourcit les délais, réduit les coûts et améliore ainsi la compétitivité de l’entreprise.

Ce data center virtuel ne peut être opéré qu’avec un outillage adapté à ces nouveaux concepts. Or ces outils exposent eux aussi des API, permettant de les requêter et d’enchaîner des actions complexes. Au même titre que les ressources du datacenter, les outils aussi sont « APIsés » ! Cela peut paraître anodin mais cela ouvre de nouvelles perspectives !

Le rôle de l’IT évolue vers le développement de l’infrastructure logicielle pour fournir des services enrichis.

Les outils de management permettent de répondre à toutes les opérations habituelles :  déploiement, surveillance, alerte, capacity planning, conformité, gouvernance, gestion des logs… Ils exposent des API, émettent des évènements et peuvent donc inter-opérer, travailler de concert et piloter des actions sur l’infrastructure logique pour offrir des services innovants à forte valeur.

Jusqu’à présent l’IT avait pour rôle d’opérer le datacenter pour lequel en fin maitre d’œuvre il réalisait les différentes opérations relatives aux impératifs d’exploitation et aux demandes des équipes métiers. Aujourd’hui ce n’est plus suffisant, il doit intervenir à un niveau d’abstraction supérieur où, plutôt que de réaliser les actions unitaires, il définit des services enrichis grâce à de nouveaux outils et grâce aux API d’infrastructure et de management dont il dispose.

Par exemple, l’IT peut proposer une fonction d’auto remédiation sur une application critique d’architecture traditionnelle. Cela peut être implémenté avec de la surveillance, une alerte et des solutions correctives. Chacune des tâches élémentaires peut être réalisée par un outil existant, il reste à intégrer le tout. Par analogie, cela revient à rédiger la « recette » qui définira le traitement des ingrédients pour cuisiner le met de qualité.

L’IT devient son propre maitre d’ouvrage pour des fonctions d’infrastructure à valeur ajoutée puis, tel un développeur, il réalise par l’intermédiaire de toutes ces API de nouveaux services d’infrastructure qui feront de cet environnement le socle idéal à l’hébergement des applications métiers.

Appliquer les méthodologies DevOps aux codes d’infrastructure

L’intervention IT change de nature : d’humaine et perfectible elle passe à numérique et automatisée. Auparavant décrite sous la forme d’une gamme opératoire papier, la tâche est désormais définie au format texte électronique, ce qui la rend exportable, copiable, éditable…

Ces recettes d’infrastructure sont du code, on parle « d’infra as code », et il faut les considérer comme tel. Au même titre qu’un développeur programme depuis un IDE une application qui sera comprise par le serveur d’application, un ingénieur système fabrique « ce code d’infra » depuis une interface graphique ou un éditeur adapté, code qui sera compris et exécuté par l’infrastructure et les outils de management.

Des lors, il est cohérent de considérer l’équipe d’exploitation également comme une équipe de développement et, par analogie, d’appliquer pour la programmation de l’infrastructure certaines des meilleures pratiques couramment utilisées pour le développement des applications :

  • Gestion de codes source : Versioning et dépôt pour les sources (qu’ils se présentent sous la forme d’un script, d’un zip, d’un xml, d’un json ou autre). Favorise la collaboration avec l’utilisation branch & merge.
  • Environnements différenciés : Une bonne pratique est de séparer les plateformes de développement, de test et de production. Il est judicieux de procéder ainsi pour les composants clés d’infrastructure (Cloud Management Platform par exemple).
  • Déploiement continu : Il s’agit d’appliquer un pipeline de mise en production (dev, test, prod par exemple) à des « codes d’infra ». Ceci afin de ne jamais intervenir directement sur la production lors de la création d’un nouveau service d’infrastructure (par exemple un nouvel environnement n-tiers ou un nouveau tableau de bord). Le retour arrière s’en trouve facilité puisque cela revient à exécuter ce pipeline pour la version de « code d’infra » précédente.

Un outillage adapté disponible chez VMware afin d’opérer ce « DevOps pour l’infrastructure »

Il s’agit d’un module complémentaire à vRealize Code Stream* qui porte le nom de : « Management Pack for IT DevOps ».

Il entrepose le « code d’infra » sur un repository de code source et d’automatise le pipeline pour de nombreux éléments VMware : Blueprints de vRealize Automation, Workflows et Actions de vRealize Orchestrator, vues et tableaux de bord de vRealize Operations, Templates et Customization Specifications de vSphere….

Voici quelques cas d’usage pour lesquels l’approche « DevOps for IT » apporte de la valeur. Pour chacun d’entre eux on considère des plateformes distinctes pour le développement, le test et la production, et l’objet est de migrer en production un « code d’infra » effectué sur la plateforme de développement.

  • un schéma d’architecture d’une applications n-tiers, avec sécurité, réseau, load balancer, OS, middleware et actions customs
  • une « recette » d’auto-remédiation ou self-healing
  • une procédure d’upgrade complexe impactant de nombreux composants
  • un tableau de bord ou un rapport vRealize Operations
  • Une configuration sécurité ou réseau sur un Software Defined Network

Un IT initié soutiendra l’évolution vers le DevOps

Exposées en API, l’infrastructure et les solutions de management prennent tout leur sens lorsqu’elles sont considérées comme un ensemble programmable pour lequel les bonnes pratiques de développement s’appliquent. Ce faisant, les équipes IT s’habituent aux méthodes de travail et aux pratiques DevOps, aujourd’hui essentiellement utilisées par les équipes métiers. Outre l’amélioration de la qualité, de la réactivité et l’enrichissement des services, cette mise à niveau des connaissances et des pratiques favorisera demain la généralisation du DevOps dans l’entreprise.

Référence

*vRealize Code Stream a précédemment fait l’objet des deux articles suivants :

Retrouvez les 3 dernières chroniques d’Alexandre Hugla:


 
Related Posts
 

Il devient de plus en plus nécessaire de faire évoluer …

Read More

Interview du directeur produit de vRealize Code Stream

Il …

Read More

L’application informatique s’est démocratisée ces dernières années. Elle …

Read More

 
 
Blog Archive