DevOps

Qu’est-ce que le DevOps ?

Devops n’est pas une norme. Ce n’est pas non plus une méthodologie ou un processus. il ne s’agit clairement pas d’une suite d’outils. DevOps, c’est à la fois un courant de pensée, un agglomérat d’opinions, de convictions et d’expériences acquises. C’est aussi et surtout, un moment de notre histoire où ont convergé des assemblages de pratiques variées – nouvelles et anciennes – servant la cause d’une même idée : réinventer notre manière de concevoir et opérer un produit logiciel de qualité.

Dans son sens le plus restreint, DevOps décrit le poste qu’occupe un employé doté des compétences nécessaires pour travailler à la fois en tant que développeur et ingénieur système.

Dans certains secteurs industriels, le terme sert également à décrire un modérateur entre deux groupes, qui opérerait comme un orchestrateur Scrum afin d’aider les équipes de développement et d’exploitation à se focaliser prioritairement sur la gestion du cycle de vie des applications, l’ALM (Application Lifecycle Management).

Le Cloud Computing et les réseaux logiciels (SDN, Software-Defined Network) sont deux courants qui ont accéléré la destruction des silos que séparaient jusqu’alors le développement et l’exploitation.

Traditionnellement, dans l’entreprise, l’équipe de développement des applications est chargée de collecter les exigences métier dont doit tenir compte un logiciel, puis d’en rédiger le code. L’équipe de développement teste son programme dans un environnement isolé à des fins d’assurance qualité. Ensuite, si les exigences sont satisfaites, elle met le code à la disposition des équipes opérationnelles pour exploitation.

Ce paradigme pose un problème : lorsque les deux équipes travaillent séparément, le développement peut ne pas être au courant des obstacles opérationnels qui empêchent le programme de fonctionner comme attendu.

L’approche DevOps cherche à fusionner développement et déploiement au sein d’un exercice plus rationalisé.

Le kit d’outils DevOps comprend des outils de gestion des configurations, tels que Puppet et Chef ; un référentiel, comme GitHub, pour le stockage des versions du code ; des outils d’indexation comme Splunk ; des outils pour surveiller la manière dont les modifications apportées au code affectent l’environnement, comme Nagios ; sans oublier des langages de script, comme Perl, PHP et JavaScript.

 

Source : Lemagit