Martin Helmich über Docker und Kubernetes – Anwendungsentwickler-Podcast #121

Martin Helmich über Docker und Kubernetes – Anwendungsentwickler-Podcast #121

Ein spannendes Interview mit Martin Helmich zum Thema Docker gibt es in der einhunderteinundzwanzigsten Episode des Anwendungsentwickler-Podcasts. Allgemeines zur Person Wie ist dein Name und wo arbeitest du? Martin Helmich von Mittwald.
1 Stunde 9 Minuten

Beschreibung

vor 7 Jahren

Ein spannendes Interview mit Martin Helmich zum Thema Docker gibt
es in der einhunderteinundzwanzigsten Episode des
Anwendungsentwickler-Podcasts.
Allgemeines zur Person

Wie ist dein Name und wo arbeitest du?

Martin Helmich von Mittwald.



An welchen Projekten arbeitest du zur Zeit in deinem
Tagesjob?

Einsatz von Containern in Hosting-Umgebungen.



Wie bist du zur Informatik bzw. Softwareentwicklung gekommen?

Als Kind schon mit dem Programmieren angefangen.



Welche Ausbildung bzw. welches Studium hast du im Bereich der
Informatik absolviert?

Wirtschaftsinformatik (Bachelor) an der PHWT Vechta und
danach Master in Informatik mit Schwerpunkt Mobile
Anwendungen an der Hochschule Osnabrück.



Mit welcher/n Programmiersprache/n arbeitest du im Alltag?

JavaScript (NodeJS), Go, PHP.



Was ist deine Lieblingsprogrammiersprache und warum?

Go, weil sie Vieles besser/einfacher/sicherer macht als
C.



Docker

Was ist Docker?

Eine Software zur Containervirtualisierung.



Warum gibt es aktuell so einen Hype rund um Docker?

Wird viel im Zusammenhang mit DevOps verwendet. Container
sind in aller Munde. Viele Buzzwords, die durch die
Entwicklerszene geistern.



Warum nimmt man nicht einfach die „guten alten“ virtuellen
Maschinen?

Zu aufwändig für einzelne Services/Prozesse. Kleiner und
leichter zu (ver-)teilen (siehe Docker Hub). Bessere
Performance. Einfache Automatisierung.



Was hat das Ganze mit „infrastructure as code“ zu tun?

Bei Docker spricht man eher von „immutable
infrastructure“, also zustandsloser Infrastruktur.



Wozu braucht man in der Praxis Container?

Infrastrukturbetrieb soll einfacher werden. Leicht in die
Breite zu skalieren.



Was ist Kubernetes und wofür braucht man das?

Docker kann nicht selbst clustern usw. Kubernetes oder
Docker Swarm sind Container Orchestrators, die das
übernehmen. Kubernetes ist der de-facto Standard. Die
Orchestrierer abstrahieren von der konkreten Infrastruktur
(Hardware, Netzwerk usw.). Wichtig, wenn Container
untereinander kommunizieren sollen, z.B. Webanwendung mit
Datenbank.



Welche Vorteile bieten mir als Softwareentwickler Container?

Entwicklungs-/Produktionsumgebung exakt nachbauen.
Versionen und Abhängigkeiten exakt nachstellen. Zielumgebung
für Deplyoment kann durch Entwickler vorgegeben werden. Spart
Zeit und gibt Sicherheit beim Deployment. Fehler können
besser nachgestellt werden. Verhindert das „Works on my
machine“-Syndrom.



Ist der Einsatz von Docker auch auf auf Windows möglich?

Man kann Linux-Container unter Windows starten. Man kann
auch Windows-Container starten.



Wie (einfach) aktualisiert man vorhandene Container (z.B. bei
Betriebssystemupdates)?

Ein Container soll sich eigentlich nicht mehr ändern.
Images können auf Basis neuer Images neu gebaut werden. Das
Basisimage ist z.B. Ubuntu und nur die Unterschiede werden in
den darüberliegenden Containern gespeichert. Docker ist sehr
intelligent, wenn es um das Ermitteln der Deltas geht.



Gibt es Programmiersprachen oder -umgebungen, die sich
besonders gut zum Einsatz in Containern eignen?

Eigentlich geht alles.



Für welche Applikationen/Unternehmen eignet sich der Einsatz
von Containern besonders gut? Nur für Webanwendungen?

Das Schreiben von Daten geht nicht und muss auf externe
Speicher umgeleitet werden. Am besten fährt man den Container
hoch und fasst ihn nie wieder an. Es gibt auch
Kommandozeilentools, die als Container verpackt werden und
z.B. ein komplettes Java mit allen Abhängigkeiten mitbringen.



Wofür setzt du konkret Docker ein? Welche Vorteile hast du
dadurch?

Aufbau einer Containerlandschaft z.B. für
TYPO3-/Wordpress-Hosting. Automatisierung dieser
Infrastruktur mit Kubernetes und Erweiterung von Kubernetes
um eigene Funktionen.



Wo speichern die Datenbanken ihre Daten?

Extern gemountete Partitionen können persistenten
Speicher bereitstellen. Netzwerk-Storages werden auch von
Kubernetes angeboten und sind transparent durch Kubernetes
vom konkreten Dateisystem abstrahiert.



Gibt es deiner Erfahrung nach auch Probleme/Nachteile beim
Einsatz von Docker?

Netzwerkspeicher und Datenbanken können umziehen.
(IP-)Adressen ändern sich. Zustandslosigkeit der Services ist
Voraussetzung. Das interne Netzwerk führt ggfs. zu Latenzen.
Traffic von außen in das Containernetzwerk zu bekommen und
Load Balancer einzurichten könnte schwierig sein. Initial ist
es ein hoher Aufwand, die Infrastruktur ans Laufen zu
bekommen. Es gibt aber z.B. Minikube als Startprojekt oder
man startet direkt in der Cloud, z.B. mit AWS oder Azure.



Ist die Architektur der Anwendung betroffen? Was hat Docker
z.B. mit Microservices/DDD zu tun?

Das Dateisystem kann wechseln, IP-Adressen ändern sich,
root-Rechte sollten nicht erforderlich sein. Microservices
passen gut in Container, aber das Umgekehrte gilt nicht
zwingend.



Gibt es Alternativen zu Docker?

rkt, LXC, LXD. Aber Docker ist der Platzhirsch.



Aus- und Weiterbildung

Bildest du selbst Entwickler-Nachwuchs aus und wenn ja, wie
ist das Vorgehen?

Nein, ich arbeite eher bei innerbetrieblichen
Fortbildungen mit. Wir haben z.B. ein Barcamp bei Mittwald
durchgeführt. Außerdem nehme ich an Konferenzen teil.



Was ist dein absolutes Lieblingsbuch mit Bezug zur
IT/Programmierung und warum?

The Clean Coder* von Uncle Bob.
*



Wie bildest du dich selbst weiter?

Einfach anfangen! Z.B. ein Tutorial durcharbeiten. Ich
bin eher „hands on“, Bücher funktionieren bei mir nicht so
gut.



Mehr über Martin und Mittwald

Wo können die Hörer mehr über dich erfahren bzw. dich
kontaktieren?

Auf meiner Website oder bei GitHub.

Mehr über Mittwald gibt es auf der Website und der
speziellen Karriereseite.



Links

Permalink zu dieser Podcast-Episode

RSS-Feed des Podcasts

Kommentare (0)

Lade Inhalte...

Abonnenten

15
15