In diesem Modul erstellen Sie das Container-Image für Ihre monolithische node.js-Anwendung und schieben es in die Amazon Elastic Container Registry. Die Erstellung beginnen.
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 können gewährleisten, dass Anwendungen schnell, zuverlässig und konsistent bereitgestellt werden, unabhängig von der Bereitstellungsumgebung.
Geschwindigkeit
Das Starten eines Containers mit einer neuen Code-Version kann ohne erheblichen Implementierungsaufwand durchgeführt werden. Die Betriebsgeschwindigkeit wird verbessert, da der in einem Container auf dem lokalen Computer eines Entwicklers erstellte Code durch Verschieben des Containers auf einen Testserver einfach verschoben werden kann. Während der Erstellung kann dieser Container mit anderen Containern verknüpft werden, die zum Ausführen des Anwendungsstapels erforderlich sind.
Abhängigkeitskontrolle und verbesserte Pipeline
Ein Docker-Container-Image ist eine Zeiterfassung des Codes und der Abhängigkeiten einer Anwendung. Dadurch kann ein technisches Unternehmen eine Standardpipeline für den Anwendungslebenszyklus erstellen. Beispiel:
- Entwickler erstellen und führen den Container lokal aus.
- Der Continuous Integration Server führt den gleichen Container aus und führt Integrationstests gegen ihn aus, um die Erwartungen zu erfüllen.
- Der gleiche Container wird an eine Staging-Umgebung geliefert, wo sein Laufzeitverhalten mithilfe von Belastungstests oder manueller QA überprüft werden kann.
- Der gleiche Container wird an die Produktion übergeben.
Das Erstellen, Testen, Übergeben und Ausführen des exakt gleichen Containers über alle Stufen der Integrations- und Bereitstellungspipeline hinweg macht die Bereitstellung einer qualitativ hochwertigen, zuverlässigen Anwendung erheblich einfacher.
Dichte und Ressourceneffizienz
Container ermöglichen eine verbesserte Ressourceneffizienz, da mehrere heterogene Prozesse auf einem einzigen System ausgeführt werden können. Ressourceneffizienz ist ein natürliches Ergebnis der Isolierungs- und Zuordnungstechniken, die Container verwenden. Container können eingeschränkt werden, damit sie nur bestimmte CPU- und Speichermengen eines Hosts verbrauchen. Wenn Sie verstehen, welche Ressourcen ein Container benötigt und welche Ressourcen vom zugrunde liegenden Hostserver verfügbar sind, können Sie die von Ihnen verwendeten Rechenressourcen mit kleineren Hosts richtig dimensionieren oder die Dichte von Prozessen auf einem einzelnen großen Host erhöhen, die Verfügbarkeit erweitern und den Ressourcenverbrauch optimieren.
Flexibilität
Die Flexibilität von Docker-Containern basiert auf deren Portabilität, einfacher Bereitstellung und geringer Größe. Im Gegensatz zur Installation und Konfiguration, die auf einer VM erforderlich ist, können Verpackungsservices innerhalb von Containern einfach zwischen Hosts verschoben, vom Ausfall anderer benachbarter Services isoliert und vor fehlerhaften Patches oder Software-Upgrades auf dem Hostsystem geschützt werden.