Logo Parasoft Rechercher

Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »

Blog Parasoft

Comment utiliser un outil de virtualisation de service gratuit et le mettre à l'échelle dans un déploiement DevOps complet

By Parasoft • 12 juillet 2023 • 11 min de lecture
12 juillet 2023 | 11 min de lecture
By Parasoft
Texte à gauche : comment utiliser un outil de virtualisation de service gratuit et le mettre à l'échelle dans un déploiement DevOps complet. L'image de droite montre deux développeurs utilisant l'outil de virtualisation de service.

La virtualisation des services est généralement utilisée pour connecter des applications qui s'appuient sur le cloud, l'architecture SOA ou l'API de tiers. Découvrez comment transformer un outil de virtualisation de service gratuit en une implémentation DevOps complète en lisant cet article de blog.

La meilleure façon d' intégrer la virtualisation des services à votre organisation est de procéder par étapes. Utilisez-la là où elle est la plus pertinente pour réduire le coût total des tests et maîtriser votre processus d'automatisation des tests grâce à un flux de travail DevOps entièrement automatisé.

Prenons une analogie. Lorsque vous décidez d'adopter un mode de vie sain, vous faites peut-être des recherches et tombez sur des conseils comme : « Arrêtez de boire de l'alcool ! Mangez du chou kale ! Couchez-vous à 20 h ! Marchez 8 km par jour ! » S'il peut sembler logique d'adopter toutes ces activités pour un mode de vie sain, si vous essayez de tout faire en même temps, vous échouerez probablement. Il faut plutôt procéder étape par étape. Ajoutez un peu d'exercice ici. Faites un choix alimentaire sain là. Progressez petit à petit jusqu'à adopter des habitudes saines comme un pro.

La virtualisation des services ne fait pas exception. J'ai accompagné de nombreux clients au fil des ans dans l'adoption de cet outil DevOps précieux. La plupart des organisations privilégient une approche radicale : déployer immédiatement une solution complète, couvrant plusieurs équipes et déjà intégrée à leur pipeline de livraison continue.

Bien que tous ces éléments soient essentiels pour exploiter pleinement le retour sur investissement potentiel de la virtualisation des services , si vous essayez de tout mettre en œuvre dès le premier jour, vous risquez de ne pas pouvoir déployer efficacement votre infrastructure DevOps à grande échelle. Alors, comment y parvenir ?

Dans cet article, je vais vous raconter l'histoire d'une personne, depuis l'obtention de sa licence gratuite de virtualisation de services jusqu'au déploiement complet de cette solution au sein de son organisation , intégrée à leur processus DevOps. Ce récit est inspiré d'une histoire vraie, mais par souci d'anonymat, nous l'appellerons Sally.

Étape 1 : Commencez avec Parasoft Virtualize gratuitement pour augmenter l'efficacité

Graphique de Sally, le développeur, dirigeant la mise en œuvre de la virtualisation des services à l'aide de Parasoft Virtualize

Rencontrez Sally le développeur. Sally est intelligente et capable de se développer à un rythme beaucoup plus rapide que ses collègues. Elle a commencé à utiliser des simulations pour s'isoler pendant la phase de test, mais passait beaucoup de temps à développer le type de logique dont elle avait besoin pour intégrer ces systèmes, car les applications réelles qu'elle supprimait étaient complexes.

Elle a donc découvert comment la virtualisation de services permettait de créer un service virtuel plus complexe en un temps remarquablement court. Elle a téléchargé la version gratuite de Parasoft Virtualize pour bénéficier gratuitement de la virtualisation de services, ce qui lui a permis de créer des services virtualisés et de les modifier facilement en fonction des changements apportés aux services originaux. Ainsi, elle a pu effectuer tous ses tests et développements dans un environnement totalement isolé.

Étape 2 : Activer l'adoption au-delà de la barrière d'entrée d'équipe

Alors qu'elle discutait de ces avantages avec certains de ses collègues, ils souhaitaient eux aussi tirer parti des services qu'elle avait créés, car il s'agissait de services communs entre les différents développeurs. Ils pouvaient simplement diriger leurs applications vers la machine de Sally et en récolter les bénéfices.

