Lost Password?

A password will be emailed to you. You will be able to change your password and other profile details once you have logged in.

DevOps : Les quatre secrets pour surmonter les blocages liés au déploiement

\"SerenaAvis d\'expert par Frédéric Richer, Serena Software

Même si le terme DevOps est relativement récent, dans les faits, de nombreuses entreprises pratiquent le DevOps depuis plusieurs années.

Deux axes prioritaires contribuent à surmonter les blocages du déploiement :
1) Un processus rationalisé et bien compris
2) L\'automatisation des builds, du déploiement et des tests

Bien que les personnes et leurs interactions soient essentielles, les processus et les outils jouent un rôle déterminant. Pour être efficace, l\'utilisation intensive de l\'automatisation doit reposer sur un bon processus. L\'automatisation d\'un mauvais processus n\'apporte rien ; cela reste un mauvais processus qui est exécuté de façon reproductible. En aucun cas, l\'automatisation ne transforme un mauvais processus en bon processus.

DevOps n\'implique pas de transférer les responsabilités à la Production. Il s’agit au contraire de permettre une collaboration étroite entre Développement et Production en vue de livrer un logiciel plus rapidement et de façon plus productive.

Examinons les quatre techniques à maîtriser impérativement pour livrer les changements aux clients, sans pour autant sacrifier la responsabilité de chacune des équipes et la traçabilité.

Technique 1 : Comprendre le processus
La clé du succès d\'une implémentation DevOps est d\'avoir une voie unique vers la Production. La capacité à contourner un processus rend impossible toute traçabilité. Vous devez donc vous assurer que le processus modélisé couvre plusieurs cas d\'utilisation, notamment les correctifs et le retour à la version précédente.

Les approbations entre chaque phase du processus sont aussi importantes. Elles peuvent être automatisées ou traitées manuellement. La capacité à modéliser à la fois les approbations automatisées et manuelles a un impact sur le choix de la technologie utilisée pour l\'automatisation du processus. Même si l\'objectif est une livraison continue et intégralement automatisée, sans aucune interaction humaine, il est préférable de disposer d\'une technologie capable de gérer à la fois les approbations manuelles et automatisées, au cas où il faudrait insérer des approbations manuelles (par exemple, pour répondre à de nouvelles exigences réglementaires).

Technique 2 : Automatiser le processus
Chaque équipe de Développement, Test ou Production a déjà été confrontée à la situation suivante : un membre de l\'équipe assure à ses collègues que \"ça marche sur sa machine\" mais il s\'entend aussitôt rétorquer que \"peu importe que ça marche sur sa machine, son travail ne sera accepté que lorsqu\'il fonctionnera sur tous les environnements\". Que peut-on faire pour éviter cette situation ?

Une collaboration étroite entre les équipes de Développement et de Production semble être la solution. Faire travailler ensemble les deux équipes tout au long du processus de développement d\'application permet de garantir l’absence de surprise concernant le choix du matériel, de l\'architecture, et d\'éviter les petits problèmes qui surgissent entre les différents transferts de releases. D\'autre part, une telle collaboration doit permettre à l’équipe de Production de fournir des environnements qui reflètent ceux de production. Dans cette situation, la virtualisation est un élément clé. Les instances sont créées à la demande afin d\'éviter les goulots d\'étranglement liés au matériel. En dotant les développeurs d\'environnements qui ressemblent à ceux de production, il est possible de tester les changements par rapport aux environnements valides configurés très tôt dans le processus de développement.

Technique 3 : Déploiements robustes et reproductibles
L\'automatisation du déploiement peut prendre différentes formes. Quand avez-vous parlé pour la dernière fois à quelqu\'un qui n’a pas un tant soit peu développé des scripts pour automatiser ses processus ? Les environnements et les architectures sont devenus de plus en plus complexes. Créer et maintenir des scripts l’est tout autant. D\'une façon générale, les scripts fonctionnent sur certains environnements, mais pas sur tous. D\'autre part, les auteurs des scripts sont souvent débordés et ne peuvent pas se charger de la maintenance. La capacité à écrire des scripts permettant de déployer des produits et de gérer des intégrations dans des systèmes multiples est une compétence que l’on ne trouve pas dans toutes les organisations.

Heureusement, certains outils comme Puppet et Chef permettent d\'effectuer des opérations de bas niveau sans trop de difficulté. Toutefois, il est nécessaire que l\'automatisation du déploiement puisse s\'intégrer à tous les aspects du cycle de développement logiciel, de la gestion des exigences produit initiales à la surveillance du logiciel dès qu\'il est en production. Les intégrations personnalisées peuvent être complexes, fragiles et chronophages, tout particulièrement si les systèmes à intégrer sont caractérisés par un taux d\'innovation élevé. Elles sont aussi déterminantes pour maintenir la traçabilité de bout en bout.

Il est aussi important de résister à la tentation de créer des scripts spécifiques à un environnement. Gardez à l\'esprit que l\'un des objectifs est d\'avoir un processus robuste et reproductible. S\'il existe des scripts différents pour chaque environnement, il est possible que certains d\'entre eux soient exécutés pour la première fois au moment du déploiement de l\'application en production. En utilisant l\'automatisation du déploiement basée sur le modèle, il est possible de créer des scripts d\'automatisation du déploiement adaptés à chaque environnement : les mêmes scripts sont exécutés avec les données appropriées au moment du déploiement. Cela signifie qu\'au moment du déploiement de l\'application en production, les scripts associés ont déjà été exécutés plusieurs fois.

Technique 4 : Rassembler les pièces du puzzle
Il est peu probable que les organisations abandonnent les technologies déjà en place. Alors que l\'automatisation du déploiement peut gérer des intégrations lorsque les applications sont en cours de déploiement, il existe néanmoins de nombreux points de contact lorsqu\'il s\'agit d\'automatiser un processus de bout en bout. Ces points de contact incluent la gestion des exigences, le suivi des problèmes, l\'intégration continue, l\'automatisation des tests et la surveillance des applications. La couche relative à la gestion des processus devrait être capable d\'échanger des informations en les récupérant à partir d\'un autre système ou en acceptant d’autres. La mise en place d\'un framework de gestion des processus de haut niveau garantit la traçabilité. Cette mesure est un élément clé pour toute organisation désireuse de réussir un éventuel audit auquel elle serait soumise.

Conclusion
Ces quatre techniques peuvent aider quiconque souhaite maîtriser le DevOps. Elles contribuent également à surmonter avec succès les blocages liés au déploiement. Les solutions utilisées sont invisibles, permettent l\'élimination complète des problèmes et la suppression des obstacles.


Partager cet article




Sur le même sujet...

Aucun Commentaire