TrafficLight's avatar
TrafficLight

Nov. 18, 2023

1
Zweck der Docker-Containertechnik

Ich möchte meine Erkenntnis über die Anwendung der Docker-Containertechnik vertiefen, durch diese hoffentlich verständliche Auseinandersetzung in leichter Sprache, auf Deutsch — auch für Leute, die sich für die Informatik nie interessiert haben. Ich versuche mich den Einsatz von Docker beizubringen, um an Open-Source-Projekten zu beteiligen, wie die Entwicklung von LangCorrect.

Tag 1 soll es darum gehen: Wofür braucht man überhaupt Docker?

Das konsistente Verhalten eines Computerprogramms erfordert auch eine konsistente Umgebung, in der das Programm ausgeführt wird. Das sind z.B. ein Betriebssystem mit bestimmten Fähigkeiten, oder die richtige Kombination von Abhängigkeiten (Programme, von welchen das Hauptprogramm abhängen). Für Großprogramme kann dieser Bedarf umso kritischer sein, da sie üblicherweise mehr Abhängigkeiten haben. Diese Konsistenz ist notwendig für sowohl die gemeinsame Entwicklung des Programms zwischen mehrere Entwickler:innen, als auch für deren Einsatz von einer breiten Kundenbasis. Deshalb muss man die Umgebungen auf vielfältigen Rechnern für das vorgesehene Programm effektiv vereinheitlichen können. Das erfordert viel Aufwand, umso mehr wenn die Vielfältigkeit der Softwareumgebungen steigt.

Einige unzufriedenstellende Gemeinkosten mit dem traditionalen Weg sind wie folgt:
1. Die Synchronisation der Umgebungen der Entwickler:innen erfolgt höchst manuell.
2. Die Synchronisation der Umgebungen der Nutzer:innen erfolgt höchst manuell.
3. Mehrere Programmen auf demselben Rechner können von verschiedenen Versionen des gleichen Programms abhängen — die sogenannte „dependency hell“, die für viel manuelle Konfiguration und Mühe sorgt.
4. Mehrere Programmen auf demselben Rechner könnten überlappende Dateien widersprüchlich zugreifen. Dann verhält die Programme nicht mehr wie erwartet.

Containertechniken wie Docker bieten eine ressourceneffiziente Separierungsmöglichkeit. Dass heißt, man kann mehrere relativ getrennte Umgebungen auf demselben Rechner laufen. Jede Umgebung stellt sich als ein „Container“ auf dem Hostsystem dar — verschiedene Versionen einer gemeinsamen Abhängigkeit mehrerer Programme, oder gar dieselbe Version, können unberührt separat mit ihrem jeweiligen Hauptprogram in ihren eigenen Containern laufen; virtuelle Dateisysteme werden erstellt, um die Dateien der Umgebungen auch zu separieren (wenn nötig). Die Containerisierungsplattform fungiert quasi als Schnittstelle zwischen das Hostsystem und die jeweilige Umgebung, und ermöglicht die Kommunikation zwischen Umgebungen wenn nötig. Solange die gleiche Containerisierungsplattform für viele Hostsysteme bereitgestellt ist, kann eine auf einem derer laufende Umgebung, auf ein anderes System leicht kopiert werden — hohe Reproduzierbarkeit, mit wenig manueller Konfiguration.

Dadurch werden Gemeinkosten der Entwicklung und des Einsatzes reduziert — weniger Aufwand, bessere Softwarequalität (im Ganzen), und bessere Einsatzbereitschaft der Software.

Corrections

Ich möchte meine Erkenntnis Wissen über die Anwendung der Docker-Containertechnik vertiefen, durch diese hoffentlich verständliche Auseinandersetzung in leichter Sprache, auf Deutsch — auch für Leute, die sich für die Informatik nie interessiert haben.

Ich versuche mich den Einsatz vonr Docker beizubringen, um mich an Open-Source-Projekten zu beteiligen, wie dier Entwicklung von LangCorrect.

Tag 1 soll es darum gehenes geht darum: Wofür braucht man überhaupt Docker?

Das konsistente Verhalten eines Computerprogramms erfordert auch eine konsistente Umgebung, in der das Programm ausgeführt wird.

Das sind z.B. ein Betriebssystem mit bestimmten Fähigkeiten, oder die richtige Kombination von Abhängigkeiten (Programme, von welchdenen das Hauptprogramm abhängent).

Für Großprogramme kann dieser Bedarf umso kritischer sein, da sie üblicherweise mehrviele Abhängigkeiten haben.

