Webinaire en vedette : MISRA C++ 2023 : tout ce que vous devez savoir | Voir le séminaire

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

Logo cube Parasoft 300x300
12 juillet 2023
11 min lire

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 de introduisez la virtualisation des services dans votre organisation est étape par étape. Utilisez-le là où il est le plus utile pour réduire le coût total des tests et obtenir le pouvoir de contrôler votre processus d'automatisation des tests avec un flux de travail DevOps entièrement automatisé.

Utilisons une analogie. Lorsque vous décidez qu'il est temps d'adopter un mode de vie sain, vous pouvez faire des recherches et vous retrouver avec des conseils comme « Stop boire de l'alcool! Commencez à manger du chou ! Couchez-vous à 8 heures ! Marchez cinq milles tous les jours ! Bien qu'il puisse être logique d'embrasser toutes ces activités pour adopter un mode de vie sain, si vous essayez de les adopter toutes en même temps, vous échouerez probablement. Au lieu de cela, vous devez procéder étape par étape. Ajoutez un exercice supplémentaire ici. Faites-y un choix alimentaire sain. Montez lentement à un niveau où vous pouvez développer des habitudes saines comme un pro.

Virtualisation des services n'est pas différent. Au fil des ans, j'ai aidé de nombreux clients à adopter ce précieux catalyseur DevOps. La plupart des organisations souhaitent adopter l'approche du big bang : apporter immédiatement une solution entièrement déployée qui s'étend sur plusieurs équipes et est déjà intégrée dans le cadre de leur pipeline de livraison continue.

Bien que toutes ces choses soient essentielles pour réaliser pleinement le ROI potentiel qui dessert la virtualisation peut fournir, si vous essayez de tout faire dès le premier jour, vous ne pourrez probablement pas évoluer efficacement dans votre déploiement DevOps complet. Alors, comment y arrivez-vous?

Dans ce blog, je vais partager juste cela. Nous allons suivre une personne, de sa licence unique de virtualisation de service gratuite jusqu'au déploiement complet de la virtualisation de service de son organisation, intégrée à son flux de travail DevOps. Ceci est basé sur une histoire vraie, mais par souci d'anonymat, nous allons appeler cette personne 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.

Ainsi, elle a appris comment la virtualisation des services pouvait créer un service virtuel plus compliqué en un temps sensiblement court. Elle a téléchargé le version gratuite de Parasoft Virtualize obtenir gratuitement la virtualisation des services, ce qui lui a permis de commencer à créer des services virtualisés et de les modifier facilement au fur et à mesure que les services réels subissaient des changements. En conséquence, elle a pu effectuer tous ses tests et développements dans un environnement complètement 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 approché l'équipe de Sally. Ils étaient curieux de la solution de virtualisation des services que l'équipe utilisait pour les aider à créer et à tester les applications plus rapidement. Ils voulaient avoir une discussion sur son application pratique dans un environnement plus large. Il y avait eu un certain buzz autour des pannes dans les environnements d'intégration et de production causées par les applications héritées. Les applications reposaient sur une série de bases de données Oracle, un ESB complexe et un ordinateur central.

Ces systèmes étaient difficiles à tester pour une série de raisons. Sally et son équipe ont pu montrer qu'il était facile de simuler les services derrière l'ESB, car il s'agissait de services REST et SOAP de base et de quelques JMS et MQ avec XML développé en interne. Pour s'attaquer au matériel hérité, ils avaient besoin de suralimenter leur bureau de virtualisation de services, ils ont donc mis à niveau vers la version complète de  Parasoft Virtualiser.

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 joyeusement travaillé pendant plusieurs mois pour résoudre des défis importants et significatifs pour l'organisation. Il s'agrandit avec quelques membres supplémentaires. Pour augmenter la visibilité et la notoriété de l'équipe et augmenter la taille de son budget, Sally a mis en place le programme « Hoo-Rah ».

Chaque fois que l'équipe construisait quelque chose avec un retour sur investissement quantifiable, elle gardait une trace des gains et envoyait un e-mail public expliquant ce qu'elle avait fait et quelles équipes en avaient bénéficié. Des exemples de ces « hoo-rah » étaient :

  • 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 « hoo-rah » étaient 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 avoir une raison de virtualiser le composant particulier. Très souvent, l'équipe recevait des demandes pour simuler une application non fiable dans l'environnement. Lors de la première conversation avec le demandeur, ils demandaient : « Qu'est-ce que vous ne pouvez pas faire ? » Cette question est essentielle car vous devez avoir des critères d'acceptation clairement définis afin d'avoir une définition de "fait" pour un actif virtuel. Le testeur devient une partie essentielle de ce processus car il peut définir les cas de test qui doivent être exécutés avec succès et l'équipe de virtualisation saura qu'elle a créé un actif virtuel réussi lorsque cela sera accompli.
  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 de cas de test automatisés correspondants. Elle avait une bibliothèque de données de test alimentant ces deux artefacts de test. La majorité de la création réelle de services était effectuée par les équipes individuelles, et l'équipe de Sally était principalement responsable de l'orchestration de tous ces différents services virtuels dans 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.

Chaque fois qu'une application devait être testée et que l'environnement réel ne suffisait pas, le centre d'excellence de la virtualisation créait une environnement de différents services virtuels et permettre aux membres de l'équipe de tester. Les équipes sont devenues de plus en plus dépendantes des services virtuels dans le cadre de l'exécution de leurs tests, et il s'agissait d'une transition naturelle vers le 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é

Vrai tests continus activés par la virtualisation des services n'est pas quelque chose qui arrive du jour au lendemain. Cette histoire est réelle et tout est possible avec la virtualisation des services. Mais cela nécessite que l'organisation soit mise en place et commence à partir de zéro, tout comme Sally l'a fait. Au fait, elle fait maintenant 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