Skip to main content

Déploiement d’applications sur Heroku

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Décrire les différentes options de déploiement avec Heroku
  • Expliquer les avantages et les inconvénients de chaque option

Heroku offre plusieurs options de déploiement. La méthode que vous choisissez dépend de votre processus de déploiement, de vos exigences et de vos applications spécifiques. 

Déploiement avec Git

Cette méthode est le mode de déploiement le plus simple. Ajoutez votre application Heroku en tant qu’application distante à un référentiel Git existant, puis utilisez git push pour envoyer votre code à Heroku. Heroku crée automatiquement votre application et une version.

Déploiement à l’aide de l’intégration avec GitHub

L’intégration avec GitHub vous permet de déployer les modifications d’un référentiel GitHub directement sur Heroku. Cette intégration offre plus de fonctionnalités que toute autre option de déploiement. Après avoir lié votre référentiel, les modifications apportées à celui-ci se déploient automatiquement dans l’application. Vous pouvez configurer des déploiements automatiques pour une branche spécifique ou déclencher manuellement des déploiements à partir de GitHub. Si vous utilisez une intégration continue (CI), comme Heroku CI, vous pouvez empêcher les déploiements sur Heroku si les tests échouent.

L’intégration avec GitHub est également utile pour automatiser les déploiements sur les pipelines. Par exemple, lorsque vous fusionnez une modification dans la branche main, vous pouvez la déployer automatiquement à l’étape de préproduction pour la tester. 

Déploiement avec Heroku Review Apps

Review Apps vous permet de déployer n’importe quel pull request (PR) GitHub en tant qu’application isolée et jetable. Vous pouvez présenter et tester le PR sans écraser votre application de production, ce qui vous fait gagner beaucoup de temps pour les tests. La fermeture du PR détruit l’application de contrôle.

Déploiement avec le bouton « Déployer vers Heroku »

Le bouton Déployer vers Heroku vous permet de déployer une application sur Heroku à partir d’un navigateur Web en quelques clics. Vous pouvez paramétrer chaque bouton avec des réglages différents, tels que transmettre des variables d’environnement personnalisées à Heroku, utiliser une branche Git spécifique ou fournir des clés OAuth. Les applications déployées avec ce bouton ne se mettent pas à jour automatiquement lorsque vous ajoutez de nouveaux commits au référentiel GitHub.

Déploiement avec Docker

Docker regroupe vos applications dans des environnements autonomes. Cette isolation garantit qu’elles se comportent de la même manière en développement et en production. Docker offre plus de contrôle sur les langages, les cadres et les bibliothèques utilisés pour exécuter votre application. Pour déployer un conteneur sur Heroku, transférez une image vers le registre de conteneurs Heroku ou déclarez-la dans le fichier heroku.yml de votre application pour la créer automatiquement.

Déploiement avec Hashicorp Terraform

Hashicorp Terraform est un outil d’infrastructure en tant que code qui aide à gérer une infrastructure complexe. Vous pouvez définir vos applications avec HCL, un langage de configuration déclaratif, pour automatiser le processus de déploiement et de gestion des applications Heroku. Terraform v0.12+ vous permet de stocker l’état distant. Vous pouvez donc exécuter Terraform sur un dyno Heroku et stocker l’état Terraform dans une base de données Heroku Postgres.

Comparaison des options de déploiement

Utilisez le tableau ci-dessous pour choisir la meilleure option de déploiement pour votre cas d’utilisation et votre workflow.

Méthode de déploiement

Exigences

Mieux adaptée pour

Avantages

Inconvénients

Git

- Accès complet au référentiel Git et à l’application Heroku pour envoyer manuellement le code en production 

- Projets avec de petites équipes de confiance

- Simple à ajouter à n’importe quel workflow fondé sur Git

- Prend en charge les sous-modules Git 

- Nécessite le déploiement manuel du code avec git push

Intégration avec GitHub

- Accès administrateur à un référentiel GitHub

- Déploiements automatisés

- Déploie automatiquement les applications et les maintient à jour

- S’intègre à Heroku Pipelines, Review Apps et Heroku CI afin de garantir un workflow continu

- Pas de prise en charge des sous-modules Git

Heroku Review Apps

- L’intégration avec GitHub 

- Heroku Pipelines

- Projets dans GitHub avec des applications déployées dans plusieurs environnements

- Option pour créer et mettre à jour automatiquement Review Apps pour chaque PR

- Prend en charge les images Docker

- Prend en charge les espaces privés Heroku pour tester les modifications dans un environnement isolé

- Coûts supplémentaires liés aux ressources utilisées dans Review Apps ; reportez-vous aux conseils pour optimiser les coûts sur le Dev Center

Bouton « Déployer vers Heroku »

- Un référentiel GitHub

- Un fichier app.json valide dans le répertoire racine du projet

- Applications fournies à vos utilisateurs ou clients, telles que des projets open source

- Intégration de nouveaux employés

- Idéal pour partager des projets de modèles

- Facile à ajouter au fichier README ou à la page Web d’un projet

- Fournit un modèle avec des paramètres, des variables d’environnement et des valeurs par défaut préconfigurés

- Pas de prise en charge des sous-modules Git

- Pas de mises à jour automatiques lorsque le référentiel change ; vous devez utiliser une autre méthode de déploiement pour les déploiements ultérieurs sur la même application

Docker

- Une image Docker

- Applications avec des piles personnalisées

- Plus de contrôle sur la pile de votre application

- Permet de générer automatiquement des images ou de transférer une image existante vers le registre de conteneurs

- Cohérence entre les environnements

- Compatible avec Heroku Review Apps

- Vous devez maintenir votre propre pile

- Pas de prise en charge des promotions de pipeline

Hashicorp Terraform

- Terraform

- Applications avec des composants d’infrastructure complexes

- Automatise les déploiements d’applications Heroku

- Vous permet de déployer des applications Heroku en tant que code

- Simplifie la gestion de grands déploiements complexes

- Peut configurer des applications, des espaces privés ou des ressources d’autres fournisseurs dans une architecture multi-fournisseur reproductible

Le support Heroku ne peut pas fournir d’aide pour ces déploiements plus complexes

Récapitulatif

Vous connaissez maintenant les différentes options de déploiement. Continuez ce module pour en savoir plus sur certaines infrastructures utilisées pour exécuter des applications sur Heroku.

Ressources 

Formez-vous gratuitement !
Créez un compte pour continuer.
Qu’est-ce que vous y gagnez ?
  • Obtenez des recommandations personnalisées pour vos objectifs de carrière
  • Mettez en pratique vos compétences grâce à des défis pratiques et à des questionnaires
  • Suivez et partagez vos progrès avec des employeurs
  • Découvrez des opportunités de mentorat et de carrière