So stellen Sie eine Knotenanwendung und eine Datenbank für Heroku bereit

Heroku ist eine Cloud-basierte, vollständig verwaltete Plattform als Service (PaaS) zum Erstellen, Ausführen und Verwalten von Apps. Die Plattform ist flexibel und mit DX-Unterstützung für Sie und den bevorzugten Entwicklungsstil Ihres Teams konzipiert, damit Sie konzentriert und produktiv bleiben können.

Entwickler, Teams und Unternehmen jeder Größe verwenden Heroku zum Bereitstellen, Verwalten und Skalieren von Apps. Unabhängig davon, ob Sie einen einfachen Prototyp oder ein geschäftskritisches Produkt erstellen, bietet Ihnen die vollständig verwaltete Plattform von Heroku den einfachsten Weg, um Apps schnell bereitzustellen.

Mit Funktionen wie Heroku Runtime, Heroku Postgres (SQL), Heroku Redis, Add-Ons, Datenclips, App-Metriken, intelligenten Containern, Unterstützung für Unternehmen, GitHub-Integration und vielem mehr bietet Heroku Entwicklern die Freiheit, sich auf ihr Kernprodukt zu konzentrieren ohne die Ablenkung der Wartung von Servern, Hardware oder Infrastruktur.

Eine der Hauptfunktionen von Heroku ist das Bereitstellen, Verwalten und Skalieren von Apps mit Ihren Lieblingssprachen [Node, Ruby, Python, Java, PHP, Go und mehr].

In diesem Artikel werde ich Ihnen zeigen, wie Sie eine vorhandene Node.js-App für Heroku bereitstellen - von der Erstellung Ihres Heroku-Kontos bis zum Hinzufügen einer Datenbank zu Ihrer bereitgestellten Anwendung.

Voraussetzungen

In meinem vorherigen Artikel schrieb ich über "Erstellen eines SlackBot mit Node.js und SlackBots.js" und versprach, einen Folgeartikel zu schreiben, in dem gezeigt wird, wie der SlackBot auf Heroku, Zeit oder Netlify gehostet und im Internet veröffentlicht wird Slack Apps Store. Nun, dies ist der Folgeartikel, jedoch ohne den Teil "Publishing to Slack Apps". Wir werden das in einem anderen Artikel behandeln.

Ich gehe davon aus, dass Sie Folgendes bereits kennen / kennen:

  • Lesen Sie meinen vorherigen Artikel
  • Errichtete den inspirNuggets SlackBot
  • Git, Node und npm installiert
  • Ein kostenloses Heroku-Konto
  • Heroku CLI installiert

Bonus

Wenn Sie npm, Node und Heroku CLI noch nicht installiert haben oder noch kein Heroku-Konto haben, erhalten Sie hier einen kurzen Bonus [Ja, Sie sind willkommen :)].

Installation von npm und Node

  • Node.js ist eine JavaScript-Laufzeit, die auf der V8-JavaScript-Engine von Chrome basiert.
  • npm ist der Paketmanager für Node.js. Ein Open-Source-Projekt, das JavaScript-Entwicklern dabei helfen soll, gepackte Codemodule einfach gemeinsam zu nutzen.

Sie können Node.js einfach hier herunterladen. Keine Sorge, npm wird mit Node.js geliefert. Dadurch werden beide installiert ✨

Erstellen eines kostenlosen Heroku-Kontos

Bitte gehen Sie hierher und füllen Sie das Anmeldeformular aus. Es ist ziemlich einfach.

Heroku CLI installieren

Die Heroku Command Line Interface (CLI) erleichtert das Erstellen und Verwalten Ihrer Heroku-Apps direkt vom Terminal aus. Es ist ein wesentlicher Bestandteil der Verwendung von Heroku. [Nun, Sie können sich für die GitHub-Integrationsfunktion und das Heroku-Dashboard entscheiden, aber ja, Sie sollten lernen, wie Sie die CLI verwenden.]

Heroku CLI erfordert Git, das beliebte Versionskontrollsystem. Wenn Sie Git noch nicht installiert haben, habe ich diesen Artikel geschrieben, um Ihnen zu helfen.

Heroku CLI für Mac OS

brew tap heroku/brew && brew install heroku 

oder laden Sie das Installationsprogramm herunter.

Heroku CLI für Ubuntu

sudo snap install --classic heroku 

Heroku CLI für Windows