Diese Konsistenz ist notwendig für sowohl die gemeinsame Entwicklung des Programms zwischen mehrere Entwickler:innen, als auch für deren Einsatz des Programms von einer breiten Kundenbasis.

Deshalb muss man die Umgebungen auf vielfältigen Rechnern für das vorgesehene Programm effektiv vereinheitlichen können.

Das erfordert viel Aufwand, umso mehr wenn die Vielfältigkeit der Softwareumgebungen steigt.

Einige unzufriedenstellende GemeinkostenNachteile mit dem traditionaellen Weg sind wie folgt:
1.

Die Synchronisation der Umgebungen der Entwickler:innen erfolgt höchst manuell.

Die Synchronisation der Umgebungen der Nutzer:innen erfolgt höchst manuell.

Mehrere Programmen auf demselben Rechner können von verschiedenen Versionen des gleichen Programms abhängen — die sogenannte „dependency hell“, die für viel manuelle Konfiguration und Mühe sorgt.

Mehrere Programmen auf demselben Rechner könnten auf überlappende Dateien widersprüchlich zugreifen.

Dann verhäalten sich die Programme nicht mehr wie erwartet.

Containertechniken wie Docker bieten eine ressourceneffiziente Separierungsmöglichkeit.

Dass heißt, man kann mehrere relativ getrennte Umgebungen auf demselben Rechner laufen lassen.

Jede Umgebung istellt sich als ein „Container“ auf dem Hostsystem dar — verschiedene Versionen einer gemeinsamen Abhängigkeit mehrerer Programme, oder gar dieselbe Version, können unberührt separat mit ihrem jeweiligen Hauptprogram in ihren eigenen Containern laufen; virtuelle Dateisysteme werden erstellt, um die Dateien der Umgebungen auch zu separieren (wenn nötig).

Die Containerisierungsplattform fungiert quasi als Schnittstelle zwischen dasem Hostsystem und dier jeweiligen Umgebung, und ermöglicht die Kommunikation zwischen Umgebungen wenn nötig.

Solange die gleiche Containerisierungsplattform für viele Hostsysteme bereitgestellt istwird, kann eine auf einem derer laufende Umgebung, leicht auf ein anderes System leicht kopiert werden — hohe Reproduzierbarkeit, mit wenig manueller Konfiguration.

Dadurch werden GemeinkostenNachteile der Entwicklung und des Einsatzes reduziert — weniger Aufwand, bessere Softwarequalität (im Ganzen), und bessere Einsatzbereitschaft der Software.

TrafficLight's avatar
TrafficLight

Nov. 19, 2023

1

Dankeschön für die ausführliche Korrektur!

Zweck der Docker-Containertechnik


Ich möchte meine Erkenntnis über die Anwendung der Docker-Containertechnik vertiefen, durch diese hoffentlich verständliche Auseinandersetzung in leichter Sprache, auf Deutsch — auch für Leute, die sich für die Informatik nie interessiert haben.


Ich möchte meine Erkenntnis Wissen über die Anwendung der Docker-Containertechnik vertiefen, durch diese hoffentlich verständliche Auseinandersetzung in leichter Sprache, auf Deutsch — auch für Leute, die sich für die Informatik nie interessiert haben.

Ich versuche mich den Einsatz von Docker beizubringen, um an Open-Source-Projekten zu beteiligen, wie die Entwicklung von LangCorrect.


Ich versuche mich den Einsatz vonr Docker beizubringen, um mich an Open-Source-Projekten zu beteiligen, wie dier Entwicklung von LangCorrect.

Tag 1 soll es darum gehen: Wofür braucht man überhaupt Docker?


Tag 1 soll es darum gehenes geht darum: Wofür braucht man überhaupt Docker?

Das konsistente Verhalten eines Computerprogramms erfordert auch eine konsistente Umgebung, in der das Programm ausgeführt wird.


This sentence has been marked as perfect!

Das sind z.B. ein Betriebssystem mit bestimmten Fähigkeiten, oder die richtige Kombination von Abhängigkeiten (Programme, von welchen das Hauptprogramm abhängen).


Das sind z.B. ein Betriebssystem mit bestimmten Fähigkeiten, oder die richtige Kombination von Abhängigkeiten (Programme, von welchdenen das Hauptprogramm abhängent).

Für Großprogramme kann dieser Bedarf umso kritischer sein, da sie üblicherweise mehr Abhängigkeiten haben.


Für Großprogramme kann dieser Bedarf umso kritischer sein, da sie üblicherweise mehrviele Abhängigkeiten haben.

Diese Konsistenz ist notwendig für sowohl die gemeinsame Entwicklung des Programms zwischen mehrere Entwickler:innen, als auch für deren Einsatz von einer breiten Kundenbasis.


