Veröffentlichung von Geo-Applikation mittels Docker

 

14.09.2022 09:00 – 17:00 Uhr

Zoom-Meeting

Referent:
Dr. Luca Casagrande und Sebastian Frey, M.O.S.S. Computer Grafik Systeme GmbH, Taufkirchen

Preis:
300,- € (Frühbucherrabatt bis 08.08.2022, danach erhöht sich die Teilnehmergebühr auf 345,- €). Mitgliedern des Runden Tisches GIS wird ein Rabatt von 20% gewährt.

Vorkenntnisse: Grundlegende IT-Kenntnisse

Kurzbeschreibung

Docker ist eine Serie von Platform as a Service Werkzeugen, die Virtualisierungsmethoden der Betriebssysteme nutzen, um Software in sogenannten Container isoliert betreiben zu können. Diese Container enthalten dabei alle benötigten Abhängigkeiten, wie zum Beispiel Bibliotheken oder Laufzeitumgebungen, um die bereitgestellte Software betreiben zu können. Daher muss außer der Ausführungsumgebung für den Container – im folgenden Fall die Software Docker – nichts weiter installiert werden. Basis für einen Container ist ein sogenanntes Image, das vom Softwareanbieter bereitgestellt wird.

Der Kurs „Veröffentlichung von Geo-Applikationen mittels Docker“ erläutert und illustriert diese Grundkonzepte. Er ist für Personen geeignet, die bereits über grundlegende IT-Kenntnisse verfügen und denen die Bedienung von Kommandozeilenprogrammen nicht fremd ist. Es werden anhand praxisnaher Beispiele aus dem GIS-Umfeld die allgemeinen Konzepte von Docker zur Bereitstellung, Veröffentlichung, Verwaltung und Orchestrierung von Geo-Applikationen veranschaulicht. Dabei lernen die Kursteilnehmer wie sich bereits existierende Geo-Applikationen in vorhanden Produktionsprozesse einfach integrieren lassen. Beispiele für bereits entwickelte Anwendungen werden mit nützlichen Hinweisen und Tipps veranschaulicht.

Inhalte

Der Prozess der Entwicklung und Veröffentlichung einer neuen Applikation ist mit diversen Herausforderungen verbunden. Dazu gehören zum Beispiel:

  • Die Entwicklungsumgebung sollte der Produktionsumgebung so ähnlich wie möglich sein.
  • Die Applikation sollte möglichst aus kleinen Modulen bestehen, die beim Nutzer auch unabhängig aktualisiert werden können.

