Devops von Docker bis Kubernetes: Wenn der Code läuft, fängt die Arbeit erst an

Wenn unsere Anwendung lokal startet und die ersten Requests beantwortet werden, ist das Ziel erreicht? Falsch gedacht: In der Praxis ist das oft nur der erste Teil, schließlich benötigt unsere Anwendung die passende Infrastruktur. Mehrere Services müssen gleichzeitig laufen, Abhängigkeiten müssen erreichbar sein, Ports dürfen sich nicht überschneiden, und was im Entwicklungsalltag noch gut zu bewältigen ist, wird mit jeder weiteren Komponente in der Cloud komplizierter. In dem Artikel Zeile für Zeile vom Monolithen zu Microservices (g+) haben wir vier Services entwickelt und jeweils in einem eigenen Terminal manuell gestartet. Das funktioniert zwar lokal während der Entwicklung, doch spätestens beim Gedanken an einen Server oder eine produktionsnahe Umgebung stellt sich eine einfache Frage: Wie betreiben wir diese Services zuverlässig? Wie machen wir das in der Cloud?
Genau hier setzt Devops an. Nicht als Sammlung von Tools, sondern als Mindset mit der Maxime: Wer Software baut, übernimmt auch die Verantwortung für deren Betrieb. In diesem Artikel gehen wir auf die praktische Umsetzung dieser Philosophie ein. Wir containerisieren unsere Services mit Docker, orchestrieren sie lokal mit Docker Compose, übertragen das Setup auf Kubernetes und beschreiben die Infrastruktur schließlich deklarativ mit Terraform. Schritt für Schritt, immer entlang des eigenen Codes, vom lokalen Setup bis zur produktionsreifen Umgebung. Der Artikel richtet sich an alle, die verstehen wollen, wie moderne Infrastruktur funktioniert. Nicht abstrakt, sondern im Alltag der Softwareentwicklung.