Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Optimisez les AWS images Docker générées par App2Container
Créée par Varun Sharma () AWS
Environnement : PoC ou pilote | Technologies : Conteneurs et microservices ; Modernisation ; DevOps | AWSservices : Amazon ECS |
Récapitulatif
AWSApp2Container est un outil de ligne de commande qui permet de transformer des applications existantes exécutées sur site ou sur des machines virtuelles en conteneurs, sans qu'il soit nécessaire de modifier le code.
En fonction du type d'application, App2Container adopte une approche conservatrice pour identifier les dépendances. En mode processus, tous les fichiers du serveur d'applications sont inclus dans l'image du conteneur. Dans de tels cas, une image assez grande peut être générée.
Ce modèle fournit une approche pour optimiser les images de conteneur générées par App2Container. Il s'applique à toutes les applications Java découvertes par App2Container en mode processus. Le flux de travail défini dans le modèle est conçu pour être exécuté sur le serveur d'applications.
Conditions préalables et limitations
Prérequis
Un AWS compte actif
Application Java exécutée sur un serveur d'applications sur un serveur Linux
App2Container installé et configuré, avec toutes les conditions requises remplies, sur le serveur Linux
Architecture
Pile technologique source
Une application Java exécutée sur un serveur Linux
Pile technologique cible
Une image Docker générée par App2Container
Flux d'architecture cible
Découvrez les applications qui s'exécutent sur le serveur d'applications et analysez-les.
Conteneurisez les applications.
Évaluez la taille de l'image Docker. Si l'image est trop grande, passez à l'étape 4.
Utilisez le script shell (joint) pour identifier les fichiers volumineux.
Mettez à jour les
appSpecificFiles
listesappExcludedFiles
et duanalysis.json
fichier.
Outils
Outils
AWSApp2Container — AWS App2Container (A2C) est un outil en ligne de commande qui vous permet de transférer et de déplacer des applications exécutées dans votre centre de données sur site ou sur des machines virtuelles, afin qu'elles s'exécutent dans des conteneurs gérés par Amazon Elastic Container Service (Amazon) ou Amazon Elastic ECS Kubernetes Service (Amazon). EKS
Code
Le script optimizeImage.sh
shell et un analysis.json
fichier d'exemple sont joints.
Le optimizeImage.sh
fichier est un script utilitaire permettant de consulter le contenu du fichier généré par App2Container. ContainerFiles.tar
L'examen identifie les fichiers ou les sous-répertoires volumineux qui peuvent être exclus. Le script est un wrapper pour la commande tar suivante.
tar -Ptvf <path>|tr -s ' '|cut -d ' ' -f3,6| awk '$2 ~/<filetype>$/'| awk '$2 ~/^<toplevel>/'| cut -f1-<depth> -d'/'|awk '{ if ($1>= <size>) arr[$2]+=$1 } END { for (key in arr) { if(<verbose>) printf("%-50s\t%-50s\n", key, arr[key]) else printf("%s,\n", key) } } '|sort -k2 -nr
Dans la commande tar, le script utilise les valeurs suivantes :
| Le chemin vers |
| Le type de fichier à associer |
| Le répertoire de premier niveau à associer |
| La profondeur du chemin absolu |
| La taille de chaque fichier |
Le script effectue les opérations suivantes :
Il permet
tar -Ptvf
de répertorier les fichiers sans les extraire.Il filtre les fichiers par type de fichier, en commençant par le répertoire de premier niveau.
Sur la base de la profondeur, il génère le chemin absolu sous forme d'indice.
Sur la base de l'index et des magasins, il fournit la taille totale du sous-répertoire.
Elle affiche la taille du sous-répertoire.
Vous pouvez également remplacer les valeurs manuellement dans la commande tar.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Découvrez les applications Java sur site. | Pour découvrir toutes les applications exécutées sur le serveur d'applications, exécutez la commande suivante.
| AWS DevOps |
Analysez les applications découvertes. | Pour analyser chaque application à l'aide de
| AWS DevOps |
Conteneurisez les applications analysées. | Pour conteneuriser une application, exécutez la commande suivante.
La commande génère l'image Docker ainsi qu'un bundle tar dans l'emplacement de l'espace de travail. Si l'image Docker est trop grande, passez à l'étape suivante. | AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Identifiez la taille du fichier tar des artefacts. | Identifiez le
Il s'agit de la taille totale du fichier tar après optimisation. | AWS DevOps |
Répertoriez les sous-répertoires situés sous le répertoire/ainsi que leurs tailles. | Pour identifier les tailles des principaux sous-répertoires du répertoire de
| AWS DevOps |
Identifiez les sous-répertoires volumineux sous le répertoire/. | Pour chaque sous-répertoire principal répertorié dans la commande précédente, identifiez la taille de ses sous-répertoires. Par exemple, utilisez-le
Répétez ce processus pour chaque sous-répertoire répertorié à l'étape précédente (par exemple, | AWS DevOps |
Analysez le dossier volumineux de chaque sous-répertoire du répertoire /. | Pour chaque sous-répertoire répertorié à l'étape précédente, identifiez les dossiers nécessaires à l'exécution de l'application. Par exemple, en utilisant les sous-répertoires de l'étape précédente, listez tous les sous-répertoires du
Pour exclure les sous-répertoires dont l'application n'a pas besoin, ajoutez ces sous-répertoires dans le Un | AWS DevOps |
Identifiez les fichiers nécessaires dans la appExcludes liste. | Pour chaque sous-répertoire ajouté à la appExcludes liste, identifiez les fichiers de ce sous-répertoire requis par l'application. Dans le fichier analysis.json, ajoutez les fichiers ou sous-répertoires spécifiques dans la section ci-dessous. Par exemple, si le | AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Conteneurisez l'application analysée. | Pour conteneuriser l'application, exécutez la commande suivante.
La commande génère l'image Docker ainsi qu'un bundle tar dans l'emplacement de l'espace de travail. | AWS DevOps |
Identifiez la taille du fichier tar des artefacts. | Identifiez le
Il s'agit de la taille totale du fichier tar après optimisation. | AWS DevOps |
Exécutez l'image Docker. | Pour vérifier que l'image démarre sans erreur, exécutez l'image Docker localement à l'aide des commandes suivantes. Pour identifier Pour faire fonctionner le conteneur, utilisez | AWS DevOps |
Ressources connexes
AWSApp2Container — Un nouvel outil de conteneurisation pour Java et. NET
Applications (article de blog)