Erstellen einer Heroku Pipeline und Ausführen von Review Apps
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Beschreiben der Möglichkeiten für Pipelines
- Nennen einiger Vorteile von Review Apps
Pipeline-Phasen
Jede Anwendung in einer Pipeline stellt einen dieser Schritte in einem Continuous Delivery-Workflow dar: Überprüfung, Entwicklung, Staging und Produktion.
Mit den folgenden zwei Phasen sind die meisten Entwickler vertraut:
-
Staging: In der Staging-Phase werden Änderungen in einer produktionsähnlichen Umgebung getestet, bevor sie in der Produktion bereitgestellt werden.
-
Produktion: Anwendungen in der Produktionsumgebung stehen den Endbenutzern zur Verfügung.
Zusätzlich zu diesen beiden Phasen verwenden Entwickler in der Regel mindestens eine weitere Phase, um einzelne Codeänderungen und Pull Requests einfacher zu überprüfen. Für diese Tests verwenden die meisten eine der folgenden Phasen:
-
Review Apps: Diese Option ist nur verfügbar, wenn Sie die GitHub-Integration verwenden und die Funktion "Review Apps" für die Pipeline aktivieren. Ein Entwickler überträgt seine Änderungen per Push, um eine temporäre, freigebbare Anwendung zu erstellen, mit der eine bestimmte Pull Request getestet werden kann. Ohne diese Funktion können Entwickler stattdessen Änderungen per Push in die Phase "Entwicklung" übertragen, um sie für andere freizugeben.
-
Entwicklung: Ein Entwickler nimmt Codeänderungen auf seinem lokalen Rechner vor und testet sie auch dort. Der Entwickler kann diesen Code optional per Push in die Phase "Entwicklung" einer Pipeline auf Heroku verschieben, um ihn für andere freizugeben.
Die einzelnen Phasen einer Pipeline können mehrere Anwendungen enthalten. Sie können beispielsweise zwei Produktionsanwendungen mit derselben Codebasis haben, die jedoch in verschiedenen Regionen bereitgestellt werden, um die Latenz zu verringern.
Informationen dazu, wie Sie eine Pipeline erstellen und Anwendungen zu ihr hinzufügen, finden Sie im Heroku Dev Center unter Pipelines.
Aktivieren und Verwenden von Review Apps
Wenn sich Ihr Code in GitHub befindet, können Sie sich mit Ihrem Repository verbinden und "Review Apps" für Ihre Pipeline aktivieren. Sie können dann wählen, ob jedes Mal, wenn jemand eine neue Pull Request öffnet, eine temporäre Testanwendung manuell oder automatisch gestartet werden soll. Review Apps werden beim Schließen einer Pull Request automatisch gelöscht. Sie können außerdem festlegen, wann inaktive Anwendungen gelöscht werden sollen, um Ihre Nutzung weiter zu reduzieren. Anweisungen und Kosten im Zusammenhang mit dieser Funktion finden Sie im Heroku Dev Center.
Review Apps verwenden eine app.json
-Datei zum Einrichten Ihrer Anwendungen. Fügen Sie diese Datei zu Ihrem Code hinzu, bevor Sie Review Apps aktivieren. Weitere Einzelheiten dazu finden Sie im Abschnitt "Konfiguration" und unter "app.json Schema" im Heroku Dev Center.
Da die app.json
-Datei in Ihrem Code auf GitHub enthalten ist, dürfen Sie keine Konfigurationsvariablenwerte hinzufügen, die geheim bleiben sollen. Legen Sie solche Werte stattdessen als Konfigurationsvariablen auf der Registerkarte Settings der Pipeline fest.
Wie alle Heroku-Anwendungen verfügt jede Review App über einen eigenen URL, den Sie in Ihren Browser eingeben können, um die Anwendung anzuzeigen. Sie können auch auf der Pipeline-Seite neben der Review App auf Open app in browser klicken, um eine schnelle Vorschau Ihrer Änderungen anzuzeigen. Sie können beim Einrichten Ihrer Review Apps ein zufälliges oder vorhersehbares URL-Muster festlegen. Bei einem vorhersehbaren URL verwendet Heroku das von Ihnen gewählte Präfix und die Pull Request-Nummer, die Sie in Ihrer Anwendung erstellen. Wenn Sie beispielsweise das Präfix Beispiel-Präfix
wählen, wird beim Öffnen der Pull Request mit der Nummer 123 eine Review App mit dem URL Beispiel-Präfix-pr123.herokuapp.com
erstellt.
Aktivieren von Heroku CI
Herokus native CI-Funktion kann für jede Pipeline aktiviert werden. Für Dynos und Add-Ons, die bei CI-Testläufen verwendet werden, entstehen Zusatzkosten.
Für die GitHub-Integration ist die Verwendung von Heroku CI erforderlich. Verbinden Sie Ihre Pipeline mit Ihrem Repository und aktivieren Sie Heroku CI auf der Registerkarte Settings.
Konfigurieren Sie Ihre Heroku CI-Umgebung, indem Sie ein app.json
-Manifest zum Stammverzeichnis Ihres Repositorys hinzufügen. Bei CI-Testläufen haben alle Schlüssel, die in der test
-Umgebung dieser Datei definiert sind, Vorrang gegenüber entsprechenden Schlüsseln in der Basiskonfiguration Ihrer Anwendung.
Einrichten automatischer Bereitstellungen in der Staging-Phase
Bei Continuous Delivery wird jede Änderung per Push in die Staging-Phase übertragen. Aktivieren Sie automatische Bereitstellungen in Ihrer Staging-Anwendung, damit dieser Schritt automatisch ausgeführt wird, sobald Code mit einem bestimmten Branch zusammengeführt wird.
Wenn Sie die GitHub-Integration verwenden, können Sie automatische Bereitstellungen in der Registerkarte Bereitstellen der Anwendung einrichten. Wenn Sie Heroku CI verwenden, können Sie hier konfigurieren, dass automatische Bereitstellungen nur erfolgen, wenn Heroku CI erfolgreich ausgeführt wurde. Weitere Informationen finden Sie unter GitHub-Integration.
Hochstufen aus der Staging- in die Produktionsumgebung
Wir empfehlen, nur Anwendungen mit zustandslosen Builds durch Hochstufen in der Pipeline bereitzustellen. Slugs sind komprimierte, vorgepackte Kopien Ihrer Anwendung. Beim Hochstufen in die Produktion kopiert Heroku das Slug aus der Staging-Umgebung, ohne Änderungen daran vorzunehmen. Es wird kein neues Build für die Produktion erstellt. Bei Builds, die Werte für Konfigurationsvariablen in das Slug kompilieren, kann das Hochstufen zu Problemen führen. Verwenden Sie für Anwendungen mit zustandsbezogenen Builds stattdessen Herokus standardmäßige Git-basierte Bereitstellung oder GitHub-Bereitstellungen.
Die Seite "Pipelines" hilft Ihnen, den Fortschritt Ihrer Anwendungen zusammen mit Meta-Informationen über den Status jeder Phase zu visualisieren. Beispielsweise können Sie sehen, ob Ihre Produktionsanwendung einen anderen Code ausführt als in der Staging-Phase. Klicken Sie bei der Staging-Anwendung, die Sie hochstufen möchten, auf Promote to production.
Sie wissen jetzt, wie man mit Anwendungen in einer Pipeline arbeitet. Als Nächstes befassen wir uns mit der Release Phase und der Funktionsweise von Releases.
Ressourcen
-
Heroku Dev Center: Pipelines
-
Heroku Dev Center: GitHub-Integration
-
Heroku Dev Center: Review Apps
-
Heroku Dev Center: Heroku CI