DevOps
On comprend par DevOps
- Un ensemble de méthodes et d'outils techniques et
- Une culture de collaboration particulière entre les équipes de développement logiciel et l'IT.
DevOps vise à rendre la collaboration entre le développement logiciel et l'exploitation IT plus efficace et à les coordonner grâce à des processus et des outils logiciels communs. Une équipe DevOps se compose de développeurs et de collaborateurs IT qui travaillent ensemble tout au long du cycle de vie du produit.
Origines de DevOps
Le terme DevOps est apparu en 2009 et se compose des parties Dev (= domaine Software Development / développement logiciel) et Ops (= domaine IT Operations / administration système).
Le mouvement qui a conduit au développement de DevOps a cependant commencé plus tôt : dès 2007, les communautés IT Operations et développement logiciel échangeaient entre elles. Les membres considéraient la séparation des équipes chargées d'écrire le code et de celles chargées de le déployer et de le maintenir comme problématique. Cet échange marque le début de l'intégration des deux domaines d'expertise.
Objectifs de DevOps
DevOps est utilisé pour atteindre les objectifs suivants :
- Améliorer la qualité logicielle
- Accélérer le développement et la livraison du logiciel
- Améliorer la collaboration entre les équipes impliquées dans le développement et le déploiement
- Assurer une haute stabilité opérationnelle et éviter les défauts techniques liés aux changements et aux nouveautés
Comment ces objectifs sont-ils atteints ?
Ces objectifs sont atteints en automatisant et en intégrant les processus entre les équipes Development et Operations dans l'entreprise. Les aspects les plus importants sont :
- Automatisation de la technologie
- Communication et collaboration transversales
- Responsabilisation des équipes
Le cycle de vie DevOps
Le processus DevOps continu peut être imaginé comme une boucle infinie, qui se compose généralement des 6 phases suivantes :
- Planifier
- Créer / Build
- Continuous Integration et Continuous Delivery
- Surveiller et alerter / Monitor
- Operate
- Feedback continu
Ces 6 phases représentent différentes compétences, processus et outils des domaines Development et Operations. L'important est que les deux équipes travaillent et communiquent ensemble comme une seule équipe dans chacune des phases.
Quelles méthodes et outils font partie de DevOps ?
Méthodes
DevOps comprend différentes techniques indépendantes les unes des autres :
- Développement logiciel agile
- Continuous Integration (aussi : CI ou Intégration Continue) et Continuous Delivery (aussi : CD)
- Monitoring continu des services
- Microservices
- Tests logiciels automatisés
- Software Configuration Management, gestion des versions et "Infrastructure as Code"
- Key Performance Indicators (KPIs) transversaux
Outils
Les méthodes mentionnées sont rendues possibles ou soutenues par exemple par les outils DevOps suivants :
- GitHub et GitLab (pour Continuous Integration et Continuous Delivery, tests logiciels automatisés et gestion des versions)
- Jenkins (Continuous Integration)
- Puppet (pour Infrastructure as Code)
- Ansible (pour Configuration Management)
- Vagrant (comme plateforme de virtualisation)
- Azure DevOps (par ex. pour Continuous Integration, Testing, Release Management et Systems Management)
- Microsoft Azure (pour le Monitoring et l'Hosting)
- Team Foundation Server
- Docker (pour la virtualisation par conteneurs)
- Kubernetes (orchestration de conteneurs)
Quelle culture de collaboration vise DevOps ?
DevOps doit améliorer la coopération entre Development et Operations en tant qu'équipe transversale et abolir leur séparation. Une collaboration étroite naît des aspects suivants :
- Les équipes IT Operations et Software Development travaillent étroitement ensemble et sont souvent fusionnées en une seule équipe pour toute la durée du cycle de vie du produit.
- L'ensemble de l'équipe se concentre sur les besoins et la valeur pour le client tout au long du cycle de vie du logiciel.
- Au sein de l'équipe, les processus et plans sont rendus systématiquement visibles les uns aux autres.
- Les priorités, responsabilités et changements sont coordonnés ensemble.
- La gestion des risques est simplifiée grâce à des cycles de release et des planifications plus courts.
- Tous les membres de l'équipe entretiennent une communication régulière et ouverte.
Défis lors de l'introduction de DevOps
Comme toujours lors de l'introduction de nouveautés, il y a des membres de l'équipe qui ont du mal avec la mise en œuvre ou qui développent des résistances concrètes. Il est donc important que tous les membres de l'équipe comprennent vraiment les principes, valeurs et avantages de DevOps et que l'entreprise prenne suffisamment de temps pour informer et introduire.
Points importants à noter :
- Plus tôt la compréhension de l'unification des équipes Development et Operations grandit et plus les silos sont dissous, plus l'intégration de DevOps fonctionne facilement.
- Il ne suffit pas simplement d'utiliser les outils mentionnés pour profiter des avantages de DevOps. Ce qui est décisif ici, c'est la combinaison de culture, méthodes, processus et outils.
Conclusion sur DevOps
DevOps a une influence globalement positive sur la plupart des entreprises. Car cette approche assure une efficacité et une sécurité d'équipe accrues, des releases logiciels plus rapides et une qualité produit supérieure pour des clients plus satisfaits.
Les avantages des principes DevOps sont si importants que l'approche sous-jacente avec ses valeurs trouve désormais application dans d'autres équipes également. Ainsi, DevSecOps désigne par exemple l'intégration de la sécurité dans le processus de développement.