In diesem Modul erstellen Sie das Container-Image für Ihre monolithische node.js-Anwendung und pushen es zur Amazon Elastic Container Registry. Beginnen Sie mit der Entwicklung

Mit Containern können Sie Code, Konfigurationen und Abhängigkeiten einer Anwendung in einfach zu handhabende Bausteine verpacken, die Umgebungskonsistenz, operative Effizienz, Entwicklerproduktivität und Versionskontrolle bieten. Container ermöglichen es, dass Anwendungen schnell, zuverlässig und konsistent bereitgestellt werden, unabhängig von der Bereitstellungsumgebung.

Geschwindigkeit
Die Aktivierung eines Containers mit einer neuen Version von Code kann ohne nennenswerten Aufwand für die Bereitstellung erfolgen. Die Arbeitsgeschwindigkeit wird verbessert, da Code, der in einem Container auf dem lokalen Rechner eines Entwicklers erstellt wurde, durch einfaches Verschieben des Containers leicht auf einen Testserver verschoben werden kann. Zur Erstellungszeit kann dieser Container mit anderen Containern verknüpft werden, die zur Ausführung des Anwendungsstacks erforderlich sind.
Abhängigkeitskontrolle und verbesserte Pipeline
Ein Docker-Container-Image ist eine Kopie mit dem Code und den Abhängigkeiten einer Anwendung zu einem bestimmten Zeitpunkt. Das ermöglicht es einem Entwicklungsteam, eine Standard-Pipeline für den Anwendungslebenszyklus zu erstellen. Beispiel:
- Die Entwickler erstellen und betreiben den Container vor Ort.
- Der Continuous Integration Server führt den gleichen Container aus und nimmt Integrationstests damit vor, um sicherzustellen, dass er die Erwartungen erfüllt.
- Der gleiche Container wird in eine Staging-Umgebung gesendet, wo sein Laufzeitverhalten mit Lasttests oder manueller QA überprüft werden kann.
- Der gleiche Container wird zur Produktion gesendet.
Die Möglichkeit, genau denselben Container zu erstellen, zu testen, zu senden und durch alle Phasen der Integrations- und Bereitstellungspipeline zu führen, erleichtert die Bereitstellung einer qualitativ hochwertigen, zuverlässigen Anwendung erheblich.
Dichte und Ressourceneffizienz
Container ermöglichen eine verbesserte Ressourceneffizienz, indem mehrere heterogene Prozesse auf einem einzigen System ausgeführt werden können. Die Ressourceneffizienz ist ein natürliches Ergebnis der Isolations- und Zuweisungsmethoden, die Container verwenden. Container können darauf beschränkt werden, bestimmte Mengen an CPU-Leistung und Speicher eines Hosts zu verbrauchen. Wenn Sie wissen, welche Ressourcen ein Container benötigt und welche Ressourcen vom zugrunde liegenden Hostserver zur Verfügung stehen, können Sie die Rechenressourcen, die Sie mit kleineren Hosts verwenden, richtig dimensionieren oder die Dichte der Prozesse, die auf einem einzelnen großen Host laufen, erhöhen, die Verfügbarkeit steigern und den Ressourcenverbrauch optimieren.
Flexibilität
Die Flexibilität der Docker-Container beruht auf der Portierbarkeit, einfachen Bereitstellung und geringen Größe. Im Gegensatz zur Installation und Konfiguration, die bei einer VM erforderlich sind, können die Paketierungsdienste in Containern leicht zwischen Hosts verschoben, vor dem Ausfall anderer benachbarter Dienste isoliert und vor fehlerhaften Patches oder Software-Upgrades auf dem Hostsystem geschützt werden.