Das Cloud-Technologie vorherrschend ist, kann keiner mehr leugnen. Es gibt aber auch weiterhin Bedenken “alle Daten” einem Cloud-Provider anzuvertrauen. Deshalb stellt sich die Frage wie Cloud-Technologie kostengünstig direkt beim Kunden implementiert werden kann (Private-Cloud). Ist damit ein großer Overhead verbunden? Was sind die Kosten für entsprechende Hardware? Kosten für die Inbetriebnahme der Software? Kosten für die Administration? Um konkrete Antworten auf diese Fragen zu bekommen, muss man ein solches System bauen. Wie wählt man die einzelnen Komponenten? Wie sammelt man möglichst viel Erfahrung?
Im Zentrum der Cloud-Technologie steht Kubernetes als Verwalter von Linux Container. Container, bieten die Möglichkeit Applikationen als Microservices zu betreiben, unabhängig davon mit welcher Technologie die Applikation erstellt wurde. Das bietet die Möglichkeit auf eine breite Palette an bereits existierenden Applikationen zurückgreifen zu können und diese in einer automatisch gemanagten Umgebung laufen zu lassen.
Für die Evaluierung wurde eine möglichst leistungsschwache Hardware gewählt, denn wenn es damit zufriedenstellend funktioniert ist die Softwarelösung effizient und leistungsstark. Konkret wurde ein Raspberry Pi 4 mit 8GB RAM, auf 2,2 GHz hochgetaktet, mit überdimensionierter passiver Kühlung, und SSD via USB3 ausgewählt.
Als Kubernetes Distribution wird k3s verwendet, als “Betriebssystem” k3os. Nach einigen Versuchen mit manuell erstellten Images für den Raspberry Pi tauchte auch ein entsprechender Imagegenerator auf (siehe Github Link). Damit ist es nun relativ einfach möglich ein k3os Image für den Raspberry Pi zu erstellen und damit ein Kubernetes Cluster rasch zu installieren und zu betreiben, sogar auf einen Raspberry Pi.
Als “Applikation” kamen zwei Versionen eines Minecraft Servers zum Einsatz (Java Applikation). Ein Display zeigt die momentane Auslastung an. Ein tägliches Backup auf einem USB-Stick ist auch implementiert. Gemanagt wird es via k9s oder dem Kubernetes Plugin von einer der Entwicklungsumgebungen von IntelliJ (ein Bild der Hardware und Screenshots der Managementprogramme sind im obigen Bild “verarbeitet”).
Schnell war klar, dass dies alles auch für Kundenprojekte wichtig ist und es folgte eine Implementierung mit dem IMS auf Basis virtueller Maschinen. Ob auf dedizierter Hardware, in einer virtuellen Maschine oder doch in der Cloud gemanagt, die hier beschriebenen Technologien ermöglichen rasch und kosteneffizient eine komplexe Mikroservice Architektur aufzubauen. Auch mit Hardware wie dem Raspberry Pi können damit redundante ausfallsichere Cluster realisiert werden, direkt dort wo Daten anfallen am “Edge”.