Ils ont également obtenu une virtualisation de service gratuite avec Parasoft Virtualize et ont commencé à créer de nouveaux services, à ajuster ces services et à consommer ces services à partir de leurs postes de travail gratuits. L'équipe a fait des progrès significatifs dans le développement et les tests car elle a pu réduire de nombreux goulots d'étranglement qui étaient présents dans l'environnement. L'équipe est devenue populaire pour son agilité et a obtenu tous les meilleurs projets.

Étape 3 : Libérez tout le potentiel de Parasoft Virtualize

La direction a contacté l'équipe de Sally. Elle s'intéressait à la solution de virtualisation de services utilisée par l'équipe pour accélérer le développement et les tests des applications. Elle souhaitait discuter de son application concrète dans un environnement plus vaste. Des interruptions de service dans les environnements d'intégration et de production, dues à des applications obsolètes, avaient suscité des inquiétudes. Ces applications reposaient sur plusieurs bases de données Oracle, un bus de services d'entreprise (ESB) complexe et un mainframe.

Ces systèmes étaient difficiles à tester pour plusieurs raisons. Sally et son équipe ont pu démontrer qu'il était facile de simuler les services sous-jacents à l'ESB, car il s'agissait de services REST et SOAP basiques, ainsi que de quelques services JMS et MQ avec du XML développé en interne. Pour gérer le matériel existant, ils ont dû optimiser leur environnement de virtualisation de services et sont donc passés à la version complète de Parasoft Virtualize.

Image de trois développeurs près d'ordinateurs portables discutant de la facilité de mise en œuvre de la virtualisation des services.À ce stade, ils ont pu facilement appliquer la virtualisation des services pour les différents défis présents dans les cas d'utilisation décrits par la direction. Il a fallu quelques jours pour s'assurer que les services virtuels satisfaisaient tous les différents cas d'utilisation, mais ils ont pu débloquer tous les défis qu'ils rencontraient dans ces environnements. Ce fut l'un des tournants clés du mouvement de virtualisation des services dans l'organisation de Sally, car ils ont pu tirer parti de l'expertise de l'équipe de Sally en matière de virtualisation des services de base pour relever des défis plus complexes qui avaient des coûts réels associés.

Étape 4 : Déployez un serveur virtualisé pour une disponibilité et une disponibilité optimisées

Au fur et à mesure que l'équipe devenait plus populaire, il est devenu évident qu'elle devait étendre son déploiement. Si l'un des membres de l'équipe devait éteindre la machine ou partir en vacances, cela affecterait les utilisateurs accédant aux services virtuels. Sally a décidé qu'il était temps de mettre à niveau à nouveau leur architecture de déploiement et ils ont acheté un serveur intermédiaire de virtualisation.Image montrant trois membres de l'équipe de développement combinant leurs efforts pour un écosystème de test simulé complet en connectant leurs systèmes individuels à un serveur.

Cela a permis à chaque membre de l'équipe de combiner leurs efforts pour un écosystème de test simulé complet. Le serveur était toujours allumé et agissait comme une bibliothèque d'artefacts virtuels. Il était connecté au contrôle de source, de sorte que différentes versions des services étaient déployées sur le serveur, elles seraient automatiquement archivées. Cela a permis à l'équipe d'avoir un point de vérité central pour tous les actifs virtuels. Personne n'avait à deviner où se trouvait la version la plus récente.

L'équipe a travaillé sans relâche pendant plusieurs mois pour relever des défis importants et significatifs pour l'organisation. Elle s'est ensuite agrandie avec quelques membres supplémentaires. Pour accroître sa visibilité et sa notoriété, et augmenter son budget, Sally a mis en place le programme « Hoo-Rah ».