Laden Sie das Installationsprogramm für 64-Bit oder 32-Bit herunter.

Andere Installationsmethoden

Bitte lesen Sie dies.

Erste Schritte mit Heroku CLI

  • Überprüfen Sie Ihre Installation
heroku --version 

heroku / 7.30.1 linux-x64 node-v11.14.0

  • Melden Sie sich bei Ihrem Heroku-Konto an

Es gibt zwei Möglichkeiten, dies zu tun:

  • Webbasierte Authentifizierung
heroku login 

Folgen Sie den Anweisungen und melden Sie sich über Ihren Webbrowser an. Kehren Sie dann zu Ihrem Terminal zurück.

  • CLI-Authentifizierung

Dies ist eine sicherere Option, da Ihre E-Mail-Adresse und ein API-Token ~/.netrcfür die zukünftige Verwendung gespeichert werden.

heroku login -i 

Bereitstellen Ihrer Node.js-App

Ich nehme an, Sie haben den SlackBot bereits gebaut. Wenn nicht, klonen Sie bitte das fertige Projekt.

Das Projekt ist ein einfacher Slackbot, der zufällig inspirierende technische Zitate und Witze für Entwickler / Designer anzeigt.

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

Jetzt wollen wir unsere App für Heroku bereitstellen. Ich zeige Ihnen zwei Möglichkeiten, dies zu tun:

Bereitstellung über den Heroku Git

Dies erfolgt über die Heroku-CLI.

☑️ Checkliste
  • Geben Sie in Ihrer package.jsonDatei die Version von Node.js an, mit der Ihre Anwendung auf Heroku ausgeführt wird.
"engines": { "node": "10.16.0" }, 
  • Geben Sie Ihr Startskript an.

    Einfach ein Procfile(ohne Dateierweiterung) erstellen und hinzufügen

web: node index.js 

Heroku sucht zuerst nach diesem Procfile. Wenn keine gefunden wird, versucht Heroku, einen Standard-Webprozess über das Startskript in Ihrem zu starten package.json.

  • Starten Sie Ihre App lokal mit dem Befehl heroku local, um sicherzustellen, dass alles einwandfrei funktioniert
heroku local web 

Ihre App sollte jetzt auf // localhost: 5000 ausgeführt werden.

  • Vergiss es nicht .gitignore