Docker ist ein Software-Tool, mit dem diese und andere Herausforderungen im Zusammenhang mit der Veröffentlichung von Softwareanwendungen gelöst werden können.
Docker ist eine Serie von Platform as a Service Werkzeugen, die Virtualisierungsmethoden der Betriebssysteme nutzen, um Software in sogenannten Container isoliert betreiben zu können. Diese Container enthalten dabei alle benötigten Abhängigkeiten, wie zum Beispiel Bibliotheken oder Laufzeitumgebungen, um die bereitgestellte Software betreiben zu können. Daher muss außer der Ausführungsumgebung für den Container – im folgenden Fall die Software Docker – nichts weiter installiert werden. Basis für einen Container ist ein sogenanntes Image, das vom Softwareanbieter bereitgestellt wird.
Im Rahmen der Schulung werden diese beiden Grundbausteine von Docker (Container und Image) an Hand konkreter Beispiele erläutert.
Ein Image repräsentiert die Applikation, einschließlich all ihrer benötigten Abhängigkeiten. Images sind wiederverwertbare Bausteine die sich aus mehreren Ebenen unter Verwendung eines sogenannten Overlay-Filesystems zusammen setzen. Ein Beispiel: Eine Baustein besteht zum Beispiel aus dem Webserver (zum Beispiel Apache) und darauf aufgesetzt ist der nächste Baustein die eigentliche Webapplikation und darauf wiederum aufgesetzt die Konfigurationsdateien der Webapplikationsdatei. Ein solches Image kann dann in einem Repository veröffentlicht werden und so verschiedenen Benutzern zur Verfügung gestellt werden.
Ein Container repräsentiert die Materialisierung eines Images beziehungsweise einer konkreten Applikation. Es ist möglich von einem Image gleichzeitig beliebig viele Container abzuleiten und diese auf demselben Computer parallel auszuführen. Die Kommunikation mit dem Container einer Applikation erfolgt über eine einfache Port-Weiterleitung. Ein Beispiel: Ein Image mit einer Tomcat basierten Webapplikation kann mehrfach in Form eines Containers ausgeführt werden. Jede Container Instanzen stellt dann dieselbe Applikation bereit, jedoch jeweils unter einem anderen Port.
Wie bereits erwähnt, wird ein Docker Container einer Applikation inklusive ihrer Laufzeitbibliotheken und Abhängigkeiten autark und entkoppelt von allen anderen Komponenten eines Systems parallel betrieben. Konfigurationsdateien und Logprotokolle einer solchen Applikation sind allerdings individuell pro Container Instanz zu verwalten. Für diesen Fall bietet Docker die Möglichkeit ein oder mehrere Verzeichnisse des Systems mit ausgewählten Verzeichnissen einer Container Instanz zu synchronisieren. Dadurch ist es beispielsweise möglich, ausgewählte Konfigurationsdateien separat anzupassen oder Logprotokolle bequem zu analysieren
Bei komplexeren Applikationen, die sich aus mehrere Komponenten zusammensetzen, werden die einzelnen Komponenten wie beispielsweise Datenbank, Webserver und Proxy jeweils als eigenes Docker Image abgebildet. Das Zusammensetzen dieser einzelnen Komponenten zu einer einzelnen Gesamt-Applikation wird dann über eine separate Software orchestriert und realisiert.
Vorteil der Container ist, dass sie einen genau definierten Softwarestand beinhalten. Dieser Softwarestand kann aufgrund der Isolation nicht von anderen Installationen oder weiterer Software, die auf dem Hostserver installiert ist, beeinflusst werden. Außerdem wird der Inhalt des Containers bei jedem Neustart auf den Auslieferungszustand, wie er im Image war, zurückgesetzt. Somit können ungewollte Änderungen sehr einfach wieder rückgängig gemacht werden. Dies erlaubt auch den einfachen Wechsel zwischen Versionen der eingesetzten Software, da jede Version in Form eines Images bereitgestellt wird. Den Wechsel zwischen den Versionen stellt damit einfach der Wechsel des zugrundeliegenden Images dar. Es ist keine weitere Installation notwendig. Der Wechsel auf ältere Versionen ist somit auch sehr einfach zu realisieren.
Der Kurs „Veröffentlichung von Geo-Applikationen mittels Docker“ erläutert und illustriert diese Grundkonzepte. Er ist für Personen geeignet, die bereits über grundlegende IT-Kenntnisse verfügen und denen die Bedienung von Kommandozeilenprogrammen nicht fremd ist. Es werden anhand praxisnaher Beispiele aus dem GIS-Umfeld die allgemeinen Konzepte von Docker zur Bereitstellung, Veröffentlichung, Verwaltung und Orchestrierung von Geo-Applikationen veranschaulicht. Dabei lernen die Kursteilnehmer wie sich bereits existierende Geo-Applikationen in vorhanden Produktionsprozesse einfach integrieren lassen. Beispiele für bereits entwickelte Anwendungen werden mit nützlichen Hinweisen und Tipps veranschaulicht.

Lernziele

Das Bereitstellen, Veröffentlichen, Verwalten und Orchestrieren von Geo-Applikationen mittels Docker.

Zielgruppe

Fach- und Systemadministratoren für Geo-Applikationen, Softwareentwickler und Verantwortliche für Deployment von Geo-Applikationen

Zum Überblick