Découvrez Heroku Flow et ses fonctionnalités
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Décrire un workflow livraison continue avec Heroku Flow.
- Citer les fonctionnalités d’Heroku Flow et expliquer à quoi sert chacune.
Présentation d’Heroku Flow
Heroku Flow est un workflow structuré facile d'utilisation pour livraison continue sur la plateforme Heroku. Il se compose d’Heroku Pipelines, de Review Apps, de Release Phase, d’Heroku CI, et d’intégrations avec GitHub et Slack pour fournir un workflow permettant de passer simplement du code à la production.
Voici à quoi ressemble un workflow de livraison continue typique sur Heroku :
- Un développeur ou un membre de l'équipe crée un Pipeline Heroku et commence à y ajouter des applications.
- Un développeur crée un pull request pour apporter un changement au code d’une application.
- Heroku crée automatiquement une application de contrôle pour le pull request, afin que les développeurs puissent tester le changement.
- Lorsque le changement est prêt, il est fusionné vers la branche
main
du code. - La branche
main
est déployée automatiquement vers une application de staging pour y subir d’autres tests. - Si Heroku CI est configuré, des tests sont exécutés pour vérifier l’absence de problèmes avec les modifications apportées au code. Si Release Phase est configuré, ses tâches s’exécutent avant le déploiement du code. Un exemple de tâche Release Phase consiste à gérer une migration de base de données.
- Quand tout est prêt, un développeur promeut l’application de staging en production, où les changements sont accessibles aux utilisateurs finaux.
- Si le pipeline est intégré à Slack, une notification est publiée sur un canal spécifique lorsqu’un pull request s’ouvre et le code est fusionné dans
main
. Ces publications informent l’équipe du statut et des résultats des tests de CI et des tâches Release Phase. Les membres de l’équipe disposant des autorisations nécessaires peuvent également déployer des applications pour le staging ou les promouvoir vers l’environnement de production depuis le canal Slack.
Il est temps de découvrir les fonctionnalités d’Heroku Flow et de comprendre à quoi sert chacune d’elles.
Pipelines Heroku
Un pipeline est un groupe d’applications Heroku qui partagent la même base de code. Chaque application d’un pipeline représente une des étapes du workflow de livraison continue : contrôle, développement, staging et production.
Intégration avec GitHub
Connecter un pipeline Heroku à un dépôt GitHub permet de déployer manuellement ou automatiquement une branche à chaque modification poussée vers GitHub. Pour chaque déploiement, vous pouvez voir la comparaison entre la version actuelle et le commit précédent dans l’onglet Activité de l’application sur le tableau de bord Heroku. Si vous avez configurez votre dépôt GitHub de manière à ce qu'il utilise Heroku CI ou un serveur externe d'intégration continue (CI), vous pouvez configurer Heroku pour qu'il ne déploie automatiquement une branche que lorsque la CI réussit pour un commit précis.
Review Apps (applications de contrôle)
Review Apps vous permet de proposer, de discuter et de choisir les changements à intégrer à votre base de code. Pour les applications Heroku connectées à GitHub, Heroku peut créer manuellement ou automatiquement une application de test temporaire disposant d’une URL unique pour chaque pull request (PR) ouvert. L’application temporaire se met automatiquement à jour à chaque commit, donc plus besoin de jouer aux devinettes pour savoir ce que fait le code : les contrôleurs peuvent réellement essayer les modifications dans un navigateur.
Release Phase
Release Phase permet d’exécuter des tâches avant qu’une version ne soit déployée en production, ce qui élimine les fenêtres de maintenance et réduit les risques liés au déploiement. Utilisez Release Phase pour migrer une base de données, télécharger des ressources vers un réseau de livraison de contenu (CDN), invalider un cache, ou exécuter toute autre tâche dont votre application a besoin pour être prête pour la production. Si une tâche Release Phase échoue, la nouvelle version n’est pas déployée, et l’environnement de production actuel n’est donc pas affecté.
Heroku CI
Heroku CI est un système d’exécution des tests nécessitant peu de configuration, et intégrable aux pipelines Heroku. Heroku CI exécute vos tests sans temps d’attente pour accélérer les résultats, en utilisant des applications jetables identiques à vos environnements de staging et de production. Accédez aux résultats des tests depuis Heroku ou GitHub, automatisez les déploiements en fonction des résultats de CI, et tirez profit de l’interface entièrement visuelle conçue pour que la CI puisse tenir son rôle dans la livraison continue en équipe.
Heroku ChatOps
Heroku ChatOps utilise la puissance d’Heroku Pipelines pour apporter un workflow de déploiement collaboratif vers Slack. Il permet aux développeurs de déployer vers l’environnement de staging ou de promouvoir vers la production depuis Slack. Avec Heroku ChatOps, les équipes peuvent suivre toutes les modifications du code depuis leur canal Slack. Les notifications de pull request, les fusions et les résultats de compilation CI s’affichent tous dans Slack. Il n’est pas nécessaire de changer de contexte pour voir ces résultats ou vérifier si la promotion vers la production a fonctionné.
Bien que cette unité vous donne un aperçu des fonctionnalités d’Heroku Flow, vous en apprendrez plus sur certaines d’entre elles dans l’unité suivante.
Ressources
- Site de développement Heroku Dev Center : Pipelines
- Site de développement Heroku Dev Center : Intégration avec GitHub
- Site de développement Heroku Dev Center : Review Apps (applications de contrôle)
- Site de développement Heroku Dev Center : Release Phase
- Site de développement Heroku Dev Center : Heroku CI
- Site de développement Heroku Dev Center : Heroku ChatOps