Skip to main content

Bereitstellen von Anwendungen in Heroku

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Beschreiben der verschiedenen Möglichkeiten der Bereitstellung mit Heroku
  • Erläutern der Vor- und Nachteile der einzelnen Möglichkeiten

Heroku bietet mehrere Bereitstellungsmöglichkeiten. Welche Methode Sie wählen, hängt von Ihrem speziellen Bereitstellungsprozess, Ihren Anforderungen und Ihren Anwendungen ab. 

Bereitstellen mit Git

Dies ist die einfachste Bereitstellungsmethode. Sie fügen Ihre Heroku -Anwendung als remote zu einem bestehenden Git-Repository hinzu und senden Ihren Code dann mit git push an Heroku. Heroku erstellt automatisch Ihre Anwendung und erstellt ein Release.

Bereitstellen mit der GitHub-Integration

Die GitHub-Integration ermöglicht Ihnen, Änderungen aus einem GitHub-Repository direkt in Heroku bereitzustellen. Diese Integration bietet mehr Funktionen als die anderen Bereitstellungsmöglichkeiten. Nachdem Sie Ihr Repository verknüpft haben, werden mit Push in das Repository übertragene Änderungen automatisch in der Anwendung bereitgestellt. Sie können automatische Bereitstellungen für einen bestimmten Branch konfigurieren oder Bereitstellungen aus GitHub manuell auslösen. Wenn Sie Continuous Integration (CI) nutzen, z. B. mit Heroku CI, können Sie Bereitstellungen in Heroku verhindern, falls Tests fehlschlagen.

Die GitHub-Integration ist auch für die Automatisierung von Bereitstellungen in Pipelines hilfreich. Wenn Sie beispielsweise eine Änderung mit dem Merge-Befehl mit dem main-Branch kombinieren, können Sie sie automatisch für Tests in der Staging-Phase bereitstellen. 

Bereitstellen mit Heroku Review Apps

Review Apps ermöglichen Ihnen, eine beliebige GitHub Pull Request (PR) als isolierte Einweganwendung bereitzustellen. Sie können die Pull Request vorführen und testen, ohne Ihre Produktionsanwendung zu überschreiben – eine große Zeitersparnis beim Testen. Beim Schließen der Pull Request wird die Review App gelöscht.

Bereitstellen mit der Schaltfläche 'Deploy to Heroku'

Die Schaltfläche 'Deploy to Heroku' ermöglicht Ihnen, eine Anwendung mithilfe von Mausklicks von einem Webbrowser aus in Heroku bereitzustellen. Sie können jede Schaltfläche mit unterschiedlichen Einstellungen parametrisieren, um beispielsweise benutzerdefinierte Umgebungsvariablen an Heroku zu übergeben, einen bestimmten Git-Branch zu verwenden oder OAuth-Schlüssel anzugeben. Über diese Schaltfläche bereitgestellte Anwendungen werden nicht automatisch aktualisiert, wenn Sie neue Commits zum GitHub-Repository hinzufügen.

Bereitstellen mit Docker

Docker bündelt Ihre Anwendungen in abgeschlossenen Umgebungen. Diese Isolierung stellt sicher, dass sie sich sowohl in der Entwicklungs- als auch der Produktionsumgebung gleich verhalten. Docker bietet mehr Kontrolle über die Sprachen, Frameworks und Bibliotheken, die zur Ausführung Ihrer Anwendung verwendet werden. Um einen Container in Heroku bereitzustellen, übertragen Sie ein Image mit Push in die Heroku-Container-Registry oder deklarieren ihn in der heroku.yml-Datei Ihrer Anwendung , um ihn automatisch zu erstellen.

Bereitstellen mit Hashicorp Terraform

Hashicorp Terraform ist ein Infrastructure-as-Code-Tool, das Ihnen bei der Verwaltung komplexer Infrastrukturen hilft. Sie können Ihre Anwendungen mit HCL, einer deklarativen Konfigurationssprache, definieren, um den Prozess der Bereitstellung und Verwaltung von Heroku-Anwendungen zu automatisieren. Mit Terraform Version 0.12+ können Sie den Status remote speichern, so dass Sie Terraform auf einem Heroku-Dyno ausführen und den Terraform-Status in einer Heroku-Postgres-Datenbank speichern können.

