Containerisierung mit Docker

Containerisierung mit Docker: Schulung und Training

Voraussetzungen: grundlegende Programmierkenntnisse in R, Python oder einer anderen Sprache, Grundkenntnisse in Git

Dauer: ca. 4 Stunden

 

Als wir angefangen haben Data-Science-Projekte umzusetzen, gab es Container nur in der Logistik. GitHub stand noch in den Startlöchern und RStudio hatte gerade erst begonnen R-Pakete zu unterstützen. Zu dieser Zeit liefen die Anwendungen für unsere Data-Science-Projekte auf eigens eingerichteten Virtuellen Maschinen (VMs) - mitunter bereits unterstützt durch Jenkins als CI/CD-Tool. In diesem Setup hatten wir die gleichen Probleme, wie alle anderen zu dieser Zeit auch. Beispielsweise war die produktive VM immer anders konfiguriert als der Laptop in der Entwicklung, wodurch sich Fehler in der Produktivumgebung nicht ohne weiteres lokal reproduzieren ließen. Oder gemeinsam genutzte R/Python-Versionen von verschiedenen Programmen, zum Beispiel durch Shiny Server Pro, erzeugten unnötige Abhängigkeiten zwischen Anwendungen. Die Liste geht weiter, aber die Lösung war für uns dann die gleiche, wie für eine ganze Industrie: Docker-Container!

Heutzutage sieht unsere IT-Landschaft anders aus: Jedes Data-Science-Projekt hat ein eigenes Docker-Image und Anwendungen können völlig unabhängig voneinander auf der Infrastruktur unserer Kund*innen, oder unserer eigenen, zum Einsatz kommen. Dabei kann es sich um Batch-Prozesse, Shiny-Dashboards, oder REST-APIs handeln. Was wir durch die Verwendung von Docker-Containern gewinnen?

 

  1. Stabilität, denn eine Anwendung verhält sich in der Entwicklungsumgebung genauso wie später in der Produktivumgebung.
  2. Skalierbarkeit, denn die Anzahl von Docker-Containern und ihren Anwendungen können problemlos in einem Cluster angepasst werden.
  3. Unabhängigkeit, denn Anwendungen in Docker-Containern sind isoliert; Änderungen von R- und Python-Paketen können für jeden Container individuell durchgeführt werden.
  4. Reproduzierbarkeit, denn wir können die gleiche Umgebung auf jeder Infrastruktur erzeugen.

Das werden Sie in diesem Training lernen: In unserer Docker-Schulung zeigen wir Ihnen unsere wichtigsten Anwendungsfälle für Docker-Container:

  • Ein Batch-Job in einem Container am Beispiel von R
  • Eine REST-API in einem Container am Beispiel von R und plumber
  • Ein Dashboard in einem Container am Beispiel von R und Shiny
  • Einen Ausblick auf shinyproxy mit Kubernetes als Backend

Zusätzlich vermitteln wir Ihnen einen Überblick über Best-Practices bei der Entwicklung von Containern, so dass sich Ihre Anwendungen möglichst problemlos in Services wie Amazon Web Services ECS und AWS EKS integrieren lassen.