Beispiele, um eine Spring-Boot-Anwendung in einem Docker-Container zu deployen, gibt es wie Sand am Meer. Aber reicht das auch für einen entspannten Produktionsbetrieb in Kubernetes? Lassen sich Docker und Java so ohne Weiteres kombinieren? Welche Fallen lauern hier? Wie bauen wir verschiedene Umgebungen mit Kubernetes auf? Wie konfigurieren wir unsere Anwendung am besten für diese? Kubernetes macht erst mit Continuous Delivery richtig Spaß, aber wie setzt man das konkret um?
In meinem Vortrag möchte ich all diese und weitere Fragen beantworten. Ich werde erklären, welche JVM Flags für einen sauberen Betrieb mit Docker sinnvoll oder notwendig sind und was das "PID 1 Problem" ist und wie es umgangen werden kann.
Kubernetes braucht für den Betrieb noch einige Zustandsinformationen von unserer Anwendung. Ich zeige, wie wir diese mit Hilfe von Spring Boot bereitstellen können und wie wir unsere Anwendung so konfigurieren, dass wir auch unter "Volllast" ein unterbrechungsfreies Deployment durchführen können. Danach stelle ich eine einfache Lösung für eine Deployment Pipeline via Jenkins und kubectl vor. Als Erweiterung dazu gibt es einen kurzen Ausblick auf das Thema "Git Ops".
Nach dem Vortrag kennt das Publikum die Besonderheiten beim Betrieb von Spring-Boot-Anwendungen in Kubernetes, weiß, welche Fallen hier lauern und wie man diese geschickt umschiffen kann.