Comment utiliser un outil de virtualisation de service gratuit et le mettre à l'échelle dans un déploiement DevOps complet
Par Chris Colosimo
6 Avril 2018
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.
Aller à la section
La meilleure façon de introduisez la virtualisation des services dans votre organisation est étape par étape, utilisé là où il est le plus précieux, pour réduire le coût total des tests et obtenir le pouvoir de contrôler véritablement votre processus d'automatisation des tests avec un flux de travail DevOps entièrement automatisé.
Lorsque vous décidez qu'il est temps, disons, de perdre du poids, vous pourriez fais quelques recherches et se retrouver avec des conseils comme "Stop boire de l'alcool! Commencez à manger du chou frisé! Couchez-vous à 8 heures! Marcher 5 miles tous les jours! » Et s'il peut être judicieux d'adopter 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 aller étape par étape: ajoutez un exercice supplémentaire ici, faites un choix sain pour la nourriture là-bas… montez lentement à un niveau où vous pouvez vraiment suivre un régime comme un pro.
La virtualisation des services n'est pas différente. J'ai aidé de nombreux clients au fil des ans adoptez ce précieux catalyseur DevOps, et j'ai constaté que la plupart des organisations souhaitent adopter l'approche du big bang, c'est-à-dire apporter immédiatement une solution entièrement déployée qui s'étend sur plusieurs équipes et est intégrée dans le cadre de leur pipeline de livraison continue. Et bien que, oui, toutes ces choses soient essentielles pour réaliser pleinement le retour sur investissement potentiel que la virtualisation des services peut vous apporter, si vous essayez de faire toutes ces choses dès le premier jour, vous ne pourrez probablement pas évoluer efficacement vers 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 : Une seule version de bureau gratuite de Parasoft Virtualize
Rencontrez Sally la développeur. Sally était intelligente et capable de se développer à un rythme beaucoup plus rapide que ses collègues. Elle avait commencé à utiliser des simulacres pour s'isoler pendant la phase de test, mais elle 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 quelque peu complexes.
Elle a donc appris comment la virtualisation des services pouvait être utilisée pour créer un service virtuel plus complexe en très peu de temps. Elle a téléchargé le version gratuite de Parasoft Virtualize pour obtenir la virtualisation des services gratuitement, 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 étaient en train de changer. En conséquence, elle pouvait faire tous ses tests et développements dans un environnement complètement isolé.
Étape 2 : Plus de membres d'équipe avec des licences de bureau gratuites
Alors qu'elle discutait de ces avantages avec certains de ses collègues, ils voulaient eux aussi tirer parti des services qu'elle avait créés car ils étaient des services communs entre les différents développeurs et ils pouvaient simplement pointer leurs applications vers la machine de Sally et en récolter les bénéfices.
Ils ont donc également obtenu une virtualisation de services 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 en matière de développement et de test, car elle a pu réduire de nombreux goulots d'étranglement présents dans l'environnement. L'équipe est devenue populaire pour son agilité et a obtenu tous les meilleurs projets.
Comment adopter et faire évoluer la virtualisation des services
Étape 3 : Une licence d'entreprise de Parasoft Virtualize pour prendre en charge l'environnement complet
Un jour, l'équipe de Sally a été approchée par la direction, qui était curieuse de connaître la solution de virtualisation de services utilisée par l'équipe et qui les a aidés à 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 ainsi que sur un ESB complexe et un mainframe.
Ces systèmes étaient difficiles à tester pour une série de raisons, et 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 de base REST et SOAP, et quelques JMS et MQ avec XML d'origine. Pour s'attaquer au matériel hérité, ils devaient suralimenter leur bureau de virtualisation de services, ils ont donc mis à niveau vers la version complète de Parasoft Virtualiser.
Étape 4 : Une équipe de virtualisation des services s'attaquant aux principaux défis des tests
L'équipe de direction a ensuite franchi la prochaine étape précieuse pour leur organisation, en créant un centre d'excellence dédié à la virtualisation des services au sein de l'organisation qui pourrait être mis à profit pour créer des services virtuels chaque fois que de nouveaux défis se présenteraient. Sally, bien sûr, était la personne naturelle pour diriger l'équipe.
Sally a commencé à créer des processus autour d'initiatives de virtualisation d'intégration et de création de critères d'acceptation, de sorte que l'équipe elle-même ne soit pas devenue 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 rôles et de responsabilités pour s'assurer que chaque projet de virtualisation a réussi. Il y avait 5 rôles:
- Le testeur. Chaque fois que vous créez un service virtuel, vous devez disposer d'un raison pour virtualiser le composant particulier. Très souvent, l'équipe recevait des demandes pour simuler une application peu fiable dans l'environnement. Lorsqu'ils avaient la conversation initiale avec le demandeur, ils demandaient "Qu'est-ce que vous ne pouvez pas faire?" Cette question était cruciale car vous devez avoir des critères d'acceptation clairement définis afin d'avoir une définition de «terminé» 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.
- Le développeur. Les actifs virtuels peuvent être créés avec peu ou pas de compréhension de l'application que vous virtualisez, mais pour 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 est devenu une partie essentielle du processus de création d'actifs virtuels, en expliquant comment les services fonctionnaient de sorte que lorsque les services virtuels ont été créés, il y avait une compréhension de la raison pour laquelle ils fonctionnaient de cette manière.
- Gestion des données de test. On peut soutenir que de nombreux défis de virtualisation de 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 actifs virtuels sont créés par enregistrement et lecture, donc lorsque les cas de test sont identifiés et que le comportement est convenu, il est important que l'environnement que 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 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.
- Opérations. Les services virtuels répliquent des services réels, donc si vous avez créé le droit de service virtuel, un utilisateur peut ne pas savoir qu'il est en train de faire une simulation. Par conséquent, le service virtuel doit être disponible à un point de terminaison défini dans l'environnement où se trouve le service réel. Cela peut souvent être un obstacle au processus de virtualisation, car de nombreuses personnes n'auront pas accès pour reconfigurer les connexions nécessaires pour pointer l'application vers le point de terminaison des services virtuels. Parasoft Virtualize utilise un mécanisme appelé proxy, qui permet à un service de communiquer via un homme au milieu, qui pourrait être contrôlé par l'équipe de Sally. Mais obtenir cette connexion initiale était la responsabilité de l'équipe des opérations. Identifier la ressource opérationnelle à l'avance et conclure le contrat initial que cette initiative serait mise en place était le meilleur moyen de s'assurer que, lorsque le moment serait venu de connecter tous les tuyaux ensemble, l'équipe serait prête et serait en mesure de comprendre ce qui était Prendre place.
- 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 configuration de ces rôles était essentielle au succès de l'équipe de virtualisation des services, en clarifiant les besoins pour assurer le succès des projets de virtualisation. Chaque membre de l'équipe de virtualisation des services disposait d'un logiciel de bureau Parasoft Virtualize. Ils créeraient les services virtuels sur le bureau et les mettraient ensuite à la disposition des utilisateurs.
Étape 5 : Ajouter un serveur intermédiaire de virtualisation
Au fur et à mesure que l'équipe devenait de plus en plus populaire, il est devenu clair qu'elle devait étendre son déploiement. Si l'un des membres de l'équipe devait arrêter la machine ou partir en vacances, cela affecterait les utilisateurs accédant aux services virtuels. Sally a donc 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.
Cela a permis à chaque membre de l'équipe d'unir ses forces et de partager ses actifs virtuels. Le serveur était «toujours allumé» et agissait comme une bibliothèque d'artefacts virtuelle. Le serveur était connecté au contrôle de code source, de sorte que différentes versions des services étaient déployées sur le serveur, elles étaient automatiquement enregistrées. Cela permettait à l'équipe d'avoir un point de vérité central pour tous les actifs virtuels, et personne n'avait à deviner où se trouvait la version la plus récente.
L'équipe a joyeusement fredonné pendant plusieurs mois en résolvant des défis importants et significatifs pour l'organisation. Il avait grossi et ajouté quelques membres supplémentaires. Afin de renforcer la visibilité et la notoriété de l'équipe (et également d'augmenter la taille de leur budget), Sally avait mis en place le programme «Hoo-Rah». Chaque fois que l'équipe a construit quelque chose avec un retour sur investissement quantifiable, elle a suivi les gains et envoyé un e-mail public expliquant ce qu'elle avait fait et quelles équipes en avaient bénéficié. Voici quelques exemples de ces «hoo-rah»:
- 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 2 semaines avant la date prévue, car ils ont pu faire la validation par phases mais fonctionnent toujours même si des pièces manquaient. 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 3 à 2 semaines plus tôt. Cette gestion des changements a réduit les temps d'arrêt imprévus associés aux services tiers (~ 6%) pour une économie de programme de 3 30 $.
- 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 réussi à simuler 112 services requis pour le scénario de régression d'entrée par clé principale. Cela a permis à l'équipe de déployer les services virtuels autour du service d'entrée par clé et a réduit le besoin d'un environnement de performance physique, économisant à l'organisation 123,654 XNUMX $ en dépenses d'investissement affectées à l'acquisition d'un environnement de performance supplémentaire.
Ces e-mails «hoo-rah» étaient vitaux pour amener des équipes supplémentaires dans le giron, mais ont également 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
Puis, un soir de la fin de l'été, un membre de l'équipe de sécurité effectuait un audit d'une application critique et 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 aussi forcer l'organisation. non conforme. Si elle n'était pas corrigée rapidement, l'organisation serait obligée de mettre à jour le comité de conformité et d'entamer 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 on lui 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 6 : Ajouter un espace de travail collaboratif pour activer l'intégration continue dans le cadre de DevOps
L'équipe du centre d'excellence de virtualisation des services de Sally était maintenant populaire auprès des développeurs et des testeurs, et beaucoup d'entre eux ont commencé à demander l'accès à Parasoft Virtualize eux-mêmes afin de pouvoir créer leurs propres prototypes et valider des scénarios négatifs et positifs. Sally avait l'infrastructure pour la prendre en charge, mais elle n'avait pas nécessairement besoin de leur donner le marteau lourd qui était la version de bureau professionnelle, alors elle a mis à niveau leur infrastructure à nouveau 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 à tous les utilisateurs de l'organisation et leur permettait de créer des services virtuels et des cas de test directement à partir de 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, en créant leurs propres services virtuels pour leurs besoins, en y accédant, en les modifiant, etc. services dans l'architecture plus large, ils disposaient d'un mécanisme pour collaborer avec le centre d'excellence de virtualisation. L'équipe pourrait ajouter des serveurs supplémentaires pour prendre en charge la charge, ainsi que mettre en place des serveurs de performance lorsque l'équipe de performance est montée à bord.
À ce stade, Sally disposait d'une bibliothèque complète d'actifs virtuels, ainsi que des 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 de service réelle était réalisé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 réalité 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éé un grand 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 virtualisation dériverait un environnement de différents services virtuels et permettrait 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 c'était 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:
Les membres individuels de l'équipe créeraient les services virtuels et les cas de test dans leur navigateur. Si les services virtuels devaient être mis à jour ou si une logique supplémentaire devait être ajoutée, le centre d'excellence de virtualisation gèrerait cela avec ses postes de travail professionnels. Les services virtuels et les cas de test seraient ensuite combinés à l'intérieur de l'interface du client léger, et lorsque ces environnements devaient être disponibles, leur système de construction les appelait et les déploierait dans le cloud ou sur des serveurs dédiés. Les cas de test automatisés commenceraient 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 vrais tests continus activés par la virtualisation des services ne se font pas du jour au lendemain. Cette histoire est réelle et tout est possible avec la virtualisation des services, mais elle nécessite que l'organisation soit acquise et recommence à zéro, tout comme Sally l'a fait. (À propos, elle fait maintenant partie du conseil d'administration.) C'est le meilleur moyen d'intégrer la virtualisation des services dans votre organisation - étape par étape, utilisée là où elle est la plus précieuse. Le parcours exact de chacun sera différent, mais le résultat final devrait être le même: réduire le coût total des tests et gagner en puissance pour vraiment contrôler votre processus d'automatisation des tests.