Chaque fois que l'équipe créait un projet avec un retour sur investissement quantifiable, elle suivait les gains et envoyait un courriel public expliquant ce qu'elle avait accompli et quelles équipes en avaient bénéficié. Voici quelques exemples de ces encouragements :

  • L'équipe a simulé les services SOAP de stormtrooper et la table d'extension dans la base de données principale d'Oracle et a activé un processus automatisé pour fournir et tester les 111 combinaisons du service de paiement. Cette augmentation du débit de test et l'exécution automatisée des tests leur ont permis d'économiser 27,950 XNUMX $ pour un cycle de projet.
  • L'équipe a pu simplifier une initiative de migration vers le cloud en simulant des services qui n'étaient pas prêts à être déplacés vers le cloud. Cela a permis à la transformation de se produire deux semaines avant la date prévue, car ils ont pu effectuer une validation par phases et continuer à fonctionner même s'il manquait des pièces. Cela leur a permis d'économiser 45,875 XNUMX $ en heures de travail pour le projet.
  • L'équipe a géré de manière proactive un changement de service tiers en créant une représentation virtuelle du nouveau service, offrant un accès au développement/test 2 à 6 semaines plus tôt. Cette gestion du changement a réduit les temps d'arrêt imprévus associés aux services tiers (environ 30 %) pour une économie de programme de 27,146 XNUMX $.
  • L'équipe a simulé le service de recherche de membres sur le Mainframe qui fournissait des membres uniques lors de l'appel de comptes, simplifiant considérablement les exigences de test pour le flux de processus. Les équipes contrôlent désormais les données du mainframe et de la base de données, et elles peuvent insérer tout type de comportement qu'elles recherchent. Cela devrait réduire considérablement 15,000 XNUMX heures d'interruptions non planifiées dues au middleware.
  • L'équipe a simulé le service de recherche de membres sur l'ordinateur central qui fournissait des membres uniques lors de l'appel de comptes, simplifiant considérablement les exigences de test pour le flux de processus. Les équipes avaient désormais le contrôle des données du mainframe et de la base de données, et elles pouvaient insérer tout type de comportement qu'elles recherchaient. Cela devrait réduire considérablement 15,000 XNUMX heures d'interruptions imprévues du middleware.

Ces e-mails « hourra » ont été essentiels pour intégrer des équipes supplémentaires et ont aidé les principales parties prenantes de l'entreprise à comprendre l'importance de la virtualisation des services pour le processus d'automatisation des tests.

Tirer profit de la simulation négative

Lors de l'audit d'une application critique, un membre de l'équipe de sécurité a découvert un vecteur d'attaque potentiel dans le système qui pourrait être exploité et entraîner non seulement la fuite de données client sensibles, mais également la non-conformité de l'organisation. Si elle n'est pas corrigée rapidement, l'organisation serait obligée de mettre à jour le comité de conformité et de lancer le processus de sanction.

L'équipe s'est rendu compte que si elle pouvait corriger le défaut dans une fenêtre de temps spécifique, elle pourrait pousser les changements à l'environnement de production et tout irait bien. Le défi était que, pour réussir à reproduire le problème, ils devaient mettre bon nombre de leurs systèmes de paiement tiers dans un état où ils renvoyaient diverses conditions d'erreur et divulguaient intentionnellement des PII ou des données client.

L'équipe n'avait pas la capacité de forcer ces systèmes, qui étaient hors de leur contrôle, dans l'état dont ils avaient besoin pour exposer le défaut et valider les correctifs qu'ils allaient mettre en place. Sally a été appelée au milieu de la soirée et a demandé d'aller travailler.

L'équipe a rapidement réutilisé les services virtuels existants qu'elle avait créés pour ces systèmes de paiement tiers et les a mis dans un état où ils commenceraient à renvoyer un comportement négatif. Comme l'application n'avait pas besoin d'être redéployée, ils pouvaient simplement modifier le comportement au fur et à mesure que les développeurs apportaient leurs modifications et éliminer toutes les différentes combinaisons qui menaient à l'exploit potentiel. Inutile de dire que l'équipe a réussi à mettre en production un hot patch qui a permis à l'entreprise d'économiser des millions.

Étape 5 : Activer l'évolutivité de la virtualisation des services dans toute l'entreprise

L'équipe de direction a ensuite franchi la prochaine étape importante pour son organisation : la création d'un centre d'excellence dédié à la virtualisation des services qui pourrait être mis à profit pour créer des services virtuels chaque fois que de nouveaux défis se présentent. Sally, bien sûr, était la personne idéale pour diriger l'équipe.

Sally a commencé à créer des processus autour de l'intégration des initiatives de virtualisation et à créer des critères d'acceptation, afin que l'équipe elle-même ne devienne pas un nouveau goulot d'étranglement. La gouvernance est devenue une partie importante de la conversation.