/node_modules .DS_Store /*.env 
? Lassen Sie uns bereitstellen

So funktioniert das: Sie haben das Projekt bereits lokal und Sie haben bereits auf GitHub gepusht.

  • Lauf heroku create

Grundsätzlich erstellt dieser Befehl eine neue Heroku-App für Sie mit einer zufällig generierten Domain und fügt Heroku Ihrem lokalen Git-Repository hinzu.

  • Jetzt renn git push heroku master

Dies ist der magische Befehl, der Ihre App an Heroku weiterleitet, dort installiert und auf Ihrer zugewiesenen Domain startet.

Im obigen Beispiel ist es //lit-cove-58897.herokuapp.com/

Sie können jederzeit Änderungen an Ihren App-Einstellungen und Domains in Ihrem Heroku-Dashboard vornehmen

  • Besuchen Sie jetzt Ihre App in Ihrem Browser
heroku open 
  • Sie können Informationen zu Ihrer laufenden App auch mit einem der Protokollierungsbefehle anzeigen. Dies ist sehr nützlich beim Debuggen von Fehlern.
heroku logs --tail 

Bereitstellung über GitHub-Integration

Sie können die GitHub-Integration auf der Registerkarte Bereitstellen von Apps im Heroku-Dashboard konfigurieren.

☑️ Checkliste
  • Alle vorherigen Checklisten gelten hier - stellen Sie sicher, dass Sie die App bereits auf GitHub bereitgestellt haben
? Lassen Sie uns bereitstellen

Diese Methode funktioniert so, dass Sie Ihr gesamtes Projekt auf GitHub übertragen und in Heroku integrieren. Jedes Mal, wenn Sie pushen, wird es von GitHub auf Heroku bereitgestellt. Ziemlich cool, oder?

  • Melden Sie sich bei Ihrem Heroku-Dashboard an und erstellen Sie eine neue App
  • Wählen Sie Ihren App-Namen und Ihre Region aus

Jetzt wurde Ihre App erfolgreich erstellt

  • Klicken Sie auf die Registerkarte Bereitstellen und blättern Sie zum Abschnitt Bereitstellungsmethode
  • Klicken Sie auf die Schaltfläche Mit GitHub verbinden
  • Jetzt haben Sie den Abschnitt Mit GitHub verbinden , suchen nach dem Repository und stellen bereit.
  • Jetzt wurde Ihre App erfolgreich bereitgestellt

Automatische Bereitstellung

Jetzt wird Ihre App bereitgestellt, Sie müssen sie jedoch weiterhin manuell bereitstellen. Sie müssen automatische Bereitstellungen für einen GitHub-Zweig aktivieren, damit Heroku alle Pushs für diesen Zweig erstellt und bereitstellt.

  • Scrollen Sie zum Abschnitt Automatische Bereitstellungen

Wählen Sie den Zweig aus, den Sie bereitstellen möchten. Im Idealfall sollte dies der masterZweig sein, aber ändern Sie dies nach Ihren Wünschen.

Jetzt wird bei jedem Push-to master(oder dem von Ihnen ausgewählten Zweig) eine neue Version dieser App bereitgestellt.

Node.js Buildpack

In Heroku sind Buildpacks Skripte, die ausgeführt werden, wenn Ihre App bereitgestellt wird. Sie werden verwendet, um Abhängigkeiten für Ihre App zu installieren und Ihre Umgebung zu konfigurieren.

Stellen Sie nach der Bereitstellung Ihrer App sicher, dass Sie Ihrem Projekt ein Node.js-Buildpack hinzufügen.

  • Gehen Sie zu Einstellungen und scrollen Sie zum Abschnitt Buildpack
  • Klicken Sie auf die Schaltfläche Buildpack hinzufügen und wählen Sie im Popup-Modal Node.js aus.
  • Jetzt wird die neue Buildpack-Konfiguration verwendet, wenn diese App das nächste Mal bereitgestellt wird. Nehmen Sie einige Änderungen an Ihrer App vor und drücken Sie sie auf GitHub - sie wird automatisch bereitgestellt.

Hinzufügen einer Datenbank zu Ihrer bereitgestellten App '

Der Heroku-Add-On-Marktplatz verfügt über eine große Anzahl von Datenspeichern, von Redis- und MongoDB-Anbietern bis hin zu Postgres und MySQL.

Heroku bietet allen Kunden drei verwaltete Datendienste in Form von Add-Ons:

  • Heroku Postgres
  • Heroku Redis
  • Apache Kafka auf Heroku

Wenn Sie über diese drei schreiben, wird dieser Artikel zu lang. Es ist ziemlich einfach und ich werde einige Links zu den Heroku-Dokumenten hinzufügen.

  • Heroku Postgresql Docs
  • Heroku Redis Docs
  • Apache Kafka über Heroku Docs

Fazit

Jedem Heroku-Konto wird ein Pool mit kostenlosen Prüfstandsstunden zugewiesen. Heroku (kostenlose) Dynos eignen sich hervorragend zum Hosten von Apps und persönlichen Projekten. Der Nachteil ist jedoch, dass Ihre App einschlafen wird, wenn sie innerhalb von 30 Minuten keinen Webdatenverkehr empfängt :(.

Sie können externe Tools verwenden, um Ihren Server regelmäßig zu pingen, damit er nie einschlafen kann.

Hier sind einige zu beachten:

  • Pingmydyno
  • Heroku selbst pingen
  • Wakemydyno
  • Kaffeine
Heroku wurde sorgfältig entwickelt, um Entwicklern zu helfen, so produktiv wie möglich zu sein. Die Plattform beseitigt frustrierende Hindernisse und alltägliche Aufgaben, sodass Sie in Ihrem Entwicklungsfluss nicht abgelenkt werden. Wo immer Sie sich auf dem Lernweg befinden, Heroku hilft Ihnen dabei, die App-Entwicklung noch mehr zu lieben. - Heroku

Die Heroku-Erfahrung bietet Services, Tools, Workflows und Polyglot-Support - alles zur Steigerung der Entwicklerproduktivität. Heroku bietet noch mehr und ich hoffe, Sie erforschen mehr und bauen mit Heroku erstaunliche Dinge.

Wenn Sie Student sind, registrieren Sie sich bitte für das GitHub Student Developer Pack, um einen kostenlosen Hobby Dyno für bis zu zwei Jahre zu erhalten.

Das Paket bietet Schülern freien Zugriff auf die besten Entwicklertools an einem Ort, sodass Sie lernen können, indem Sie dies tun.