Fleche retour aux articles de blogAméliorer le rendement et les performances d'entreprise avec le DevOps

Mots clés :

productivité

DevOps

développement

Combinant développement (Dev) et opérations (Ops), DevOps est l'union des personnes, des processus et des technologies destinés à fournir continuellement de la valeur aux clients.

Le DevOps permet la coordination et la collaboration des rôles autrefois cloisonnés (développement, opérations informatiques, ingénierie qualité et sécurité) pour créer des produits plus performants et plus fiables. En adoptant une culture DevOps ainsi que des pratiques et outils DevOps, les équipes peuvent mieux répondre aux besoins des clients, accroître la confiance suscitée par les applications qu'elles développent, et atteindre plus rapidement les objectifs de leur entreprise.

Etudions à travers cet article en quoi le DevOps est un boost qualitatif pour les performances de toute équipe travaillant sur un projet informatique, et quels sont les étapes de la mise en place saine de ce type de processus.

Pour commencer, d'ou viens cet intêret pour le DevOps ?

Les équipes informatiques les plus performantes déploient plus souvent et récupèrent plus vite. Pour cela, elles ont adopté DevOps et augmenté leur capacité d’automatisation.

L’intégration de DevOps dans la culture informatique de l’entreprise semble aujourd’hui une évidence pour améliorer la performance globale de cette dernière. C’est en tout cas une des conclusions du riche « Rapport 2017 de l’état des Devops » réalisé par Puppet, qui parallèlement met en évidence le rôle et l’impact du leadership.

Le processus est partout, condamnant l’informatique de l’entreprise à évoluer et à produire à la demande. Le rapport démontre que les équipes informatiques les plus performantes déploient plus souvent et récupèrent plus vite que jamais auparavant. Cet accroissement de la performance, c'est à l'automatisation que les entreprises informatique le doivent.

L’automatisation et la vision temps réel

L’automatisation est une des clés de ce changement. Les entreprises les plus performantes ont automatisé jusqu'à 72 % de tous leurs processus de gestion de configurations. Une approche qui creuse l'écart entre les équipes les plus performantes des moins performantes. Les entreprises les moins performantes consacrent 46% de leur temps aux processus de configuration manuelle, contre 28% pour les plus performantes.

L’automatisation passe par l’usage d’outils qui assurent une fourniture accélérée, une qualité supérieure et une récupération rapide. En éliminant pratiquement toutes les erreurs de configuration, les délais de déploiement logiciel passent de plusieurs mois à quelques jours. Et les outils offrent également une visibilité en temps réel sur l'ensemble du flux de fournitures en continu, avec une analytique pilotée par les métriques, pour orchestrer les pipelines logiciels et les versions.

L’évolution des cultures informatiques

La transition culturelle dans l’organisation est essentielle, mais difficile. Elle nécessite des connaissances, des outils, un accompagnement, et du leadership. Mais l’adoption d’une culture de responsabilité partagée et de confiance permet aux équipes DevOps d’obtenir des résultats parfois exceptionnels.

On notera qu’en adressant la sécurité à toutes les étapes du développement logiciel et du cycle de delivery, les équipes les plus performantes passent deux fois moins de temps à corriger les problèmes de sécurité. Elles peuvent également consacrer 29% plus de temps aux nouveaux projets, sans sacrifier la qualité et la sécurité.

Le rapport a également mis en évidence le rôle du leadership sur la performance des équipes. Les résultats affichent en effet des pourcentages de performance supérieurs lorsque les leaders allient l’action à la vision, la communication inspirante, les encouragements et la reconnaissance, pour une stimulation intellectuelle des plus positive.

Concrétement , comment procéder à une transition vers le DevOps ?

Commencer par l'automatisation

Les processus manuels sont lents, plein d'erreurs, et représentent des goulets d'étranglement. Une culture de la haute performance du développement repose d’abord sur l'automatisation de ces processus. L’automatisation fournit une précision à travers le pipeline, renforce la confiance dans la qualité de l'application, et encourage un déploiement plus rapide. Elle prépare et facilite également le passage vers les nouveaux outils de développement et de l’indispensable gestion du cycle de vie des produits.

Optimiser la vitesse de développement logiciel

