Nov. 18, 2023
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.
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.
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 mein |
Ich versuche mich den Einsatz von Docker beizubringen, um an Open-Source-Projekten zu beteiligen, wie die Entwicklung von LangCorrect. Ich versuche mi |
Tag 1 soll es darum gehen: Wofür braucht man überhaupt Docker? Tag 1 |
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 |
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 |
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 de |
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 |
Die Synchronisation der Umgebungen der Entwickler:innen erfolgt höchst manuell. Die Synchronisation der Umgebungen der Entwickler:innen erfolgt |
2. |
Die Synchronisation der Umgebungen der Nutzer:innen erfolgt höchst manuell. Die Synchronisation der Umgebungen der Nutzer:innen erfolgt |
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 Programme |
4. |
Mehrere Programmen auf demselben Rechner könnten überlappende Dateien widersprüchlich zugreifen. Mehrere Programme |
Dann verhält die Programme nicht mehr wie erwartet. Dann verh |
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 ist |
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 d |
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 |
Dadurch werden Gemeinkosten der Entwicklung und des Einsatzes reduziert — weniger Aufwand, bessere Softwarequalität (im Ganzen), und bessere Einsatzbereitschaft der Software. Dadurch werden |
You need LangCorrect Premium to access this feature.
Go Premium