Comment déployer une application de nœud et une base de données sur Heroku

Heroku est une plate-forme en tant que service (PaaS) basée sur le cloud et entièrement gérée pour la création, l'exécution et la gestion d'applications. La plate-forme est flexible et conçue avec le support DX pour vous et le style de développement préféré de votre équipe et pour vous aider à rester concentré et productif.

Les développeurs, les équipes et les entreprises de toutes tailles utilisent Heroku pour déployer, gérer et mettre à l'échelle des applications. Que vous construisiez un simple prototype ou un produit critique pour l'entreprise, la plate-forme entièrement gérée de Heroku vous offre le chemin le plus simple pour fournir rapidement des applications.

Avec des fonctionnalités telles que Heroku Runtime, Heroku Postgres (SQL), Heroku Redis, modules complémentaires, clips de données, métriques d'application, conteneurs intelligents, support de niveau entreprise, intégration GitHub et bien plus encore, Heroku donne aux développeurs la liberté de se concentrer sur leur produit principal sans la distraction de la maintenance des serveurs, du matériel ou de l'infrastructure.

L'une des principales fonctionnalités d'Heroku est le déploiement, la gestion et la mise à l'échelle d'applications avec vos langages préférés [Node, Ruby, Python, Java, PHP, Go, etc.].

Dans cet article, je vais vous montrer comment prendre une application Node.js existante et la déployer sur Heroku - de la création de votre compte Heroku à l'ajout d'une base de données à votre application déployée.

Conditions préalables

Dans mon article précédent, j'ai écrit sur "Créer un SlackBot avec Node.js et SlackBots.js" et j'ai promis d'écrire un article de suivi pour montrer comment héberger le SlackBot sur Heroku, Zeit ou Netlify et le publier sur le Magasin d'applications Slack. Eh bien, c'est l'article de suivi, mais sans la partie "Publication sur Slack Apps". Nous couvrirons cela dans un autre article.

Je suppose que vous avez / savez déjà ce qui suit:

  • Lire mon article précédent
  • Construit l'inspirer
  • Git, Node et npm installés
  • Un compte Heroku gratuit
  • Heroku CLI installé

Prime

Si vous n'avez pas installé npm, Node et Heroku CLI ou un compte Heroku déjà, voici un petit bonus [Oui, vous êtes les bienvenus :)].

Installer npm et Node

  • Node.js est un moteur d'exécution JavaScript basé sur le moteur JavaScript V8 de Chrome.
  • npm est le gestionnaire de packages pour Node.js. Un projet open-source créé pour aider les développeurs JavaScript à partager facilement des modules de code packagés.

Vous pouvez simplement télécharger Node.js ici. Ne vous inquiétez pas, npm est fourni avec Node.js, donc cela installe les deux ✨

Créer un compte Heroku gratuit

Veuillez vous rendre ici et remplir le formulaire d'inscription. C'est assez simple.

Installation de la CLI Heroku

L'interface de ligne de commande Heroku (CLI) facilite la création et la gestion de vos applications Heroku directement à partir du terminal. C'est une partie essentielle de l'utilisation d'Heroku. [Eh bien, vous pouvez décider d'utiliser la fonctionnalité d'intégration GitHub et Heroku Dashboard, mais oui, vous devriez apprendre à utiliser la CLI]

Heroku CLI nécessite Git, le système de contrôle de version populaire. Si vous n'avez pas encore installé Git, j'ai écrit cet article pour vous aider.

Heroku CLI pour Mac OS

brew tap heroku/brew && brew install heroku 

ou téléchargez le programme d'installation.

Heroku CLI pour Ubuntu

sudo snap install --classic heroku 

Heroku CLI pour Windows

Téléchargez le programme d'installation pour 64 bits ou 32 bits.

Autres méthodes d'installation

Lis ça s'il te plait.

Premiers pas avec Heroku CLI

  • Vérifiez votre installation
heroku --version 

heroku / 7.30.1 noeud linux-x64-v11.14.0

  • Connectez-vous à votre compte Heroku

Il y a deux façons de faire ça:

  • Authentification basée sur le Web
heroku login 

Suivez les instructions et connectez-vous via votre navigateur Web, puis revenez à votre terminal.

  • Auth CLI

C'est une option plus sûre car elle enregistre votre adresse e-mail et un jeton API ~/.netrcpour une utilisation future.

heroku login -i 

Déployer votre application Node.js

Je suppose que vous avez déjà construit le SlackBot. Si ce n'est pas le cas, veuillez cloner le projet terminé.

Le projet est un simple Slackbot qui affiche des citations et des blagues de technicien inspirantes aléatoires pour les développeurs / concepteurs.

git clone //github.com/BolajiAyodeji/inspireNuggetsSlackBot.git && cd inspireNuggetsSlackBot 

Déployons maintenant notre application sur Heroku ??. Je vais vous montrer deux façons de procéder:

Déployer via le Heroku Git

Cela se fait via la CLI Heroku.

☑️ Liste de contrôle
  • Spécifiez la version de Node.js qui sera utilisée pour exécuter votre application sur Heroku dans votre package.jsonfichier.
"engines": { "node": "10.16.0" }, 
  • Spécifiez votre script de démarrage.

    Créez simplement un Procfile(sans aucune extension de fichier) et ajoutez

web: node index.js 

Heroku cherche d'abord ce Procfile. Si aucun n'est trouvé, Heroku tentera de démarrer un processus Web par défaut via le script de démarrage dans votre package.json.

  • Démarrez votre application localement à l'aide de la commande locale heroku pour vous assurer que tout fonctionne correctement