Ce qui sur le marché aujourd’hui fait la différence entre les gagnants et les perdants, ce n’est pas la rapidité de développement des applications qui accompagnent les produits et les services, c’est le temps nécessaire pour avoir une idée, la transformer en une application, et atteindre les clients. Le temps de développement n’est donc qu’une composante de ce cycle. Cependant, les processus de développement les plus complexes peuvent bénéficier d'itérations rapides, qui vont permettre de réduire les temps de développement et de déploiement. Et de garder des équipes agiles et prêtes à s’adapter aux exigences toujours changeantes des clients d'aujourd'hui.

Passer à DevOps

Si le ‘time-to-market’ est une priorité pour le développement de vos services, la méthode classique en cascade risque fort de vous ralentir. En particulier, attendre jusqu'à ce que le code soit complet pour le tester vous coûtera cher, et le retard imposé par la découverte des bugs rend leur réparation plus coûteuse. En outre, si les développeurs se concentrent uniquement sur la construction de fonctionnalités de pointe, et ignorent la qualité et la fiabilité, vous devez vous préparer à rencontrer des problèmes graves après le lancement. C’est pourquoi vous avez besoin d'une approche de développement moderne comme DevOps, qui permet de profiter des avantages de l’automatisation des builds, des tests, et du déploiement.

Faire des rejets plus rapide et plus léger

Dans le passé, les applications étaient publiées et mises à jour chaque trimestre. Aujourd'hui, les entreprises web comme Google ou Facebook libèrent leurs applications des centaines de fois par jour, et au moins deux fois par semaine sur mobile. La libération fréquentes de petites et légères mises à jour est le chemin à parcourir pour les applications. Dans les méthodologies agiles traditionnelles, les équipes de développement travaillaient dans des sprints bi-hebdomadaires. Avec DevOps, les sprints ont été réduits à des cycles continus de collaboration, intégration et prestation continues devenant la norme. A la condition cependant de disposer d’outils adaptés, qui supportent les environnements de développement et de monitoring jusqu’à l’open source, afin d’être capables de suivre le cycle de vie des applications, les plateformes d’ALM (Application Lifecycle Management).

Monitorer

L’adoption d’une solution de surveillance permet d’obtenir une meilleure visibilité à travers le pipeline. Toutefois, la clé est de ne pas se laisser emporter par des outils, mais d'établir un processus de surveillance qui sépare le signal du bruit. Pour changer la culture dans votre organisation, vous avez besoin de quantifier et de suivre la performance. Et vous assurer que la bonne personne est alertée au bon moment est critique pour la gestion des incidents. C’est le but du monitoring DevOps.

Systèmes intégrés pour une meilleure collaboration

La collaboration dans l'équipe est essentielle lors de la construction d'une culture de la technologie de haute performance. Pour permettre une plus grande collaboration, vous devez intégrer les principaux outils que chaque équipe utilise. DevOps nécessite une meilleure collaboration entre les développeurs, les équipes d'assurance qualité, et les équipes informatiques. Par l'intégration des systèmes, dans une plateforme d’ALM en particulier, vous obtenez une amélioration des services, des capacités de monitoring facilitées, pas de commutation entre les applications, et moins de pannes et plus courtes.

Apprendre des échecs

L’échec devrait trouver sa place lorsque l’on encourage la culture. Comme les builds et les rejets deviennent plus fréquents, les risques d'échecs sont plus élevés. Cependant, parce que vous poussez les mises à jour incrémentielles pour les utilisateurs, vous pouvez annuler les mises à jour qui causent des échecs. En outre, un système de monitoring vous permet de mieux résoudre et plus rapidement les problèmes, tout en apprenant davantage des échecs. Et l‘ALM assure le suivi de l’ensemble des composantes dans leur cycle de vie, dans le projet, avant et après.

Pour conclure :

Au final, on pourrait presque intégré le DevOps dans la méthodologie Agile, à la différence que c'est un processus et un ensemble de bonne pratiques beaucoup plus axées sur la technicité et l'aspect numérique d'un projet. Par exemple, le feedback qu'apporte le DevOps permet d'implémenter des améliorations à son produit plus rapidement. Suite à l'implémentation d'une fonctionnalité, le retour utilisateur peut se faire rapidement, les éventuels cas d'usages non prévus pourront être intégrés lors du prochain cycle.

On peut donc définitivement dire que le DevOps est une étape non pas accessoire mais nécéssaire dans l'évolution d'un projet, et dans la routine d'une équipe de dévelopemment qui veut optimiser et accélerer son processus d'amélioration et ses méthodes de travail.