DevOps : la force motrice pour accélérer votre transformation numérique

Publié: 2018-12-11

" Pratiquement tout le monde fait de l'intégration continue. Le déploiement continu est un peu comme le Saint Graal " - Theo Kim, responsable de l'ingénierie DevOps, GoPro

La concurrence sur le marché des logiciels a contraint les organisations à allouer leurs meilleures ressources pour développer et fournir des logiciels de haute qualité à un rythme accéléré. La clé de ce niveau d'agilité est d'établir une relation hautement collaborative et communicative entre le développement et les opérations informatiques.

Le virage moderne

Le terme « DevOps » est apparu pour la première fois en 2008 dans le but de permettre aux développeurs de logiciels et aux professionnels des opérations informatiques de travailler ensemble pour créer des applications rapidement et efficacement. Dix ans plus tard, DevOps a fait partie intégrante du succès de nombreuses organisations, y compris de grandes entreprises telles qu'Amazon, Netflix et Fidelity Worldwide Investments - des organisations avec une vaste clientèle qui exigent des services et une accessibilité supérieurs.

À première vue, DevOps ne semble guère être une technologie révolutionnaire : permettre aux équipes de travailler ensemble pour livrer mieux et plus rapidement semble un objectif évident.

changement

Le processus de développement Agile réduit les temps de développement en augmentant la communication entre l'équipe de développement et les parties prenantes de l'entreprise. Mais les projets logiciels ne sont pas terminés lorsque la dernière ligne de code est écrite et que le dernier cas de test est réussi. Les applications doivent être conditionnées pour la publication, déployées en production, surveillées pour détecter d'éventuels problèmes et améliorées avec de nouvelles fonctionnalités et les corrections de bogues nécessaires.

Chacune de ces tâches de post-développement prend du temps, retardant ainsi la livraison de nouvelles fonctionnalités et fonctionnalités métier aux utilisateurs. DevOps met l'accent agile sur la communication et la collaboration entre les développeurs et l'équipe d'exploitation, donnant au processus après le développement une réactivité égale.

Aujourd'hui, DevOps est considéré comme la méthode la plus efficace pour le développement de logiciels. Grâce à DevOps, les organisations de logiciels peuvent réduire la complexité du développement, détecter et résoudre les problèmes plus rapidement et fournir en permanence des logiciels innovants de haute qualité. L'intégration continue (CI), la livraison continue (CDE) et le déploiement continu (CD) sont quelques-unes des pratiques qui aident les organisations à être rapides sans compromettre la qualité.

Intégration continue

L'intégration continue (CI) est une pratique de développement largement établie dans l'industrie du développement logiciel qui vise à intégrer les produits de travail des développeurs individuels dans un référentiel central tôt et souvent. Les membres de l'équipe intègrent et fusionnent fréquemment leur travail de développement. CI assure une détection précoce des bugs d'intégration, résultant en une meilleure collaboration au sein des équipes, conduisant à un produit de meilleure qualité.

CI rend le processus d'intégration simple, facilement reproductible et permet aux organisations de profiter de cycles de publication plus courts et plus fréquents, d'améliorer la qualité des logiciels et d'augmenter la productivité globale.

l'intégration

Il y a cependant des compromis à prendre en considération. Le processus CI n'offre aucune assurance qualité supplémentaire. De nombreuses organisations trouvent qu'une telle intégration est coûteuse et préfèrent donc des procédures manuelles pour s'assurer que le nouveau code n'introduit pas de nouveaux bogues, même si cela implique des compromis sur le temps. Pour réduire les frictions lors des tâches d'intégration, CI s'appuie sur des suites de tests et une exécution de tests automatisée. Cependant, il est important de réaliser que les tests automatisés sont très différents des tests continus.

Livraison continue

La livraison continue (CDE) est une extension naturelle de l'intégration continue, reprenant là où CI s'est arrêté. La livraison continue vise à garantir qu'une application est toujours prête pour la production après avoir passé avec succès des tests automatisés et des contrôles de qualité. CDE garantit que le logiciel est exempt de bogues en employant un ensemble de pratiques pour, par exemple, CI et déployer l'automatisation, fournissant ainsi le logiciel automatiquement à un environnement de type production.

La livraison continue dépend d'un pipeline de déploiement utilisé par l'équipe pour automatiser les processus de test et de déploiement. Le pipeline lui-même est un système automatisé qui exécute un ensemble progressif de suites de tests sur la construction. Dans chaque segment du pipeline, le build peut échouer à un test critique, alertant ainsi l'équipe. Si ce n'est pas le cas, il passe à la suite de tests suivante, et les réussites de test successives entraîneront une promotion automatique au segment suivant dans le pipeline. Le dernier segment du pipeline déploiera la version dans un environnement équivalent à la production.

processus devops

L'un des meilleurs exemples de pipeline CI/CDE moderne est disponible sur AWS. Amazon propose un environnement de pipeline CI/CDE impressionnant et fournit une procédure pas à pas dans laquelle vous pouvez choisir parmi de nombreuses ressources de développement et les lier ensemble dans un pipeline qui est facilement configurable et facilement surveillé.

Déploiement continu

Alors que beaucoup confondent le déploiement continu (CD) avec la même chose que la livraison continue, ce processus se distingue en allant plus loin en déployant automatiquement et en continu l'application en production. Dans le but de déployer automatiquement et régulièrement chaque changement dans l'environnement de production, la pratique de déploiement continu implique la pratique de livraison continue, mais l'inverse n'est pas vrai.

Bien que le déploiement final dans Continuous Delivery soit une étape manuelle, il est important de noter qu'il n'y a pas d'étapes manuelles dans Continuous Deployment. Dès que les développeurs valident une modification, la modification est déployée en production via un pipeline de déploiement. De plus, la pratique de livraison continue peut être appliquée à tous les types d'organisations, tandis que la pratique de déploiement continu peut ne convenir qu'à certains types d'organisations.

déploiement-continu

Les organisations qui utilisent une méthodologie CD bénéficieront d'un retour rapide des utilisateurs sur leurs nouveaux déploiements. Les fonctionnalités sont livrées aux utilisateurs rapidement, et toute erreur ou défaut qui devient évident peut être traité immédiatement.

Avec l'énorme croissance de l'adoption de DevOps, il y a également eu une augmentation significative des outils d'automatisation qui aident à la mise en œuvre des pipelines CI/CD. Ces outils s'intègrent à divers outils de développement, notamment des systèmes de référentiel de code tels que Github et des systèmes de suivi des bogues tels que Jira. De plus, comme le SaaS est devenu un modèle de livraison populaire, la plupart de ces outils s'exécutent sur le cloud. Certains des outils les plus populaires sont GitLab CI, TeamCity, Bamboo, GoCD, Jenkins et Circle CI.

infos devops