haraldtoeper

Docker für meine Idee der Architektur sinnvoll?

Hallo zusammen,

ich bin auf der Suche nach einer geeigneten Technologie für das ausrollen und betreiben eines Ansteuerungs (AS)- und Bildverarbeitungstools (BV) in Python.

Zu dem Thema ist mir die Idee eines Containers gekommen. Seit kurzer Zeit beschäftige ich deswegen mit docker und kubernetes.

Mein Wunschziel:

- AS und BV sollen unabhängig voneinander sein ( vertikale Architektur) jedoch soll AS hin und wieder BV Methoden nutzen

- Die Befehle dafür sollen von einem Tool außerhalb getriggert werden.
Bsp. Steuer mit Menü XY an und führe eine Bildanalyse durch.
Bsp2. Steuer das Menü an.
Bsp3. ist ein spezielles Logo auf dem Hintergrund zu erkennen.

- es kann auf beliebig vielen (aktuell ca. 10-15) Rechnern laufen, ohne großen Aufwand von Anpassungen

-CI CD ist damit möglich

- soll nur auf Windows laufen
Jetzt zu meinen Fragen:

- Ist das oben beschriebene Wunschziel mit docker möglich?
- Ist die Komplexität der Orchestrierung für docker schon zu komplex? (Kubernetes stattdessen)
- was könnten auf den ersten Blick für Seiteneffekte entstehen?
- gibt es unter Umständen bessere Technologien für mein Wunschziel? ( Wenn ja, welche?)

Ich danke jeden im voraus für Hilfe face-smile

Vielen Dank und viele Grüße
Harry face-smile
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 674093

Url: https://administrator.de/forum/docker-python-container-ansteuerung-674093.html

Ausgedruckt am: 31.07.2025 um 09:07 Uhr

HaraldToeper
HaraldToeper 30.07.2025 um 15:44:43 Uhr
Noch als Info. Es werden an den Zielrechnern verschiedene devices angesteuert
firefly
firefly 30.07.2025 aktualisiert um 18:43:36 Uhr
Ich habe deine Frage noch nicht ganz verstanden. Was machen denn die Ansteuerungs-(AS)- und Bildverarbeitungstools (BV) in Python genau? Ok, sie steuern verschiedene Geräte an. Hat jeder Zielrechner das gleiche Device?

Ein Automatisierungssystem also.

Aber wie genau? Sollen das eigenständige Container sein, auf die zugegriffen wird? Benötigt man ein gemeinsames Speichersystem oder nur eines auf dem jeweiligen Rechner? Wohin mit dem Ergebnis? Wie kommunizieren AS und BV? Per API? Um das System zu verstehen, bräuchte man schon ein paar mehr Details. Wie ist die Ressourcenaufteilung generell?

Für die Skalierung gäbe es mehrere Optionen: Kubernetes, Docker Swarm, Load Balancer oder auch Cloud-Services.

Wenn die Systeme Python nutzen, warum dann unter Windows? Bei Python denke ich eher an Linux als an Windows. Gibt es dafür einen bestimmten Hintergrund? Windows Container haben Limitierungen und normalerweise keinen Desktop-Zugriff. Gerne würde ich helfen, ich kenne mich auch mit Docker aus. Aber ohne Details kann man deine Frage nicht wirklich beantworten.

Gruß
firefly
HaraldToeper
HaraldToeper 31.07.2025 um 09:26:32 Uhr
Hallo firefly,

danke dir für die Antwort auf meine Fragen face-smile

Ich gebe dir recht, ich habe hier nur über mein Wunschbild geredet, ohne das System zu beleuchten.

Was machen denn die Ansteuerungs-(AS)- und Bildverarbeitungstools (BV) in Python genau?
Aber wie genau?
Es handelt sich um eine Testautomatisierungssystem, das in Python implementiert worden ist.
Wir möchten mit den jeweiligen APIs (AS, BV) in den Devices bestimmte Menüs ansteuern, um zu überprüfen, ob das System funktioniert, wie es funktionieren soll.
Teile davon sind auf Android-Basis (Ansteuerung über ADB-Befehle) und andere Teile wiederum bestehen nur aus Bildern (daher BV-Analysen)