Vergleichen der verschiedenen Bereitstellungsmöglichkeiten

Nutzen Sie die folgende Tabelle, um die Bereitstellungsmöglichkeit zu wählen, die am besten zu Ihrem Anwendungsfall und Ihrem Workflow passt.

Bereitstellungsmethode

Voraussetzungen

Am besten geeignet für

Vorteile

Nachteile

Git

- Voller Zugriff auf das Git-Repository und die Heroku-Anwendung, um den Code manuell mit Push in die Produktionsumgebung zu übertragen 

- Projekte mit kleinen, vertrauenswürdigen Teams

- Lässt sich leicht in einen Git-basierten Workflow einbinden

- Unterstützt Git-Submodule 

- Code muss manuell mit 'git push' bereitgestellt werden

GitHub-Integration

- Administratorzugriff auf ein GitHub-Repository

- Automatisierte Bereitstellungen

- Automatische Bereitstellung und Aktualisierung von Anwendungen

- Integration mit Heroku Pipelines, Review Apps und Heroku CI für einen Continuous-Workflow

- Git-Submodule werden nicht unterstützt

Heroku Review Apps

- Die GitHub-Integration 

- Heroku Pipelines

- Projekte in GitHub mit Anwendungen, die in mehreren Umgebungen bereitgestellt werden

- Möglichkeit, automatisch Review Apps für jede Pull Request zu erstellen und zu aktualisieren

- Unterstützt Docker-Images

- Unterstützt Heroku Private Spaces zum Testen von Änderungen in einer isolierten Umgebung

- Zusatzkosten für Ressourcen, die in Review Apps genutzt werden. Lesen Sie hierzu die Tipps zur Kostenoptimierung im Dev Center.

Schaltfläche 'Deploy to Heroku'

- Ein GitHub-Repository

- Eine gültige app.json-Datei im Stammverzeichnis des Projekts

- Anwendungen für Ihre Benutzer oder Kunden, wie etwa Open Source-Projekte

- Einarbeiten neuer Mitarbeiter

- Großartig zum Teilen von Vorlagenprojekten

- Lässt sich einfach zur README-Datei oder Webseite eines Projekts hinzufügen

- Bietet eine Vorlage mit vorkonfigurierten Standardwerten, Umgebungsvariablen und Parametern

- Git-Submodule werden nicht unterstützt

- Keine automatische Aktualisierung bei Änderungen im Repository. Für nachfolgende Bereitstellungen in derselben Anwendung muss eine andere Bereitstellungsmethode verwendet werden.

Docker

- Ein Docker-Image

- Anwendungen mit benutzerdefinierten Stacks

- Mehr Kontrolle über den Stack Ihrer Anwendung

- Images automatisch generieren oder ein bestehendes Image mit Push an die Container-Registry übertragen

- Konsistenz zwischen Umgebungen

- Kompatibel mit Heroku Review Apps

- Man muss einen eigenen Stack pflegen

- Hochstufen in der Pipeline wird nicht unterstützt

Hashicorp Terraform

- Terraform

- Anwendungen mit komplexen Infrastrukturkomponenten

- Automatisiert die Bereitstellung von Heroku-Anwendungen

- Ermöglicht, Heroku-Anwendungen als Code bereitzustellen

- Vereinfacht die Verwaltung großer, komplexer Bereitstellungen

- Kann Anwendungen, Private Spaces oder Ressourcen anderer Anbieter in einer wiederholbaren Multi-Provider-Architektur konfigurieren

Heroku Support kann bei komplexeren Bereitstellungen keine Hilfe leisten

Zusammenfassung

Sie kennen jetzt die verschiedenen Bereitstellungsmöglichkeiten. Im weiteren Verlauf dieses Moduls stellen wir Teile der Infrastruktur vor, die für die Ausführung von Anwendungen auf Heroku verwendet wird.

Ressourcen 

Lernen Sie weiter kostenlos!
Registrieren Sie sich für einen Account, um fortzufahren.
Was ist für Sie drin?
  • Holen Sie sich personalisierte Empfehlungen für Ihre Karriereplanung
  • Erproben Sie Ihre Fähigkeiten mithilfe praktischer Aufgaben und Quizze
  • Verfolgen Sie Ihre Fortschritte nach und teilen Sie sie mit Arbeitgebern
  • Nutzen Sie Mentoren und Karrierechancen