Sylvain BRUAS

Accueil

DevOps : concepts et base

5 min read

Partager sur :

  • DevOps

    Qu’est-ce que le DevOps ?

    Vous l’aurez peut-être deviné, DevOps provient de la contraction des mots développement et opérations. Il s’agit d’une approche culturelle et technique reposant sur des principes agiles et visant à renforcer la collaboration entre les équipes métiers, développement, opérations et assurances qualité dans le but de délivrer des logiciels de manière continue. Cette organisation permet à une entreprise de profiter plus rapidement de certaines opportunités de marché et d’avoir un retour client accéléré.

    Dans une approche DevOps, les équipes de développement et d’opérations collaborent pleinement et peuvent même fusionner. Ces équipes travaillent ainsi sur tout le cycle de vie des applications comme l’illustre le schéma au dessus.

    Il est important de garder à l’esprit qu’une approche DevOps n’est pas uniquement technique : elle est aussi culturelle et relationnelle. Elle repose sur la communication entre tous les services d’une entreprise au-delà des équipes purement techniques (développement et opérations). L’approche DevOps doit ainsi englober les parties prenantes d’un projet tels que : le marketing, la direction et même les clients…

    Les bénéfices d’une approche DevOps

    La mise en application de l’approche DevOps au sein des équipes et des environnements garantit de nombreux avantages comme la facilité de la maintenance, l’automatisation des tâches ou l’amélioration de la communication inter-équipes.

    • Publications plus rapides et plus légères. La publication fréquente de nouvelles versions d’un logiciel va permettre de mettre à disposition les nouvelles fonctionnalités plus rapidement aux client (gain de compétitivité à la clé). Avec des déploiements plus fréquents, ces derniers sont moins importants et posent potentiellement moins de problèmes. La remontée de bugs est également accélérée.

    • L’automatisation, gage de fiabilité. Une approche DevOps permet un gain non négligeable en termes de sécurité et de fiabilité. Grâce aux processus automatisés, on ne risque plus d’erreurs humaines liées aux tâches manuelles. De nombreux tests et vérifications automatiques sont effectués avant d’arriver à une phase de déploiement qui devient un non-événement.

    • Automatisation & productivité. Du fait de cette forte automatisation, on bénéficie aussi d’un gain en termes de productivité. On peut profiter de plus de temps pour travailler sur de nouvelles fonctionnalités au lieu d’effectuer des tâches manuelles et lentes de tests, gestion d’infrastructures ou encore de déploiement.

    • Facilitation de la communication interne. Le DevOps vise aussi à améliorer la collaboration entre les équipes, qu’elles soient techniques ou non. L’objectif de la philosophie DevOps est d’aligner tout le monde sur le même objectif pour éviter les conflits. Par exemple, de nombreux outils de supervisions retranscrivent sous forme de tableau (dashboard) les données et facilitent la compréhension et le suivi par tous.

    DevOps Benefits

    Quelques pratiques de l’approche DevOps

    L’automatisation étant au cœur de la philosophie DevOps et de nombreuses pratiques y participent mais ces changements techniques impliquent aussi une organisation différente. Voici quelques grandes pratiques DevOps.

    • Intégration continue. Méthode de développement logiciel permettant d’intégrer régulièrement chaque changement du code au niveau d’un dépôt de code source (GitLab, Bitbucket). A la suite de cette intégration, des opérations automatisées de build et de tests sont lancés avec le nouveau code source.

    • Livraison et déploiement continue. Il s’agit de l’extension même de l’intégration continue. En effet, si le processus d’intégration continue permet de tester l’application à chaque changement de manière optimale, on peut se permettre par la suite de préparer un livrable ou bien de carrément déployer l’application quand tous les tests sont au vert et ce de manière automatisée.

    • Infrastructure as Code. Le concept d’Infrastructure as Code se réfère au fait de décrire son infrastructure sous forme d’un fichier texte (JSON/YAML). L’infrastructure peut alors être gérée comme du code source normal en étant versionnée ou encore passée dans un processus d’intégration ou de déploiement continu. Grâce aux API proposés par les différents Cloud providers, l’IaC est désormais accessible grâce à des outils comme Terraform ou AWS Cloudformation (pour ne citer qu’eux) qui prennent en entrée ce fichier respectant une certaine norme puis déploient et configurent l’infrastructure décrite de manière automatisée. Cela permet une forte standardisation, une limitation des risques d’erreurs de configuration mais aussi une reproductibilité grandement simplifiée.

    • Monitoring et feedback. Dans une démarche DevOps le monitoring aussi bien au niveau de l’application que de l’infrastructure est important pour détecter les problèmes de performances, de sécurité ou encore d’expérience utilisateur. Cela constitue la boucle de feedback de la démarche DevOps qui permet de mettre en lumière les problèmes posés par les mises à jour et les potentielles améliorations à apporter.

    • Communication et collaboration renforcées. Au-delà de la partie technique, comme nous l’avons évoqué en début d’article, une démarche DevOps passe aussi par l’amélioration de la collaboration au sein et entre les équipes techniques (développement, opérationnel) et non techniques (marketing, direction …).

    Le DevOps casse les frontières et implique un partage de l’information entre toutes les parties prenantes à un projet dans le but de garder un objectif commun.

    DevOps Apps

    En conclusion

    L’approche DevOps apporte de nombreux avantages en termes de productivité, de fiabilité et de maintenance. En facilitant la communication entre les pôles d’une équipe, l’approche DevOps est aussi un facteur de cohésion : grâce à des métriques fiables et communes, un environnement peut être analysé et optimisé par l’ensemble de l’équipe. L’automatisation des processus est important aussi bien en termes d’efficacité que de fiabilité. L’approche DevOps reposant sur les concepts d’agilité, les retours utilisateurs peuvent être intégrés rapidement au sein des solutions déployées.

    L’approche DevOps serait donc le saint Graal du monde de l’IT ? Sans doute mais la mise en place des principes DevOps est toujours une gageure quelle que soit la structure. La bonne application des pratiques nécessite des équipes volontaires aussi bien dans la technique (CI/CD et utilisations d’outils IaC) que dans le relationnel (partage de l’information renforcée, amélioration de la communication). Comme souvent, une bonne synchronisation des équipes et l’application de bonnes pratiques sont la base d’un travail efficace.

Sylvain BRUAS

Sylvain BRUAS

Je suis architecte solution AWS depuis plus de 8 ans. J'interviens dans les grands groupes pour les aider dans leur transformation vers le cloud AWS.

Mes compétences principales sont les fondations AWS, le Dev(SecFin*)Ops et les containers.

AWS Community Builder et AWS Authorized Instructor depuis 2024