Diese Konsistenz ist notwendig für sowohl die gemeinsame Entwicklung des Programms zwischen mehrere Entwickler:innen, als auch für deren Einsatz des Programms von einer breiten Kundenbasis.

Deshalb muss man die Umgebungen auf vielfältigen Rechnern für das vorgesehene Programm effektiv vereinheitlichen können.


This sentence has been marked as perfect!

Das erfordert viel Aufwand, umso mehr wenn die Vielfältigkeit der Softwareumgebungen steigt.


This sentence has been marked as perfect!

Einige unzufriedenstellende Gemeinkosten mit dem traditionalen Weg sind wie folgt: 1.


Einige unzufriedenstellende GemeinkostenNachteile mit dem traditionaellen Weg sind wie folgt:
1.

Die Synchronisation der Umgebungen der Entwickler:innen erfolgt höchst manuell.


Die Synchronisation der Umgebungen der Entwickler:innen erfolgt höchst manuell.

2.


Die Synchronisation der Umgebungen der Nutzer:innen erfolgt höchst manuell.


Die Synchronisation der Umgebungen der Nutzer:innen erfolgt höchst manuell.

3.


Mehrere Programmen auf demselben Rechner können von verschiedenen Versionen des gleichen Programms abhängen — die sogenannte „dependency hell“, die für viel manuelle Konfiguration und Mühe sorgt.


Mehrere Programmen auf demselben Rechner können von verschiedenen Versionen des gleichen Programms abhängen — die sogenannte „dependency hell“, die für viel manuelle Konfiguration und Mühe sorgt.

4.


Mehrere Programmen auf demselben Rechner könnten überlappende Dateien widersprüchlich zugreifen.


Mehrere Programmen auf demselben Rechner könnten auf überlappende Dateien widersprüchlich zugreifen.

Dann verhält die Programme nicht mehr wie erwartet.


Dann verhäalten sich die Programme nicht mehr wie erwartet.

Containertechniken wie Docker bieten eine ressourceneffiziente Separierungsmöglichkeit.


This sentence has been marked as perfect!

Dass heißt, man kann mehrere relativ getrennte Umgebungen auf demselben Rechner laufen.


Dass heißt, man kann mehrere relativ getrennte Umgebungen auf demselben Rechner laufen lassen.

Jede Umgebung stellt sich als ein „Container“ auf dem Hostsystem dar — verschiedene Versionen einer gemeinsamen Abhängigkeit mehrerer Programme, oder gar dieselbe Version, können unberührt separat mit ihrem jeweiligen Hauptprogram in ihren eigenen Containern laufen; virtuelle Dateisysteme werden erstellt, um die Dateien der Umgebungen auch zu separieren (wenn nötig).


Jede Umgebung istellt sich als ein „Container“ auf dem Hostsystem dar — verschiedene Versionen einer gemeinsamen Abhängigkeit mehrerer Programme, oder gar dieselbe Version, können unberührt separat mit ihrem jeweiligen Hauptprogram in ihren eigenen Containern laufen; virtuelle Dateisysteme werden erstellt, um die Dateien der Umgebungen auch zu separieren (wenn nötig).

Die Containerisierungsplattform fungiert quasi als Schnittstelle zwischen das Hostsystem und die jeweilige Umgebung, und ermöglicht die Kommunikation zwischen Umgebungen wenn nötig.


Die Containerisierungsplattform fungiert quasi als Schnittstelle zwischen dasem Hostsystem und dier jeweiligen Umgebung, und ermöglicht die Kommunikation zwischen Umgebungen wenn nötig.

Solange die gleiche Containerisierungsplattform für viele Hostsysteme bereitgestellt ist, kann eine auf einem derer laufende Umgebung, auf ein anderes System leicht kopiert werden — hohe Reproduzierbarkeit, mit wenig manueller Konfiguration.


Solange die gleiche Containerisierungsplattform für viele Hostsysteme bereitgestellt istwird, kann eine auf einem derer laufende Umgebung, leicht auf ein anderes System leicht kopiert werden — hohe Reproduzierbarkeit, mit wenig manueller Konfiguration.

Dadurch werden Gemeinkosten der Entwicklung und des Einsatzes reduziert — weniger Aufwand, bessere Softwarequalität (im Ganzen), und bessere Einsatzbereitschaft der Software.


Dadurch werden GemeinkostenNachteile der Entwicklung und des Einsatzes reduziert — weniger Aufwand, bessere Softwarequalität (im Ganzen), und bessere Einsatzbereitschaft der Software.

You need LangCorrect Premium to access this feature.

Go Premium