heroku local web 

Votre application doit maintenant être exécutée sur // localhost: 5000.

  • N'oubliez pas de .gitignore
/node_modules .DS_Store /*.env 
? Déployons

Comment cela fonctionne, le projet fonctionne déjà en local et vous avez déjà poussé vers GitHub.

  • Courir heroku create

Fondamentalement, cette commande crée une nouvelle application Heroku pour vous avec un domaine généré aléatoirement et ajoute Heroku à votre référentiel Git local.

  • Maintenant courez git push heroku master

C'est la commande magique, elle pousse votre application vers Heroku, l'installe là-bas et la lance sur votre domaine alloué.

Dans l'exemple ci-dessus, il s'agit de //lit-cove-58897.herokuapp.com/

Vous pouvez toujours modifier les paramètres et les domaines de votre application dans votre tableau de bord Heroku

  • Maintenant, visitez votre application dans votre navigateur
heroku open 
  • Vous pouvez également afficher des informations sur votre application en cours d'exécution à l'aide de l'une des commandes de journalisation. Ceci est très utile pour le débogage des erreurs.
heroku logs --tail 

Déployer via l'intégration GitHub

Vous pouvez configurer l'intégration GitHub dans l'onglet Déployer des applications dans le tableau de bord Heroku.

☑️ Liste de contrôle
  • Toutes les listes de contrôle précédentes s'appliquent ici - assurez-vous que l'application est déjà déployée sur GitHub
? Déployons

Le fonctionnement de cette méthode consiste à pousser tout votre projet sur GitHub et à l'intégrer à Heroku. Chaque fois que vous poussez, il se déploie de GitHub vers Heroku. Assez cool non?

  • Connectez-vous à votre tableau de bord Heroku et créez une nouvelle application
  • Sélectionnez le nom et la région de votre application

Votre application a maintenant été créée avec succès

  • Cliquez sur l'onglet de déploiement et faites défiler jusqu'à la section Méthode de déploiement
  • Cliquez sur le bouton Se connecter à GitHub
  • Vous avez maintenant la section Se connecter à GitHub , recherchez le référentiel et déployez.
  • Votre application a maintenant été déployée avec succès

Déploiements automatiques

Maintenant, votre application est déployée mais vous devrez continuer à déployer manuellement. Vous devez activer les déploiements automatiques pour une branche GitHub, donc Heroku construit et déploie toutes les poussées vers cette branche.

  • Faites défiler jusqu'à la section Déploiements automatiques

Sélectionnez la branche que vous souhaitez déployer. Idéalement, cela devrait être la masterbranche, mais changez-la selon vos préférences.

Désormais, chaque poussée vers master(ou la branche que vous avez choisie) déploiera une nouvelle version de cette application.

Buildpack de Node.js

Dans Heroku, les Buildpacks sont des scripts qui sont exécutés lorsque votre application est déployée. Ils sont utilisés pour installer des dépendances pour votre application et configurer votre environnement.

Après avoir déployé votre application, assurez-vous d'ajouter un buildpack Node.js à votre projet.

  • Allez dans Paramètres et faites défiler jusqu'à la section Buildpack
  • Cliquez sur le bouton Add Buildpack et sélectionnez Node.js dans le modal Popup.
  • Désormais, la nouvelle configuration du buildpack sera utilisée lors du prochain déploiement de cette application. Apportez des modifications à votre application et envoyez-la sur GitHub - elle se déploiera automatiquement.

Ajout d'une base de données à votre application déployée '

La place de marché des modules complémentaires Heroku dispose d'un grand nombre de magasins de données, des fournisseurs Redis et MongoDB à Postgres et MySQL.

Heroku fournit trois services de données gérés à tous les clients sous la forme de modules complémentaires:

  • Heroku Postgres
  • Heroku Redis
  • Apache Kafka sur Heroku

Écrire sur ces trois éléments rendra cet article trop long. C'est assez simple et je vais ajouter quelques liens vers les documents Heroku.

  • Documents Heroku PostgreSQL
  • Documents Heroku Redis
  • Apache Kafka sur Heroku Docs

Conclusion

Chaque compte Heroku se voit attribuer un pool d'heures dynamo gratuites. Les dynos Heroku (gratuits) sont parfaits pour l'hébergement d'applications et de projets personnels. L'inconvénient, cependant, est que votre application s'endormira si elle ne reçoit aucun trafic Web dans les 30 minutes :(.

Vous pouvez utiliser des outils externes pour envoyer régulièrement une requête ping à votre serveur afin qu'il ne s'endorme jamais.

En voici quelques-uns à considérer:

  • Pingmydyno
  • Heroku auto-ping
  • Wakemydyno
  • Caféine
Heroku est méticuleusement conçu pour aider les développeurs à être aussi productifs que possible. La plate-forme supprime les obstacles frustrants et les tâches banales, afin que vous puissiez rester libre de toute distraction dans votre flux de développement. Où que vous soyez sur le parcours d'apprentissage, Heroku vous aide à aimer encore plus le développement d'applications. - Heroku

L'expérience Heroku fournit des services, des outils, des flux de travail et une assistance polyglotte, tous conçus pour améliorer la productivité des développeurs. Il y a plus à utiliser Heroku et j'espère que vous explorerez davantage et construirez des trucs incroyables avec Heroku.

Si vous êtes étudiant, veuillez vous inscrire au pack de développement étudiant GitHub pour obtenir un Hobby Dyno gratuit pendant deux ans maximum.

Le pack donne aux étudiants un accès gratuit aux meilleurs outils de développement en un seul endroit afin que vous puissiez apprendre en faisant.