20 juillet 2022

" Comment tester une image créée dans le cloud" ?

AuteurMattia de Filippo
Catégories

Selon le fournisseur de cloud, il existe différentes manières de développer une image. On entend par image un fichier unique contenant une copie complète de la structure et du contenu du système de fichiers d'un support de données. Les distributions de logiciels, telles que les distributions de systèmes d'exploitation ou les supports de données avec des produits préinstallés, peuvent être distribuées via des images.

Dans notre article de blog : "Comment créer une image sur une place de marché en cloud ?", vous trouverez des instructions étape par étape expliquant comment créer une image en cloud.

Après la création d'une telle image, les développeurs sont souvent confrontés à un processus manuel fastidieux pour tester le code créé.
Mais ne serait-il pas plus avantageux de déployer et tester une image en un seul clic ?

La troisième partie de la série de blogs sur les places de marché en cloud est consacrée au thème : "Comment tester une image créée dans le nuage ?

Flux de test - En un seul clic

Pour se passer d'un processus long et fastidieux dans lequel les développeurs effectuent manuellement les tests de leur code, il est possible d'utiliser un pipeline CI/CD. Celui-ci permet d'obtenir un processus de test plus robuste et plus fiable. Dans cette optique, les développeurs doivent être en mesure de déployer et de tester des images en un seul clic. Pour y parvenir, Gitlab CI/CD, Packer, Terraform et des scripts shell peuvent être utilisés.

Avec Packer, une image peut être créée et hébergée chez un fournisseur de cloud. Terraform prend ensuite l'image créée et met à disposition une machine virtuelle avec cette image. Pendant que la machine virtuelle fonctionne, des scripts de test peuvent être exécutés (vérification de l'ouverture d'un port donné, vérification du fonctionnement de la connexion, vérification des fonctionnalités réelles du produit, etc.)

Une fois les scripts de test terminés, Terraform détruit toutes les ressources créées dans le cloud qui ont été mises à disposition pendant les tests.    

Aperçu de toutes les étapes

Étape 1 : Le développeur transfère le code
Étape 2 : Déclenchement de la construction de l'image avec Packer
Étape 3 : Packer crée l'image et renvoie l'ID de l'image (par ex. id = xyz)
Étape 4 : Lancement de la machine virtuelle avec l'ID de l’image = xyz
Etape 5 : Lancement de la machine virtuelle par Terraform et transmission de l'adresse IP de cette machine virtuelle
Etape 6 : Test de la machine virtuelle avec l’IP de l’étape 5
Etape 7 : Enregistrement des résultats du test
Etape 8 : Destruction de la machine virtuelle de test
Étape 9 : La machine virtuelle de test est détruite  

Gitlab CI/CD - Automatisation des processus

Sans GitLab CI/CD, les développeurs commenceraient par créer manuellement une image pour le cloud à l'aide de Packer. Une fois l'image créée et hébergée chez un fournisseur de cloud, le développeur créerait une machine virtuelle basée sur l'image créée. Le processus de création de la machine virtuelle se fait généralement à partir de la console du fournisseur de cloud.

Une fois la machine virtuelle créée, le développeur teste manuellement l'image, par exemple pour vérifier que le site web est accessible depuis le navigateur, que la page de connexion est accessible, que le produit fonctionne réellement, etc. Avec GitLab CI/CD, tous ces processus peuvent être automatisés.

GitLab CI/CD orchestre toute la communication entre packer, Terraform ainsi que les scripts de test tout en assurant le bon ordre d’exécution.

Packer - création de l'image

Dès que le développeur s'engage dans le répertoire GitLab, Packer commence à créer l’image souhaitée. Lorsque le processus de création d'image est terminé, l'image est hébergée chez un fournisseur de cloud. Chaque image a son propre identifiant unique. Il est important que l'identifiant d'une image donnée soit connu de GitLab CI/CD, car c'est avec cet identifiant d'image que l'étape suivante peut être effectuée - le démarrage d'une machine virtuelle en utilisant Terraform.

Terraform - Démarrage de la machine virtuelle

Terraform reçoit en entrée l'identifiant d'image de l'étape précédente. Les développeurs disposent déjà d'une configuration Terraform pour le démarrage des machines virtuelles (il s’agit d’une sorte de modèle qui indique à Terraform quel type de machine virtuelle doit être démarré). Dans la configuration Terraform, on indique où la machine virtuelle doit être lancée (quel réseau, sous-réseau, etc.) et quel type de machine doit être lancé (combien de cœurs de CPU, d'espace disque, de Go de RAM, etc.) Il y a également un paramètre pour l'ID d'image, et cette ID d'image provient de Packer. Sur la base de toutes ces informations (réseau, sous-réseau, espace disque, nombre de cœurs de CPU et ID d'image), Terraformest en mesure de lancer cette machine virtuelle spécifique. Après le démarrage de la machine, l'adresse IP de cette machine est connue de GitLab CI/CD, étant donné qu’avec cette adresse IP, l'étape suivante peut être effectuée, notamment le test de la machine virtuelle.

Test automatique des scripts

Pour tester la machine virtuelle, les scripts de test doivent, entre autres, connaître l'adresse IP de la machine à tester. À l'aide de scripts shell, nous pouvons vérifier la connectivité à l'instance fournie par Terraform et, surtout, les fonctions réelles de l'image que nous avons créée.

Les voies vers le cloud avec les solutions Libelle

Vous souhaitez en savoir plus sur le cloud ? N'hésitez pas à consulter la catégorie de blog correspondante.

Chez Libelle IT Group, nous misons également sur les avantages du cloud et mettons à votre disposition différentes solutions. Utilisez dès maintenant les éditions cloud de Libelle DataMasking (AWS / Microsoft Azure), Libelle SystemCopy (AWS / Microsoft Azure) ou encore Libelle CloudShadow (IBM Cloud).


Articles recommandé
28 septembre 2022 Glossaire informatique de Libelle, partie 17 : Qu'est-ce que l'automatisation des processus informatiques ?

Tous les articles du blog