Nataliya Yakovleva - Fotolia
Les 5 catégories essentielles d’outils dans une approche DevOps
L’approche DevOps n’est pas seulement une méthodologie. Elle repose sur des outils qui doivent aider les développeurs et les administrateurs à gérer leurs tâches quotidiennes. Voici cinq catégories de logiciels à prendre en compte pour faciliter son adoption.
Pour une entreprise qui souhaite moderniser sa plateforme de développement et de livraison de logiciels, il est crucial d’adopter les bons outils. Ceux-ci engendreront des gains de productivité tout en répondant aux exigences de l’approche DevOps. Voici cinq types d’outils qu’une organisation peut intégrer dans sa pile technologique dédiée au développement.
1. Un système de gestion de versions décentralisé
Les équipes doivent être à même de partager rapidement leurs travaux à l’aide d’outils simples à utiliser. C’est là qu’un logiciel de gestion de versions décentralisé (Distributed Version Control System, DVCS) comme Git intervient. Bien qu’il soit lourd pour d’autres systèmes de contrôle de versions, Git simplifie la création de branches de développement ou l’affection de flux de travail à un ou des membres d’une équipe.
De plus, avec les services hébergés dans le cloud tels que GitHub ou GitLab, les correctifs sont facilement accessibles aux administrateurs qui souhaitent une distribution rapide des mises à jour logicielles. La première étape de toute transition vers une approche DevOps consiste à mettre en place les bons outils. En ce sens, les entreprises doivent d’abord choisir un DVCS digne de ce nom.
Les cinq DVCS les plus populaires sont les suivants :
- Git
- Atlassian Bitbucket
- GitHub
- Aws CodeCommit
- GitLab
2. Les outils d’intégration et de livraison continue
Ce n’est pas parce qu’il est possible d’enregistrer du code dans Git sans conflit de fusion (merge) que celui-ci est conforme aux attentes. Avec la multiplication des contributeurs à un projet, et pour assurer une collaboration cohérente, les membres de l’équipe (internes ou externes) ont besoin d’un mécanisme d’intégration et de compilation du code. C’est là qu’un serveur d’intégration continue (CI) entre en jeu. Chaque équipe DevOps en a besoin.
Les développeurs ont l’embarras du choix pour compléter leur chaîne d’outils. Jenkins est sans doute le plus célèbre au vu de sa popularité auprès de la communauté Java, mais il y a beaucoup d’autres services sur le marché dont :
- JetBrains TeamCity
- Cloudbees Core
- Atlassian Bamboo
- Shippable
- Concourse CI
3. Les outils d’orchestration et de containérisation
L’ère du développement d’applications monolithiques et des déploiements de fichiers EAR et WAR sur des serveurs d’applications gourmands en ressources touche à sa fin. Chaque application dispose de son propre environnement léger qui intègre les outils et les technologies nécessaires.
Ces environnements autonomes sont appelés containers. En principe, ceux-ci permettent de réduire la consommation en ressources des applications. Seulement leur multiplication en production entraîne une nécessaire orchestration. D’où la prépondérance de Kubernetes.
En combinant un container logiciel, pour fournir les ressources d’une application, avec Kubernetes, pour gérer tous les conteneurs en production, une entreprise peut profiter des avantages du déploiement continu et de l’amélioration de la productivité.
Les outils d’orchestration et de containérisation les plus populaires sont :
- Docker Swarm
- LXC Linux Container
- Apache Mesos
- Containerd
- Kubernetes
4. Gestion de configuration
Chaque application étant approvisionnée dans son propre environnement par un container Docker, et avec potentiellement des centaines de microservices en production, une entreprise doit maintenant gérer cette pléthore de ressources. Elle doit suivre la manière dont elle approvisionne chaque container, sans parler de la nécessité de corriger, mettre à jour et reconfigurer divers composants.
Pour cela, les équipes DevOps doivent considérer les outils de gestion de configuration comme Puppet et Ansible. Ils aident à automatiser la création d’environnements opérationnels plus prévisibles, gérables et contrôlables qu’auparavant.
Voici cinq outils de gestion de configuration à évaluer :
- Ansible
- Puppet
- SaltStack
- Fabric
- CA Unified Infrastructure Management
5. Le format JSON et les bases de données NoSQL, des outils DevOps comme les autres
L’importance du format JSON est souvent négligée dans la pile technologique DevOps. Pourtant, dans de nombreux cas, c’est la colle qui lie le développement et les opérations. JSON est une structure de données qui peut être facilement lue, écrite, modifiée et consommée par les développeurs et les administrateurs. Cela crée un langage commun entre les deux populations.
De plus, l’utilisation de la base de données NoSQL – où les structures de données peuvent être modifiées – libère les développeurs des tracasseries administratives liées aux modifications fastidieuses des schémas et des commandes de table, ce qui permet aux deux groupes de se concentrer sur des tâches plus pertinentes.
Il se trouve que ces SGBD supportent nativement le format JSON. Voici cinq bases de données NoSQL pouvant faciliter les développements :
- Apache Cassandra
- MongoDB
- Redis
- Couchbase
- ArangoDB
Le but de l’approche DevOps est de donner aux développeurs et aux administrateurs des outils pour les rendre plus productifs. Cela doit accélérer les performances des applications et faciliter le déploiement continu de microservices. Lorsqu’elle est bien réalisée, la transition DevOps se traduit par un changement de culture permanent et positif. Et la clé d’une telle transition réside dans l’adoption des catégories d’outils évoqués ci-dessus.