L'équipe a mis en place une série de cinq rôles et responsabilités pour assurer le succès de chaque projet de virtualisation.

  1. Le testeur. Chaque fois que vous créez un service virtuel, vous devez justifier la virtualisation de ce composant. L'équipe recevait souvent des demandes de simulation d'une application non fiable dans l'environnement. Lors de la première conversation avec le demandeur, celui-ci demandait : « Qu'est-ce que vous ne pouvez pas faire ? » Cette question est essentielle, car des critères d'acceptation clairement définis sont nécessaires pour définir ce qui est « terminé » pour une ressource virtuelle. Le testeur joue un rôle essentiel dans ce processus, car il peut définir les cas de test à exécuter avec succès. L'équipe de virtualisation saura alors qu'elle a créé une ressource virtuelle performante.
  2. Le développeur. Les actifs virtuels peuvent être créés avec peu ou pas de compréhension de l'application que vous virtualisez. Mais, afin de créer un service virtuel avec un minimum d'effort, il est utile d'avoir une connaissance du domaine sur l'application que vous simulez. Ainsi, le développeur devient un élément essentiel du processus de création d'actifs virtuels, donnant des explications sur le fonctionnement des services afin que, lorsque les services virtuels sont créés, il y ait une compréhension de la raison pour laquelle ils fonctionnent comme ils le font.
  3. Gestion des données de test. On peut soutenir que de nombreux défis de la virtualisation des services sont en fait des défis de données de test au cœur, de sorte que les équipes de gestion des données de test deviennent importantes lors de la création d'actifs virtuels. La plupart des ressources virtuelles sont créées par enregistrement et lecture. Lorsque les cas de test sont identifiés et que le comportement est convenu, il est important que l'environnement dans lequel vous allez enregistrer dispose des données de test appropriées au moment de l'enregistrement. Ainsi, alors que les équipes de gestion des données de test dans ce cas avaient un rôle minimal dans le processus de virtualisation lui-même, il était crucial de les intégrer au processus avant de créer l'offre initiale.
  4. Opérations. Les services virtuels reproduisent des services réels, donc si vous avez créé le service virtuel correctement, un utilisateur peut ne pas savoir qu'il utilise la simulation. Par conséquent, le service virtuel doit être disponible sur un point de terminaison défini dans l'environnement où se trouve le service réel. Cela peut souvent constituer un obstacle au processus de virtualisation, car de nombreuses personnes n'auront pas accès pour reconfigurer les connexions nécessaires pour faire pointer l'application vers le point de terminaison des services virtuels. Parasoft Virtualize utilise un mécanisme appelé le proxy, qui permet à un service de communiquer via un homme au milieu, que l'équipe de Sally pourrait contrôler. Mais obtenir cet ensemble de connexion initial relevait de la responsabilité de l'équipe des opérations. Identifier la ressource opérationnelle à l'avance et conclure le contrat initial selon lequel cette initiative aurait lieu était le meilleur moyen de s'assurer que, au moment de connecter tous les tuyaux ensemble, l'équipe serait prête et capable de comprendre ce qui se passait.
  5. Direction. Pour que tout projet de virtualisation de services réussisse, la direction doit adhérer. Cela n'a pas été difficile dans le cas de Sally, car ils ont commencé à partir de zéro et avaient prouvé une valeur significative, mais il était important de maintenir l'attention continue de la direction pour le équipe pour fonctionner de manière productive.

La mise en place de ces rôles était essentielle au succès de l'équipe de virtualisation des services, clarifiant les besoins pour assurer le succès des projets de virtualisation. Chaque membre de l'équipe de virtualisation des services disposait du logiciel de bureau Parasoft Virtualize. Ils créeraient les services virtuels sur le bureau, puis les mettraient à la disposition des utilisateurs.

Étape 6 : Collaboration et intégration continue dans le pipeline DevOps

L'équipe du centre d'excellence de virtualisation des services de Sally est devenue populaire auprès des développeurs et des testeurs. Beaucoup ont commencé à demander l'accès à Parasoft Virtualize afin de pouvoir créer leurs propres prototypes et valider des scénarios négatifs et positifs.

