okalinichenko - Fotolia
Comment utiliser OpenStack Tempest pour tester mes déploiements
OpenStack est une suite de plusieurs services et composants différents. Tempest permet de les tester pour savoir si tout fonctionne correctement.
OpenStack Tempest est un outil qui permet aux développeurs et aux utilisateurs de tester la plateforme Cloud Open Source, en tenant compte de ses spécificités.
Avec une architecture par composants, tester OpenStack implique d’effectuer des tests à différents niveaux. Pour cela, Tempest propose trois modèles différents, chacun avec ses propres règles et bonnes pratiques : API, Scenario et Unit.
Le test portant sur les APIs vise surtout les développeurs. Il est conçu pour tester le fonctionnement des interfaces de programmation de la plateforme. Le test Scenario, quant à lui, cible davantage les tests complexes avec des parcours définis dans OpenStack qui impliquent plusieurs composants de la plateforme. Il garantit ainsi que ceux-ci sont bien intégrés et fonctionnent de pair. Enfin, Unit est en fait une procédure de test de Tempest en lui-même. Il va vérifier que l’outil fonctionne normalement.
Pour chacun de ces tests, OpenStack Tempest fournit un client dédié qui permet de se passer des clients Python pour OpenStack. Cela permet donc à l’outil de proposer des fonctions indispensables aux tests, mais qui ne sont pas inclus dans le client Python classique – à commencer par la collecte de données.
Tester des workflows OpenStack spécifiques
Des trois tests, Scenario est celui le plus à même de séduire les administrateurs OpenStack. Il leur permet de tester un workflow OpenStack caractéristique, comme par exemple les différentes étapes nécessaires au déploiement d’une machine virtuelle. Le processus implique d’uploader une image (glance), de déployer une instance à partir de cette image, de se connecter à l’invité et de créer un snapshot de la VM.
OpenStack Tempest apporte ainsi un framework pour créer facilement ce genre de tests. Toutefois, il convient, en amont, de définir clairement le périmètre des tests en question.
L’exemple ci-dessus porte sur une procédure facile à appliquer dans un test, car les composants OpenStack qui entrent en jeu sont clairement identifiés et leurs interactions spécifiées. Mais les choses peuvent se compliquer s’il s’agit, par exemple, de mettre en place des tests pour savoir si un datacenter est pleinement opérationnel. Cette forme de test sera difficile à mettre en place avec Tempest car les composants impliqués ne sont pas identifiés.