Harveg-DEVops / Wiki

Informationen zu der Architektur und Hintergrundinformationen der Jättruppe
0 stars 0 forks source link

SW Architektur für digitalproduction #16

Open Harveg opened 3 years ago

Harveg commented 3 years ago

Unserer ursprünglichen Idee einer Plattform für die Analyse und Steuerung im Pflanzeananbau welche sich flexibel für jedes Projekt und Budget einsetzen lässt werden wir nur gerecht, wenn wir die SW Architektur auch modular und sehr ressourcenoptimiert aufbauen. Das bedeutet, die bis anhin genutzte Linux Distribution mit Openhabian mit den Config-Files und zusätzlichen Modulen welche über die Console konfiguriert werden müssen, reicht hier nicht mehr aus. Es sollte möglich sein eine Instanz mittels zentralem Konfigurator welcher aktuell für das Studio angedacht ist, zu projektiert und wir diese Projektierung auch ohne grössere Aufwände anpassen können. Nun gibt es ja dafür Container und Kubernetes welche das alles orchestriert. Doch das ganze kommt mit zusätzlicher Komplexität und ist nicht gerade ressourcenschonend. Nun gibt es folgendes Projekt, welches Kubernetes für IoT Anwendungen fit machen soll: https://github.com/k3s-io/k3s Wie würde eine Architektur damit wohl aussehen und wie könnte man ein Projekt mit ein paar Eingaben abwickeln?..

Harveg commented 3 years ago

Erkenntnisse aus crash kurs: Kubernetes ist viel zu kompliziert. Die Lösung welche wir brauchen muss keinen Fernzugriff haben jedoch sollte ein Update / Upgrade durch eine physische aktion am controller möglich sein. Dies kann z. B. ein externer Datenträger (USB Stick) sein, womit dann der Controller in ein Update Modus wechselt. Das update umfasst ein update der wichtigsten linux und docker pakete sowie die Container selbst auf dem Gerät gemäss dem docker-compose file welches sich auf dem externen Datenträger befindet. Somit sollte es möglich sein die Container neu zu starten mit den aktuellen Vorlagen aus dem docker-compose file. All dies sollte vorgängig auch auf einem Testsystem 1:1 durchfürbar sein und es wird eine Internetverbindung vorausgesetzt. Bei einem Fehler sollte die bestehenden container wieder starten. Ist dieses Vorgehen in einer produktiven Umgebung akzeptabel? Wie muss ein entsprechendes Script gebaut werden welches auf dem linux läuft und in den update modus wechselt sobald der externe Datenträger eingesteckt wird? Ist es ein grosser Aufwand den process auf den externen Datenträger zu loggen?