Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Das Innenleben von Heroku

Lernziele

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

  • Erläutern, was ein Dyno ist
  • Unterscheiden zwischen Sprachen, Buildpacks und Slugs
  • Beschreiben, inwiefern Add-Ons nützlich sind, und Nennen eines Add-Ons, das über den Heroku Elements Marketplace bezogen werden kann
  • Bestimmen eines Heroku CLI-Befehls

Das Innenleben von Heroku

Bisher haben wir nur einen groben Überblick über Heroku verschafft und geklärt, was Heroku ist und wann es am besten verwendet wird. Außerdem haben Sie eine schrittweise Anleitung für die Bereitstellung Ihrer ersten Heroku-Anwendung durchlaufen. Doch was genau ist Heroku? Wie sieht sein Innenleben aus? Sehen wir uns das an.

Im Kern besteht Heroku aus einer Reihe von Tools, die das Bereitstellen und Ausführen benutzerdefinierter Anwendungen so einfach wie möglich machen sollen. Damit wir diese Tools verstehen, müssen wir uns ein bisschen weiter in das Dickicht hineinwagen. In dieser Einheit werden die Bestandteile von Heroku behandelt.

Dynos

Der Code Ihrer Anwendung wird auf der Heroku-Plattform in Strukturen ausgeführt, die wir als "Dynos" bezeichnen. Dynos haben nichts mit Dinosauriern zu tun, wobei dies dem Begriff Testlauf eine ganz neue Bedeutung verleihen würde! Herokus Dynos sind schlicht verwaltete Laufzeit-Container mit einem Linux-Betriebssystem als Grundlage. Diese Container führen die Prozesse aus, die die Ausführung Ihres benutzerdefinierten Anwendungscodes ermöglichen.

Laufzeit-Container??

Lassen Sie sich nicht von den Begriffen einschüchtern! Die Containerisierung ist einfach ein Mechanismus, der dafür sorgt, dass laufende Prozesse voneinander isoliert bleiben. Stellen Sie sich das so vor: Container verhindern, dass sich im Kühlschrank die Erdbeermarmelade mit dem Senf mischt, damit Ihr Frühstücksbrötchen nicht komisch schmeckt. Laufzeit-Container haben dieselbe Aufgabe, nur halten sie Ihren Code und die Konfiguration getrennt. Auf diese Weise behält Ihre Anwendung immer den gewünschten Geschmack.

Container sorgen zudem für die Trennung zwischen zwei oder mehr Dynos, die identische Instanzen Ihrer Anwendung ausführen, Clientanforderungen akzeptieren und Antworten liefern. Selbst wenn eine Anforderung von Dyno A bedient wird und eine andere von Dyno B, merken Ihre Nutzer dabei keinen Unterschied. Sie merken nur, dass Ihre Anwendung ihnen schnell antwortet. Wenn Sie Ihre Anwendung hochskalieren, sodass sie auf mehreren Dynos (oder gar Dutzenden oder Hunderten Dynos) ausgeführt wird, ist dies eine zusätzliche Beruhigung für Sie. Falls mit Ihrem Anwendungscode in einem Dyno etwas schief geht, können die anderen Dynos Ihre Kunden weiterhin bedienen.

Slugs & Buildpacks

Slugs sind komprimierte, vorgepackte Kopien Ihrer Anwendung, die für die Verteilung an den Dyno-Manager optimiert wurden. Beim Hochladen von Code in Heroku wird Ihr Code vom Slug Compiler empfangen, der ihn in ein Slug umwandelt. Das Herzstück des Slug Compilers besteht aus einer Sammlung von Skripten, dem so genannten Buildpack, das unterschiedliche Sprachen verarbeiten kann. Alle in Ruby, Python, Java, Clojure, Node.js, Scala, Go und PHP geschriebenen Anwendungen werden unter Verwendung von Buildpacks implementiert und kompiliert. Beim Skalieren einer Anwendung wird das Slug dann zur Ausführung in einen Dyno heruntergeladen und erweitert.

Benutzerspezifische Buildpacks können zur Unterstützung von Sprachen oder Frameworks eingesetzt werden, die von den offiziell unterstützten Buildpacks von Heroku nicht abgedeckt werden.

Anwendungsverkehrssteuerung: Der Heroku-Router

Der Heroku-Router ist der Schlüssel zu dieser Zauberwelt mit mehreren Dynos. Wenn ein neuer Web-Dyno gestartet wird, registriert sich dieser selbständig beim Router und teilt diesem mit, welche Anwendung im Dyno ausgeführt wird. Nach der Registrierung eines Dynos beginnt der Heroku-Router damit, eingehende Anforderungen an die alle für eine Anwendung verfügbaren Dynos (die Dyno-Formation der Anwendung) zu verteilen. Als Dyno-Formation bezeichnen wir die Größe und Anzahl der Dynos, in denen Ihre Anwendung ausgeführt wird (z. B. eine Formation aus sieben Performance-L-Dynos).

Finden Sie den Heroku-Router auch so faszinierend wie wir? Wenn Sie mehr darüber erfahren möchten, wie der Router funktioniert und was Sie von ihm erwarten können, lesen Sie die Dokumentation zum Thema "Routing" im Heroku Dev Center.

Add-Ons

Add-Ons sind ein weiterer unabdingbarer Bestandteil der Heroku-Plattform. Diese Elemente ermöglichen Ihnen, komplexe Funktionalität zu Ihrer Anwendung hinzuzufügen, ohne die zugrundeliegende Software oder Infrastruktur verwalten zu müssen.

Ein gutes Beispiel für ein nützliches Add-On ist die Heroku Postgres-Datenbank. Postgres ist eine Datenbank für Unternehmen, die schnell und zuverlässig ist und Tonnen von Möglichkeiten bietet. Und das Beste ist: Wenn Sie eine Postgres-Datenbank als Add-On bereitstellen, wird die zugrunde liegende Infrastruktur komplett von Heroku verwaltet.

Zusätzlich zu den verschiedenen, von Heroku verwalteten Add-Ons bieten Drittanbieter Dutzende von Add-Ons an: Datenspeicher, E-Mail-Server, Monitoring-Tools und so ziemlich alles, was Sie sich vorstellen können. Entwickler können Back-End-Funktionalität wie etwa das Senden von E-Mails oder SMS-Nachrichten mit einem schlichten Mausklick hinzufügen. Zu vielen der Add-Ons werden kostenlose Versionen angeboten, die Sie ausprobieren und so lange verwenden können, wie Sie möchten.

Sehen Sie sich die Seite "Heroku Add-ons" im Heroku Elements Marketplace an, um sämtliche Add-Ons zu durchforsten, die Sie in Ihre Heroku Enterprise-Anwendungen einbinden können.