Dans ce module, vous allez créer une image de conteneur pour votre application monolithique node.js, puis la transférer dans Amazon Elastic Container Registry. Procéder à la création

Les conteneurs vous permettent de regrouper facilement le code, les configurations et les dépendances d'une application dans des services modulaires simples d'utilisation. Ces derniers assurent la cohérence, l'efficacité des opérations et une meilleure productivité, tout en rendant possible le contrôle de version. Grâce aux conteneurs, les applications se déploient de manière rapide, fiable et constante, quel que soit l'environnement.

Rapidité
En cas de nouveau code, le lancement d'un conteneur n'implique pas d'opérations complexes. Ainsi, les opérations s'accélèrent car ce code, intégré à un conteneur se trouvant sur la machine locale d'un développeur, peut être aisément transféré sur un serveur de test. Lors de sa création, ce conteneur peut être associé aux autres conteneurs nécessaires à l'exécution de la pile d'applications.
Contrôle des dépendances et pipeline optimisé
Une image de conteneur Docker constitue la capture, à un moment précis, du code et des dépendances d'une application. Grâce à elle, il est possible de mettre en place un processus standard. Par exemple :
- Les développeurs créent et exécutent le conteneur localement.
- Le serveur d'intégration continue exécute le même conteneur et le soumet à des tests d'intégration afin de s'assurer qu'il est conforme aux besoins.
- Le conteneur est transféré dans un environnement de simulation où son fonctionnement peut être vérifié à l'aide de tests de charge, ou manuels.
- Le conteneur est envoyé en production.
Le fait de pouvoir créer, tester, transférer et exécuter le même conteneur au cours de chaque étape du pipeline d'intégration et déploiement permet d'obtenir, bien plus facilement, une application fiable et de haute qualité.
Optimisation des ressources et ajustement des processus
Les conteneurs assurent l'optimisation des ressources car ils permettent d'exécuter plusieurs processus distincts au sein d'un seul système. Les méthodes d'isolation et d'attribution qui caractérisent les conteneurs contribuent à cela. Par ailleurs, il est possible d'appliquer certaines restrictions afin que les conteneurs n'exploitent qu'une certaine part de la mémoire et du processeur d'un hôte. Une fois que vous savez de quelles ressources un conteneur a besoin, et lesquelles sont disponibles auprès du serveur hôte sous-jacent, vous pouvez adapter la taille des ressources de calcul que vous exploitez avec des hôtes d'envergure moindre, ou encore augmenter la densité des processus s’exécutant sur un seul hôte de plus large envergure. De cette façon, la disponibilité s'accroît et l'emploi des ressources est adapté au mieux.
Flexibilité
La flexibilité des conteneurs Docker est due à leur portabilité, à la simplicité de leur déploiement et à leur taille réduite. Les services conteneurisés peuvent être déplacés aisément entre les hôtes, sans qu’ils ne soient affectés par les anomalies d'autres services adjacents, ni par l’action inadéquate des correctifs et des mises à niveau du système hôte. Une machine virtuelle requiert quant à elle des opérations d'installation et de configuration.