Ein Tool (TL) (müssen wir so verwenden, da es eine Vorgabe ist) (für uns ein Client) sendet eine AS-oder BV-Anfrage an die jeweilige API und sendet das Ergebnis zurück. Das Ergebnis wird vom Tool erfasst. Wir senden zum Schluss nur ein Logfile mit dem ganzen Test

Kurzer gewünschter Workflow:*
PRÜFUNG DER VERFÜGBARKEIT:
TL sendet eine Anfrage, die Instanzen von AS und BV erzeugen
--> Response (False: Instanzen sind nicht in Ordnung; True: Instanzen sind in Ordnung)
Hintergrund: Wir schalten uns auf das Device per ADB und in manchen Fällen kommt das nicht zu Stande (Kabel locker, oder der gleichen)

TESTFALL/FÄLLE:
TL sendet eine Anfrage: Bitte gehe mir in das Menü und überprüfe, ob folgender Button vorhanden ist.
--> Response (False: Nein, nicht vorhanden; True: Ja, vorhanden)

TESTENDE:
TL sendet Anfrage: Instanzen zerstören, da Testsuite beendet ist.

AKTUELLES SYSTEM:
Im Prinzip wie der gewünschte Workflow.
Wir laufen aktuell so, dass wir an jedem Rechner einen lokalen Server starten (Installation an jedem Rechner separat)
TL sendet auf den Lokalen Server die Anfragen.

Ich bin auch offen für neue Anregungen, die vielleicht besser geeignet sind. face-smile

Die Beantwortung deiner Fragen:

Hat jeder Zielrechner das gleiche Device?
Ja, es handelt sich dabei immer um das gleiche Device, nur mit verschiedenen SW Ständen.

Sollen das eigenständige Container sein, auf die zugegriffen wird?
Meine Idee wäre es zwei unabhängige Container für die jeweilige API zu erzeugen (Aber da kenne ich mich noch nicht wirklich aus). Beide Container sollen aber miteinander kommunizieren können. Von der Mechanik wäre im Prinzip, dass jeder Container ein Server wäre (ist das nötig, oder?)

Benötigt man ein gemeinsames Speichersystem oder nur eines auf dem jeweiligen Rechner?
Nur auf den jeweiligen Rechnern.

Wohin mit dem Ergebnis?
In dem Tool (oben beschrieben), dass das Ergebnis in eine Datenbank speichert.

Wie kommunizieren AS und BV? Per API?
Per API

Wie ist die Ressourcenaufteilung generell?
Was meinst du mit dieser Frage speziell? Das Testautomatisierungssystem ist eher (Speicherplatz-)Ressourcenarm.

Wenn die Systeme Python nutzen, warum dann unter Windows? Bei Python denke ich eher an Linux als an Windows. Gibt es dafür einen bestimmten Hintergrund?
Damit wollte ich sagen, dass die Zielrechner alle unter Windows laufen. Ich wollte damit keinen Bezug zu docker aufbauen. Meine Vermutung war, dass es sich vielleicht auf docker auswirken kann, aber wie das in docker konfiguriert wird ist dabei vollkommen offen.

Für die Skalierung gäbe es mehrere Optionen: Kubernetes, Docker Swarm, Load Balancer oder auch Cloud-Services.
Würde es auch (zumindest für den Anfang) auch möglich sein, ein Docker Image an den jeweiligen Rechnern auszurollen und damit zu kommunizieren, oder übersehe ich da etwas? Birgt die Idee u.U. Probleme?

Wenn du noch mehr Infos benötigst, dann melde dich bitte face-smile

Danke dir recht herzlich und viele Grüße
Harry