Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Der Spring Cloud Netflix Stack Grundkurs

Eine Anwendung für Docker vorbereiten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auf Microservices basierende Anwendungen werden üblicherweise in Form von Docker-Containern betrieben. Lernen Sie in diesem Video alle notwendigen Schritte kennen, um Ihre Gästebuch-Anwendung für Docker vorzubereiten.

Transkript

Eine Applikation zu schreiben, ist leider nur die Hälfte der Wahrheit, wenn man denn so eine Applikation später auch erfolgreich betreiben möchte, denn es fehlt genau dieser zweite Teil, Betrieb der Applikation. Für den Betrieb der Applikation werden üblicherweise Docker-Images bereitgestellt und dann in Docker deployed. Wir werden uns in diesem Video einmal anschauen, welche Schritte wir auf Ebene unserer sechs Projekte gehen müssen, um Docker-Images erstellen zu können. Zunächst einmal sollten wir jedem Projekt ein Dockerfile hinzufügen. Bei den Guestbook-Backend und Guestbook-Frontend-Applikationen gibt es diese Dateien schon, die befinden sich innerhalb von "src" "main" "docker". Wir werden nun einmal dieses Verzeichnis mit dem Dockerfile in jeweils die anderen Projekte auch mit hineinkopieren, damit wir später nur wenig Anpassungsbedarf haben. Das Ganze muss für jedes unserer Projekte geschehen, damit auch alle diese Projekte dann über Docker lauffähig sind. Nun werfen wir zunächst einmal einen Blick auf das Dockerfile des Discovery-Services. Dieses Dockerfile ist ja noch die Version vom Backend, deswegen müssen hier ein paar Änderungen vornehmen, aber bevor wir das tun, sollten wir erst mal verstehen, was in diesem File definiert ist. Zunächst einmal ist das sogenannte Basisimage hier definiert. Dieses Dockerfile basiert auf dem Image mit dem Namen "java" und dem Tag 8 und das steht für Java, Version 8. Das heißt, dieses Image stellt ein Basisimage bereit, das mit JDK 8 schon ausgestattet ist. Es wird ein zusätzliches Laufwerk hinzugefügt mit dem Namen "tmp" und es wird die Applikation unter dem Namen "app.jar" mit in dieses Docker-Image integriert. Das Ganze wird danach noch per "touch" mit dem aktuellen Datum versehen, und dann gibt es hier den "Entrypoint", das ist der Aufruf, der letztlich durchgeführt wird, wenn die Applikation gestartet wird. Die notwendige Änderung, die wir vornehmen müssen, ist den Dateinamen der originalen Datei zu ändern, das ist dann hier nicht mehr "guestbook-backend", sondern "guestbook-discovery". Und analog werden wir dann bei den verschiedenen anderen Dockerfiles ebenfalls die Änderungen vornehmen. Hier wird es "guestbook-hystrix-stream" sein, beim Hystrix-Stream-Projekt. Beim Mail-Projekt lautet der Name des JAR-Archivs "guestbook-mail". Beim Proxy lautet er "guestbook-proxy" und damit haben wir unsere Projekte soweit auf Ebene der Dockerfiles schon fertiggestellt. Wie gesagt, Backend und Frontend waren ja schon vorher entsprechend konfiguriert gewesen. Der nächste Schritt besteht nun darin, auch die "pom.xml"-Dateien anzupassen, damit nämlich der Bildprozess so gestaltet werden kann, dass automatisch ein Docker-Image herausfällt. Zu diesem Zweck öffnen wir einmal die "pom.xml" vom "guestbook-backend"-Projekt, und hier ist ein Plugin drin definiert, mit der GroupID "com.spotify" und das werden wir einfach mal kopieren und die entsprechende Information in die "pom.xml"-Dateien der anderen Projekte mitaufnehmen, und zwar immer in dem Bereich "<build <plugins" unterhalb des "spring-boot-maven-plugins". Das Ganze nehmen wir, wie gesagt, auch für die anderen Projekte vor. Das heißt, für das Hystrix-Stream-Projekt, für das Mail-Projekt und zu guter Letzt auch für das "guestbook-proxy"-Projekt. Nachdem wir dies erledigt haben, können diese Projekte nun, analog zu dem Frontend- und zu dem Backend-Projekt, per Maven schon als Docker-Images bereitgestellt werden. Eine weitere Änderung in der Konfiguration betrifft die "application.properties"-Dateien beziehungsweise "application.yml"-Dateien. Hier haben wir immer den Verweis auf Eureka und Eureka wird immer unter "http://localhost" vermutet. Dies ändern wir, sodass Eureka unter "http://discovery:8761/eureka" vermutet wird. Wir kopieren uns einmal diesen Wert und tragen ihn bei allen Projekten mit Ausnahme des Discovery-Projekts ein, weil das ist ja Eureka selber und Eureka muss sich nicht selber suchen. Das gilt also dann auch für das Frontend-Projekt, auch hier wird die "defaultZone" entsprechend angepasst und wir machen das dann auch bei jedem anderen Projekt analog, das heißt, beim Hystrix-Stream-Projekt, beim Mail-Projekt und auch beim Proxy-Projekt. Hier haben wir eine "application.yml"-Datei, aber der Wert, der dort zu ersetzen ist, ist der selbe. Nachdem wir dies erledigt haben, sind all unsere Applikationen soweit dockerfähig und können in einem Dockerrahmen laufen. Nun müssen wir sie lediglich noch erzeugen und an Docker dann bekanntgeben, dass es diese Applikationen gibt und sie eben entsprechend auch starten. Nachdem Sie die Konfiguration und die Anpassung der Applikationen somit vorgenommen haben, können Sie nun die einzelnen Projekte über die Kommandozeile per Maven bauen lassen. Wir machen das exemplarisch einmal für das Backend-Projekt. Wir wechseln zu diesem Zweck in das Verzeichnis, in dem sich dieses Projekt befindet und führen jetzt hier den Befehl "mvn clean package docker:build" aus. Was macht dieser Befehl? Der nutzt Maven, um zunächst einmal eine eventuell vorhandene Datei zu entfernen, also zu cleanen, danach wird die Applikation, also dieser Microservice, verpackt und zu guter Letzt als Docker-Image bereitgestellt. Voraussetzung dafür ist natürlich, dass Sie Maven, das JDK 8 und Docker auf diesem Rechner installiert haben. Sobald das erledgit ist, können Sie den Bildvorgang starten, das dauert jetzt ein paar Sekunden, eventuell werden auch irgendwelche Abhängigkeiten noch heruntergeladen, es werden gegebenenfalls vorhandene Tests ausgeführt und nach einigen Sekunden, vielleicht nach einigen Minuten, ist der Build-Vorgang dann abgeschlossen. Das ist jetzt hier der Fall. Die Applikation ist erfolgreich erstellt worden und auch erfolgreich als Docker-Image bereitgestellt worden. Nun können wir denselben Vorgang für jede andere Applikation, die sich in diesem Projekt befindet, analog angehen. Das werden wir uns hier jetzt nicht im Detail anschauen, sondern das werden Sie sukzessive, genauso wie ich es tun werde, dann halt von Hand vornehmen müssen. Damit haben wir alle vorbereitenden Arbeiten abgeschlossen, um unsere Applikation dann in Docker bereitzustellen, wir haben die Applikation insofern angepasst, als dass wir überall Dockerfiles eingefügt haben; wir haben den Build-Vorgang angepasst, sodass ein entsprechendes Plugin genutzt werden konnte und zu guter Letzt haben wir die einzelnen Applikationen gebaut und damit die Docker-Images erzeugt.

Der Spring Cloud Netflix Stack Grundkurs

Lernen Sie den Open Source Cloud Stack und seine vielfältigen Einsatzmöglichkeiten kennen.

2 Std. 5 min (13 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:06.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!