Qu'est-ce que DevOps ?
Dans un modèle de développement logiciel traditionnel, les développeurs écrivent de grandes quantités de code pour les nouvelles fonctionnalités, les produits, les corrections de bogues et autres, puis transmettent leur travail à l'équipe d'exploitation pour le déploiement, généralement via un système de tickets automatisé. L'équipe d'exploitation reçoit cette demande dans sa file d'attente, teste le code et le prépare pour la production - un processus qui peut prendre des jours, des semaines ou des mois. Dans le cadre de ce modèle traditionnel, si les opérations rencontrent des problèmes pendant le déploiement, l'équipe renvoie un ticket aux développeurs pour leur dire ce qu'il faut corriger. En fin de compte, une fois ce va-et-vient résolu, la charge de travail est introduite dans la production.
Ce modèle fait de la fourniture de logiciels un processus long et fragmenté. Les développeurs considèrent souvent les opérations comme un obstacle qui ralentit le calendrier de leurs projets, tandis que les équipes chargées des opérations ont l'impression d'être les décharges des problèmes de développement.
DevOps résout ces problèmes en unissant les équipes de développement et d'exploitation tout au long du processus de livraison des logiciels, ce qui leur permet de découvrir les problèmes et d'y remédier plus tôt, d'automatiser les tests et le déploiement et de réduire les délais de mise sur le marché.
DevOps n'est pas
- Une combinaison des équipes de développement et d'exploitation : Il y a toujours deux équipes, mais elles fonctionnent de manière communicative et collaborative.
- Il s'agit d'une équipe distincte : Il n'existe pas à proprement parler d'"ingénieur DevOps". Bien que certaines entreprises puissent nommer une équipe DevOps en tant que pilote lorsqu'elles essaient de passer à une culture DevOps, DevOps fait référence à une culture dans laquelle les développeurs, les testeurs et le personnel d'exploitation coopèrent tout au long du cycle de vie de la livraison des logiciels.
- Un outil ou un ensemble d'outils : Bien qu'il existe des outils qui fonctionnent bien avec un modèle DevOps ou qui aident à promouvoir la culture DevOps, DevOps est en fin de compte une stratégie, pas un outil.
- Automatisation : Bien que très importante pour une culture DevOps, l'automatisation ne définit pas à elle seule le DevOps.
Définition de DevOps
Au lieu que les développeurs codent d'énormes ensembles de fonctionnalités avant de les confier aveuglément aux Opérations pour les déployer, dans un modèle DevOps, les développeurs livrent fréquemment de petites quantités de code pour les tester constamment. Au lieu de communiquer les problèmes et les demandes par l'intermédiaire d'un système de tickets, les équipes de développement et d'exploitation se réunissent régulièrement, partagent des analyses et prennent en charge les projets de bout en bout.
Pipelines CI/CD
DevOps est un cycle d'intégration continue et de livraison continue (ou déploiement continu), autrement appelé Pipeline CI/CD. Le pipeline CI/CD intègre les équipes de développement et d'exploitation pour améliorer la productivité en automatisant l'infrastructure et les flux de travail, ainsi qu'en mesurant constamment les performances des applications. Il se présente comme suit :

- L'intégration constante exige des développeurs qu'ils intègrent le code dans un référentiel plusieurs fois par jour pour des tests automatisés. Chaque check-in est vérifié par un build automatisé, ce qui permet aux équipes de détecter rapidement les problèmes.
- La livraison continue, à ne pas confondre avec le déploiement continu, signifie que le pipeline CI est automatisé, mais que le code doit passer par des vérifications techniques manuelles avant d'être mis en œuvre en production.
- Le déploiement continu fait franchir une étape supplémentaire à la livraison continue. Au lieu de procéder à des vérifications manuelles, le code passe des tests automatisés et est automatiquement déployé, ce qui permet aux clients d'accéder instantanément aux nouvelles fonctionnalités.
DevOps et sécurité
L'un des problèmes du DevOps est que la sécurité passe souvent entre les mailles du filet. Les développeurs évoluent rapidement et leurs flux de travail sont automatisés. La sécurité est une équipe distincte, et les développeurs ne veulent pas ralentir pour les contrôles et les demandes de sécurité. Par conséquent, de nombreux développeurs se déploient sans passer par les canaux de sécurité appropriés et commettent inévitablement des erreurs de sécurité préjudiciables.
Pour résoudre ce problème, les organisations adoptent DevSecOps. DevSecOps reprend le concept derrière DevOps - l'idée que les développeurs et les équipes informatiques devraient collaborer étroitement, plutôt que séparément, tout au long de la livraison du logiciel - et l'étend pour inclure la sécurité et intégrer des contrôles automatisés dans l'ensemble du pipeline CI/CD. Cela résout le problème de la sécurité qui semble être une force extérieure et permet aux développeurs de maintenir leur vitesse sans compromettre la sécurité des données.