Ahoi, Kaptain Blueshoe
Kubernetes (K8s) ist ein Open-Source-System, das dafür da ist, das Ausführen von Containern, wie beispielsweise die von Docker, zu verwalten. Es ist quasi eine Art Orchestrierungssystem, das bei der schnelleren Verwaltung, Testung, Skalierung und Bereitstellung von Softwareanwendungen hilft. Eine Kubernetes-Architektur basiert auf automatisierten Prozessen und besteht aus Containern, Clustern, Pods und Nodes.
Ganz oben in der Hierarchie stehen die Container, die Anwendungen und die Software-Umgebung beinhalten. Sogenannte Pods versammeln alle Container, die für eine Anwendung zusammenarbeiten. Die Pods wiederum laufen auf Nodes, virtuellen oder realen Maschinen. Als Cluster bezeichnet man bei Kubernetes mehrere zusammengehörige Nodes.
Docker hilft dabei, Softwareanwendungen in jeder Umgebung bereitzustellen und skalieren zu können. Die Software wird mitsamt Bibliotheken, Code und Systemtools in standardisierte Einheiten verpackt. Diese Einheiten werden als Container bezeichnet. Mithilfe der Docker-Container können Anwendungen schneller erstellt und getestet werden.
Container wie die von Docker sind das Fundament für die Erstellung moderner Softwareanwendungen und -plattformen. Dadurch, dass die Docker-Technologie auf Microservices basiert, kann effizienter, granularer und kontrollierbarer entwickelt werden. Ein großer Vorteil für kosteneffiziente Softwareentwicklung.
Mit Docker kann man eine Softwareanwendung in verschiedene Container verteilen und ausführen. Mit Kubernetes Development greift der Entwickler auf diese Docker-Container zu und orchestriert diese durch automatisierte Prozesse. Ohne Container würde Kubernetes nicht funktionieren. Deshalb gehen Docker und Kubernetes für unsere Entwickler Hand in Hand.
Wir bei Blueshoe sind zu dem Entschluss gekommen, dass es durchaus Sinn macht, unabhängige Services in separaten Containern zu deployen und von Kubernetes orchestrieren zu lassen. Bei fast allen unseren Projekten arbeiten mehrere Programmierer an verschiedenen Services. Da ist eine Entwicklung mit Docker und Kubernetes absolut ideal.
Wir setzen dabei auf k3d als lokalen Kubernetes-Cluster sowie PyCharm als unsere Entwicklungsumgebung. Außerdem nutzen wir Helm für das Management des Clusters sowie Telepresence um live Code-Reloading zu bewerkstelligen.
Hier findest du eine Auswahl an Projekten, die wir mit Docker und Kubernetes umgesetzt haben. Gerne erzählen wir dir dazu noch mehr!