Sally avait l'infrastructure pour le prendre en charge, mais elle n'avait pas nécessairement besoin de leur donner le gros marteau qu'était la version de bureau professionnelle. Elle a de nouveau mis à niveau leur infrastructure et a inclus l'interface client léger de Parasoft pour activer pleinement leurs flux de travail DevOps. Ce tableau de bord centralisé donnait accès à n'importe quel utilisateur de l'organisation et lui permettait de créer des services virtuels et des cas de test directement depuis son navigateur.Image montrant un tableau de bord centralisé accessible à toute l'organisation, permettant aux équipes de créer des services virtuels et des cas de test directement depuis leur navigateur.

Cette évolution du déploiement a créé un modèle hybride dans lequel les membres individuels de l'équipe pouvaient agir de manière fédérée, créant leurs propres services virtuels pour leurs besoins, y accédant, les modifiant, etc. Et quand est venu le temps d'intégrer ces services virtuels dans l'architecture plus large, ils disposaient d'un mécanisme pour collaborer avec le centre d'excellence de la virtualisation. L'équipe pourrait ajouter des serveurs supplémentaires pour prendre en charge la charge et intégrer des serveurs de performance lorsque l'équipe de performance s'embarquerait.Image montrant l'équipe de développement avec des serveurs supplémentaires pour prendre en charge la charge et l'enclenchement des serveurs de performance lorsque l'équipe de performance s'est embarquée dans la virtualisation des services.

À ce stade, Sally disposait d'une bibliothèque complète d'actifs virtuels et des cas de tests automatisés correspondants. Elle disposait également d'une bibliothèque de données de test alimentant ces deux artefacts de test. La majeure partie de la création des services était assurée par les équipes individuelles, et l'équipe de Sally était principalement chargée d'orchestrer l'ensemble de ces différents services virtuels au sein d'un « environnement ».

L'environnement n'était en fait qu'un modèle d'actifs virtuels, de cas de test et de données de test intégrés dans une configuration spécifique afin de satisfaire une initiative de test. Ils ont créé bon nombre de ces modèles d'environnement et les ont alignés sur les différentes applications de l'organisation.

Lorsqu'une application nécessitait des tests et que l'environnement réel ne suffisait pas, le centre d'excellence en virtualisation déployait un environnement composé de différents services virtuels , permettant ainsi aux membres de l'équipe d'effectuer leurs tests. Les équipes sont devenues de plus en plus dépendantes des services virtuels pour l'exécution de leurs tests, ce qui a naturellement conduit à l'adoption du pipeline de livraison continue.

Le déploiement final et entièrement réalisé pour la virtualisation des services dans l'organisation de Sally ressemblait à ceci:Image montrant un déploiement entièrement réalisé pour la virtualisation des services. Les membres individuels de l'équipe peuvent créer des services virtuels et des scénarios de test dans leurs navigateurs.

Les membres individuels de l'équipe créeraient les services virtuels et les cas de test dans leurs navigateurs. Si les services virtuels devaient être mis à jour ou si une logique supplémentaire devait être ajoutée, le centre d'excellence de virtualisation s'en chargerait avec ses postes de travail professionnels.

Les services virtuels et les cas de test seraient alors combinés à l'intérieur de l'interface du client léger. Lorsque ces environnements devaient être disponibles, leur système de construction les appelait et les déployait soit dans le cloud, soit sur des serveurs dédiés. Les cas de test automatisés démarreraient alors, les résultats seraient envoyés à leur tableau de bord agrégé et l'environnement dynamique serait détruit.

Accéder à un déploiement de virtualisation entièrement réalisé

Les véritables tests continus rendus possibles par la virtualisation des services ne se font pas du jour au lendemain. Cette histoire est réelle et tout est possible grâce à la virtualisation des services. Mais cela nécessite que l’organisation soit impliquée et reparte de zéro, tout comme Sally l’a fait. D’ailleurs, elle fait désormais partie du conseil d’administration.

Cette approche est le meilleur moyen d'introduire la virtualisation des services dans votre organisation, étape par étape, utilisée là où elle est la plus utile. Le parcours exact de chacun sera différent, mais les résultats finaux devraient être les mêmes :

  • Réduisez le coût total des tests.
  • Obtenez le pouvoir de contrôler votre processus d'automatisation des tests.
Créez des simulations de service fiables et prévisibles avec Parasoft Virtualize
Essayez l'édition gratuite