DevOps, ce désormais incontournable qui permet d’automatiser toujours davantage pour déployer plus rapidement de nouvelles applications ou de nouvelles fonctionnalités.
Selon différentes études dont Upguard (à lire ici https://www.upguard.com/blog/devops-success-stats), voici en quelques chiffres pourquoi adopter cette démarche pour accélérer le time-to-market de vos produits logiciels mais aussi leur qualité tout en facilitant le travail de vos équipes de développement :
- Les Ops « traditionnels » seraient 40% davantage chronophages et 21% de leur temps serait consacré à gérer les incidents
- Les DevOps consacreraient 1/3 de leur temps à optimiser l’infrastructure et économiseraient 60% de leur temps à gérer des problèmes d’assistance
- Les organisations qui ont généralisé les pratiques DevOps constatent à plus de 60% qu’elles ont amélioré la qualité des déploiements mais aussi la fréquence à la laquelle elles mettent sur le marché de nouveaux produits logiciels. Près de 40% considèrent aussi que la production du code est de meilleure qualité.
- Selon une enquête menée par Puppet Labs, les entreprises qui ont adopté le DevOps déploient des mises à jour 30 fois plus rapidement que celles qui n’ont pas adopté cette approche.
- Une étude Forrester a mis en avant que les organisations ayant adopté DevOps ont connu une réduction de 63 % des défaillances de production et une réduction de 50 % du temps de résolution des problèmes.
Une batterie d’outils sont disponibles pour améliorer ce processus que ce soit au niveau du code (révision, gestion du code source, fusion), de l’intégration continue, des tests en continu, du packaging des référentiels, de la gestion des releases, de la configuration de l’infrastructure et du monitoring.
Voici notre sélection.
1/ Jenkins (open source) pour l’intégration et la livraison continue (CI/CD) pour l’automatisation et l’exécution de nombreuses tâches avec des centaines de plugins disponibles
2/ Git permet de suivre le développement en cours de l’application tout en conservant plusieurs versions du code source (historique). C’est l’outil incontournable en termes de systèmes de contrôle mais aussi de collaboration.
3/ Kubernetes (open source) pour augmenter les ressources nécessaires ou gérer davantage de conteneurs, il permet en effet aux développeurs de gérer la scalabilité et la gestion en déployant sur un cluster de serveurs, de manière sécurisée.
4/ Ansible (open-source) pour le provisionnement, la gestion et l’automatisation des configurations et le déploiement des applications sur des serveurs distants.
5/ Puppet (open-source) pour automatiser la configuration et la gestion des serveurs (comme Ansible) ainsi que des machines virtuelles.
6/ Terraform (open-source) pour définir les ressources nécessaires on-prem ou dans le cloud.
7/ Docker (open source) pour créer, déployer et gérer des applications conteneurisées indépendamment du système d’exploitation. Il offre aussi des capacités de virtualisation et d’isolations indispensables dans le cadre d’une architecture micro-services.
8/ Grafana (open-source) pour la visualisation des données et le monitoring. Il permet de collecter, analyser et afficher des données issues de multiples sources dont les logs.
9/ Slack pour partager des fichiers, des extraits de code et les intégrer dans vos applications. C’est l’allié de vos équipes pour gagner en productivité. La fonctionnalité Huddle leur permet même de communiquer par la voix !
10/ Jira (outil de ticketing de la suite Atlassian) pour planifier, contrôler et livrer vos produits logiciels sur la base de user stories selon les méthodes agiles. Il a également des fonctionnalités de reporting très appréciables.