Empfohlenes Webinar: Vorstellung von Parasoft C/C++test CT für kontinuierliche Tests und Compliance-Exzellenz | Zum Video

So nehmen Sie ein kostenloses Service-Virtualisierungstool und skalieren es in eine vollständige DevOps-Bereitstellung

Parasoft-Würfel-Logo 300x300
12. Juli 2023
11 min lesen

Dienstvirtualisierung wird normalerweise verwendet, um Anwendungen zu verbinden, die auf Cloud, SOA oder API von Drittanbietern angewiesen sind. Erfahren Sie in diesem Blogbeitrag, wie Sie ein kostenloses Service-Virtualisierungstool zu einer umfassenden DevOps-Implementierung erweitern können.

Der beste Weg, um die Kosten für Privatflüge zu Bringen Sie Service-Virtualisierung in Ihr Unternehmen ist Schritt für Schritt. Setzen Sie es dort ein, wo es am wertvollsten ist, um die Gesamtkosten des Testens zu senken und die Kontrolle über Ihren Testautomatisierungsprozess mit einem vollständig automatisierten DevOps-Workflow zu erlangen.

Lassen Sie uns eine Analogie verwenden. Wenn Sie beschließen, dass es an der Zeit ist, einen gesunden Lebensstil anzunehmen, recherchieren Sie vielleicht und erhalten am Ende Ratschläge wie: „STop Alkohol trinken! Fangen Sie an, Grünkohl zu essen! Geh um 8 Uhr ins Bett! Gehen Sie jeden Tag fünf Meilen! Auch wenn es sinnvoll sein kann, alle diese Aktivitäten zu nutzen, um einen gesunden Lebensstil anzunehmen, werden Sie wahrscheinlich scheitern, wenn Sie versuchen, sie alle auf einmal zu übernehmen. Stattdessen müssen Sie Schritt für Schritt vorgehen. Fügen Sie hier eine zusätzliche Übung hinzu. Treffen Sie dort eine gesunde Lebensmittelauswahl. Steigern Sie langsam ein Niveau, auf dem Sie wie ein Profi gesunde Gewohnheiten entwickeln können.

Service-Virtualisierung ist nicht anders. Ich habe im Laufe der Jahre zahlreichen Kunden dabei geholfen, diesen wertvollen DevOps-Enabler einzuführen. Die meisten Unternehmen wollen den „Big Bang“-Ansatz verfolgen und sofort eine vollständig bereitgestellte Lösung einführen, die sich über mehrere Teams erstreckt und bereits als Teil ihrer Continuous-Delivery-Pipeline integriert ist.

Obwohl all diese Dinge für die vollständige Verwirklichung unerlässlich sind potenzieller ROI der Service-Virtualisierung Wenn Sie versuchen, alles vom ersten Tag an zu erledigen, werden Sie wahrscheinlich nicht in der Lage sein, effektiv auf Ihre vollständige DevOps-Bereitstellung zu skalieren. Wie kommt man dorthin?

In diesem Blog werde ich genau das teilen. Wir werden eine Person begleiten, von ihrer einzelnen kostenlosen Service-Virtualisierungslizenz bis hin zur vollständigen Lizenz ihrer Organisation Bereitstellung der Service-Virtualisierung, integriert in ihren DevOps-Workflow. Dies basiert auf einer wahren Begebenheit, aber der Anonymität halber nennen wir diese Person Sally.

Schritt 1: Beginnen Sie kostenlos mit Parasoft Virtualize, um die Effizienz zu steigern

Grafik von Sally, der Entwicklerin, die die Implementierung der Service-Virtualisierung mit Parasoft Virtualize leitet

Lernen Sie Sally, die Entwicklerin, kennen. Sally ist schlau und kann sich viel schneller weiterentwickeln als ihre Kollegen. Während der Testphase begann sie, Mocks zu verwenden, um sich zu isolieren, verbrachte jedoch viel Zeit damit, die Art von Logik zu entwickeln, die sie zum Einbau in diese Systeme benötigte, da die eigentlichen Anwendungen, die sie ausbaute, komplex waren.

So erfuhr sie, wie durch Servicevirtualisierung in bemerkenswert kurzer Zeit ein komplexerer virtueller Service erstellt werden kann. Sie hat das heruntergeladen kostenlose Version von Parasoft Virtualize um die Servicevirtualisierung kostenlos zu erhalten, was es ihr ermöglichte, mit der Erstellung virtualisierter Dienste zu beginnen und diese problemlos zu ändern, während sich die tatsächlichen Dienste änderten. Dadurch konnte sie alle ihre Tests und Entwicklungen in einer völlig isolierten Umgebung durchführen.

Schritt 2: Ermöglichen Sie die Akzeptanz über die Eintrittsbarriere des Teams hinweg

Als sie diese Vorteile mit einigen ihrer Kollegen besprach, wollten auch diese die von ihr erstellten Dienste nutzen, da es sich um gemeinsame Dienste der verschiedenen Entwickler handelte. Sie könnten ihre Bewerbungen einfach auf Sallys Maschine richten und von den Vorteilen profitieren.

Sie erhielten außerdem eine kostenlose Dienstvirtualisierung mit Parasoft Virtualize und begannen, neue Dienste zu erstellen, diese Dienste anzupassen und diese Dienste alle von ihren kostenlosen Desktops aus zu nutzen. Das Team machte erhebliche Fortschritte bei der Entwicklung und beim Testen, da es viele der in der Umgebung vorhandenen Engpässe reduzieren konnte. Das Team wurde für seine Agilität bekannt und bekam die besten Projekte.

Schritt 3: Nutzen Sie das volle Potenzial von Parasoft Virtualize

Das Management wandte sich an Sallys Team. Sie sind Ich bin neugierig auf die Service-Virtualisierungslösung die das Team nutzte, um die Anwendungen schneller erstellen und testen zu können. Sie wollten eine Diskussion über die praktische Anwendung im größeren Umfeld führen. Es gab einige Gerüchte über Ausfälle in den Integrations- und Produktionsumgebungen, die durch veraltete Anwendungen verursacht wurden. Die Anwendungen basierten auf einer Reihe von Oracle-Datenbanken sowie einem komplexen ESB und einem Mainframe.

Aus einer Reihe von Gründen war es schwierig, diese Systeme zu testen. Sally und ihr Team konnten zeigen, dass es einfach war, die Dienste hinter dem ESB zu simulieren, da es sich um grundlegende REST- und SOAP-Dienste und ein paar JMS und MQ mit selbst erstelltem XML handelte. Um die veraltete Hardware zu bewältigen, mussten sie ihren Service-Virtualisierungs-Desktop aufrüsten und führten daher ein Upgrade auf die Vollversion von durch  Parasoft Virtualisieren.

Bild von drei Entwicklern in der Nähe von Laptops, die über die einfache Implementierung der Servicevirtualisierung diskutieren.Zu diesem Zeitpunkt konnten sie die Service-Virtualisierung problemlos auf die unterschiedlichen Herausforderungen anwenden, die in den vom Management beschriebenen Anwendungsfällen auftraten. Es dauerte ein paar Tage, um sicherzustellen, dass die virtuellen Dienste alle verschiedenen Anwendungsfälle erfüllten, aber es gelang ihnen, alle Herausforderungen in diesen Umgebungen zu bewältigen. Dies war einer der entscheidenden Wendepunkte für die Service-Virtualisierungsbewegung in Sallys Organisation, da sie das Fachwissen von Sallys Team im Bereich grundlegender Service-Virtualisierung nutzen konnten, um kompliziertere Herausforderungen zu bewältigen, die mit echten Kosten verbunden waren.

Schritt 4: Stellen Sie einen Virtualisierungsserver für optimierte Betriebszeit und Verfügbarkeit bereit

Als das Team immer beliebter wurde, wurde klar, dass es seinen Einsatz skalieren musste. Wenn eines der Teammitglieder die Maschine herunterfahren oder in den Urlaub fahren müsste, hätte dies Auswirkungen auf die Benutzer, die auf die virtuellen Dienste zugreifen. Sally entschied, dass es an der Zeit war, ihre Bereitstellungsarchitektur noch einmal zu aktualisieren, und beschaffte einen Virtualisierungs-Staging-Server.Das Bild zeigt drei Mitglieder des Entwicklungsteams, die ihre Bemühungen für ein vollständiges simuliertes Testökosystem bündeln, indem sie ihre einzelnen Systeme mit einem Server verbinden.

Dies ermöglichte es jedem Teammitglied, seine Anstrengungen für ein vollständiges simuliertes Testökosystem zu bündeln. Der Server war immer eingeschaltet und fungierte als virtuelle Artefaktbibliothek. Es war mit der Quellcodeverwaltung verbunden, sodass bei der Bereitstellung verschiedener Versionen der Dienste auf dem Server diese automatisch eingecheckt wurden. Dadurch konnte das Team über einen zentralen Point of Truth für alle virtuellen Assets verfügen. Niemand musste erraten, wo sich die neueste Version befand.

Das Team arbeitete mehrere Monate lang fröhlich daran, große und bedeutsame Herausforderungen für die Organisation zu lösen. Es wuchs mit einigen weiteren Mitgliedern. Um die Sichtbarkeit und Bekanntheit des Teams zu steigern – und das Budget zu erhöhen – implementierte Sally das „Hoo-Rah“-Programm.

Jedes Mal, wenn das Team etwas mit quantifizierbarem ROI baute, verfolgte es die Fortschritte und verschickte eine öffentliche E-Mail, in der es erklärte, was es getan hatte und welche Teams davon profitiert hatten. Beispiele für diese „Ho-rah“s waren:

  • Das Team simulierte die Stormtrooper-SOAP-Services und die Erweiterungstabelle in der Oracle-Hauptdatenbank und ermöglichte einen automatisierten Prozess zum Bereitstellen und Testen der 111 Kombinationen des Zahlungsdienstes. Dies erhöhte den Testdurchsatz und die automatisierte Testausführung, wodurch 27,950 USD für einen Projektzyklus eingespart wurden.
  • Das Team konnte eine Cloud-Migrationsinitiative vereinfachen, indem es Dienste simulierte, die noch nicht für die Migration in die Cloud bereit waren. Dadurch konnte die Transformation zwei Wochen früher als geplant erfolgen, da die Validierung phasenweise durchgeführt werden konnte und auch dann noch funktionierte, wenn Teile fehlten. Dadurch konnten sie 45,875 US-Dollar an Arbeitsstunden für das Projekt einsparen.
  • Das Team verwaltete proaktiv eine Dienständerung eines Drittanbieters, indem es eine virtuelle Darstellung des neuen Dienstes erstellte und den Zugriff auf Entwicklung/Test zwei bis sechs Wochen früher ermöglichte. Dieses Änderungsmanagement reduzierte ungeplante Ausfallzeiten im Zusammenhang mit Drittanbieterdiensten (ca. 2 %) und führte zu einer Programmersparnis von 6 US-Dollar.
  • Das Team simulierte den Mitgliedersuchdienst auf dem Mainframe, der beim Aufrufen von Konten eindeutige Mitglieder bereitstellte, wodurch die Testanforderungen für den Prozessablauf erheblich vereinfacht wurden. Die Teams haben jetzt die Kontrolle über die Daten für den Mainframe und die Datenbank und können jede Art von Verhalten einfügen, nach dem sie suchen. Dies wird voraussichtlich 15,000 Stunden ungeplanter Ausfälle durch Middleware erheblich reduzieren.
  • Das Team simulierte den Mitgliedersuchdienst auf dem Mainframe, der beim Aufrufen von Konten eindeutige Mitglieder bereitstellte, wodurch die Testanforderungen für den Prozessablauf erheblich vereinfacht wurden. Die Teams hatten nun die Kontrolle über die Daten für den Mainframe und die Datenbank und konnten jedes gewünschte Verhalten einfügen. Es wird erwartet, dass dadurch 15,000 Stunden ungeplanter Ausfälle durch Middleware deutlich reduziert werden.

Diese „Hurra“-E-Mails waren von entscheidender Bedeutung, um zusätzliche Teams einzubeziehen, und halfen den wichtigsten Stakeholdern des Unternehmens, die Bedeutung der Servicevirtualisierung für den Testautomatisierungsprozess zu verstehen.

Wertschöpfung aus negativer Simulation

Bei der Prüfung einer kritischen Anwendung entdeckte ein Mitglied des Sicherheitsteams einen potenziellen Angriffsvektor im System, der ausgenutzt werden könnte und nicht nur zum Verlust vertraulicher Kundendaten führen, sondern auch dazu führen könnte, dass das Unternehmen die Compliance einhält. Wenn nicht schnell Abhilfe geschaffen wird, wäre die Organisation gezwungen, das Compliance-Komitee zu aktualisieren und das Strafverfahren einzuleiten.

Das Team erkannte, dass, wenn es den Fehler innerhalb eines bestimmten Zeitfensters beheben könnte, es die Änderungen in die Produktionsumgebung übertragen könnte und alles gut wäre. Die Herausforderung bestand darin, dass sie, um das Problem erfolgreich zu reproduzieren, viele ihrer Drittanbieter-Zahlungssysteme in einen Zustand versetzen mussten, in dem sie verschiedene Fehlerzustände zurückgeben und absichtlich PII- oder Kundendaten preisgeben würden.

Das Team war nicht in der Lage, diese Systeme, die außerhalb ihrer Kontrolle lagen, in den Zustand zu versetzen, den es benötigte, um den Fehler aufzudecken und die Korrekturen zu validieren, die sie durchführen würden. Sally wurde mitten am Abend angerufen und gebeten, zur Arbeit zu gehen.

Dem Team gelang es schnell, bestehende virtuelle Dienste, die es für diese Zahlungssysteme von Drittanbietern erstellt hatte, wiederzuverwenden und sie in einen Zustand zu versetzen, in dem sie anfangen würden, negatives Verhalten zu erwidern. Da die Anwendung nicht erneut bereitgestellt werden musste, konnten sie einfach das Verhalten ändern, während die Entwickler ihre Änderungen vornahmen, und alle verschiedenen Kombinationen entfernen, die zu dem potenziellen Exploit führten. Unnötig zu erwähnen, dass es dem Team gelungen ist, einen Hot-Patch in die Produktion zu bringen, der dem Unternehmen Millionen einsparte.

Schritt 5: Ermöglichen Sie die Skalierbarkeit der Service-Virtualisierung im gesamten Unternehmen

Anschließend unternahm das Managementteam den nächsten wertvollen Schritt für sein Unternehmen: die Schaffung eines speziellen Kompetenzzentrums für Service-Virtualisierung, das für den Aufbau virtueller Dienste genutzt werden konnte, wann immer sich neue Herausforderungen ergeben. Sally war natürlich die perfekte Besetzung für die Leitung des Teams.

Sally begann mit dem Aufbau von Prozessen rund um das Onboarding von Virtualisierungsinitiativen und die Erstellung von Akzeptanzkriterien, damit das Team selbst nicht zu einem neuen Engpass wurde. Governance wurde zu einem wichtigen Teil des Gesprächs.

Das Team richtete eine Reihe von fünf Rollen und Verantwortlichkeiten ein, um sicherzustellen, dass jedes Virtualisierungsprojekt erfolgreich war.

  1. Der Tester. Wenn Sie einen virtuellen Dienst erstellen, müssen Sie einen Grund für die Virtualisierung der jeweiligen Komponente angeben. Sehr oft erhielt das Team Anfragen, eine unzuverlässige Anwendung in der Umgebung zu simulieren. Beim ersten Gespräch mit dem Antragsteller fragten sie: „Was können Sie nicht tun?“ Diese Frage ist von entscheidender Bedeutung, da Sie über klar definierte Akzeptanzkriterien verfügen müssen, um eine Definition von „erledigt“ für ein virtuelles Asset zu haben. Der Tester wird zu einem wesentlichen Teil dieses Prozesses, da er definieren kann, welche Testfälle erfolgreich ausgeführt werden müssen, und das Virtualisierungsteam weiß, dass es ein erfolgreiches virtuelles Asset erstellt hat, wenn dies abgeschlossen ist.
  2. Der Entwickler. Virtuelle Assets können erstellt werden, ohne dass man die Anwendung, die man virtualisiert, kennt. Um jedoch mit minimalem Aufwand einen virtuellen Dienst zu erstellen, ist es hilfreich, über Domänenkenntnisse über die Anwendung zu verfügen, die Sie simulieren. Der Entwickler wird also zu einem wesentlichen Teil des Prozesses zur Erstellung virtueller Assets und erklärt, wie die Dienste funktionieren, sodass bei der Erstellung der virtuellen Dienste ein Verständnis dafür entsteht, warum sie so funktionieren.
  3. Testdatenverwaltung. Es lässt sich argumentieren, dass es sich bei vielen Herausforderungen bei der Servicevirtualisierung im Kern tatsächlich um Testdatenherausforderungen handelt. Daher sind Testdatenmanagementteams beim Aufbau virtueller Assets wichtig. Die meisten virtuellen Assets werden durch Aufnahme und Wiedergabe erstellt. Wenn die Testfälle identifiziert und das Verhalten vereinbart sind, ist es wichtig, dass die Umgebung, in der Sie aufzeichnen möchten, zum Zeitpunkt der Aufzeichnung über die richtigen Testdaten verfügt. Obwohl Testdatenmanagementteams in diesem Fall also nur eine minimale Rolle im Virtualisierungsprozess selbst spielten, war es entscheidend, sie vor der Erstellung des ersten Angebots in den Prozess einzubeziehen.
  4. Operationen. Virtuelle Dienste replizieren reale Dienste. Wenn Sie also den virtuellen Dienst richtig erstellt haben, weiß ein Benutzer möglicherweise nicht wirklich, dass er auf eine Simulation stößt. Daher muss der virtuelle Dienst an einem Endpunkt verfügbar sein, der in der Umgebung definiert ist, in der sich der eigentliche Dienst befindet. Dies kann häufig ein Hindernis für den Virtualisierungsprozess darstellen, da viele Personen keinen Zugriff haben, um die erforderlichen Verbindungen neu zu konfigurieren, um die Anwendung auf den Endpunkt der virtuellen Dienste zu verweisen. Parasoft Virtualize verwendet einen Mechanismus namens Proxy, der es einem Dienst ermöglicht, über einen Mann in der Mitte zu kommunizieren, den Sallys Team kontrollieren kann. Die Herstellung dieser ersten Verbindung lag jedoch in der Verantwortung des Einsatzteams. Die frühzeitige Identifizierung der Betriebsressource und der Abschluss eines Vorabvertrags über die Durchführung dieser Initiative war der beste Weg, um sicherzustellen, dass das Team bereit und in der Lage war, zu verstehen, was vor sich ging, wenn es an der Zeit war, alle Rohre miteinander zu verbinden.
  5. Führung. Damit ein Service-Virtualisierungsprojekt erfolgreich sein kann, muss sich das Management einkaufen. Dies war in Sallys Fall nicht schwierig, da sie von Grund auf neu begonnen hatten und sich als bedeutsam erwiesen hatten, aber es war wichtig, den Fokus der Führung für die Team, um produktiv zu arbeiten.

Die Einrichtung dieser Rollen war entscheidend für den Erfolg des Service-Virtualisierungsteams und klärte die Anforderungen für den Erfolg der Virtualisierungsprojekte. Jedes Mitglied des Service-Virtualisierungsteams verfügte über die Desktop-Software Parasoft Virtualize. Sie würden die virtuellen Dienste auf dem Desktop erstellen und sie dann den Benutzern zur Verfügung stellen.

Schritt 6: Zusammenarbeit und kontinuierliche Integration in der gesamten DevOps-Pipeline

Sallys Service-Virtualisierungs-Center-of-Exzellenz-Team erfreute sich bei Entwicklern und Testern großer Beliebtheit. Viele fragten nach Zugang zu Parasoft Virtualize, damit sie ihre eigenen Prototypen erstellen und negative und positive Szenarien validieren konnten.

Sally verfügte über die Infrastruktur, um dies zu unterstützen, aber sie musste ihnen nicht unbedingt den schweren Hammer geben, der die professionelle Desktop-Version darstellte. Sie aktualisierte ihre Infrastruktur erneut und integrierte die Thin-Client-Schnittstelle von Parasoft, um ihre DevOps-Workflows vollständig zu ermöglichen. Dieses zentralisierte Dashboard ermöglichte jedem Benutzer in der Organisation Zugriff und ermöglichte es ihm, virtuelle Dienste und Testfälle direkt über seinen Browser zu erstellen.Das Bild zeigt ein zentrales Dashboard, auf das die gesamte Organisation zugreifen kann und das es Teams ermöglicht, virtuelle Dienste und Testfälle direkt über ihren Browser zu erstellen.

Durch diese Weiterentwicklung der Bereitstellung entstand ein Hybridmodell, bei dem einzelne Teammitglieder auf föderierte Weise agieren, ihre eigenen virtuellen Dienste für ihre Bedürfnisse erstellen, auf sie zugreifen, sie ändern und so weiter können. Und als es an der Zeit war, diese virtuellen Dienste in die größere Architektur zu integrieren, verfügten sie über einen Mechanismus zur Zusammenarbeit mit dem Kompetenzzentrum für Virtualisierung. Das Team könnte zusätzliche Server hinzufügen, um die Last zu unterstützen, und Leistungsserver einbinden, wenn das Leistungsteam mit an Bord kommt.Das Bild zeigt das Entwicklerteam mit zusätzlichen Servern zur Unterstützung der Last und dem Einschalten von Leistungsservern, als das Leistungsteam mit der Servicevirtualisierung begann.

Zu diesem Zeitpunkt verfügte Sally über eine umfassende Bibliothek virtueller Assets und entsprechende automatisierte Testfälle. Sie verfügte über eine Bibliothek mit Testdaten, die in diese beiden Testartefakte eingespeist wurden. Der Großteil der eigentlichen Diensterstellung wurde von den einzelnen Teams durchgeführt, und Sallys Team war in erster Linie dafür verantwortlich, all diese verschiedenen virtuellen Dienste in einer „Umgebung“ zu orchestrieren.

Die Umgebung war eigentlich nur eine Vorlage aus virtuellen Assets, Testfällen und Testdaten, die in eine bestimmte Konfiguration integriert wurden, um einer Testinitiative gerecht zu werden. Sie haben viele dieser Umgebungsvorlagen erstellt und sie an die verschiedenen Anwendungen in der Organisation angepasst.

Wann immer eine Anwendung getestet werden musste und die reale Umgebung nicht ausreichte, gründete das Virtualisierungs-Kompetenzzentrum eine Umgebung verschiedener virtueller Dienste und erlauben Sie den Teammitgliedern, zu testen. Die Teams waren im Rahmen ihrer Testdurchführung immer mehr auf virtuelle Dienste angewiesen, und es war ein natürlicher Übergang in die Continuous-Delivery-Pipeline.

Die endgültige und vollständig realisierte Bereitstellung für die Servicevirtualisierung in Sallys Organisation sah folgendermaßen aus:Bild, das eine vollständig realisierte Bereitstellung für die Servicevirtualisierung zeigt. Einzelne Teammitglieder können virtuelle Dienste und Testfälle in ihren Browsern erstellen.

Einzelne Teammitglieder würden die virtuellen Dienste und Testfälle in ihren Browsern erstellen. Wenn die virtuellen Dienste aktualisiert oder zusätzliche Logik hinzugefügt werden müssten, würde das Virtualisierungs-COE dies mit seinen professionellen Desktops erledigen.

Die virtuellen Dienste und Testfälle würden dann innerhalb der Thin-Client-Schnittstelle kombiniert. Wenn diese Umgebungen verfügbar sein mussten, rief ihr Build-System sie auf und stellte sie entweder in der Cloud oder auf dedizierten Servern bereit. Dann würden die automatisierten Testfälle starten, die Ergebnisse würden an ihr aggregiertes Dashboard gesendet und die dynamische Umgebung würde zerstört.

Einstieg in eine vollständig realisierte Virtualisierungsbereitstellung

Echte kontinuierliche Tests, die durch Servicevirtualisierung ermöglicht werden, erfolgen nicht über Nacht. Diese Geschichte ist real und mit der Servicevirtualisierung ist alles möglich. Aber es erfordert, dass die Organisation eingebunden wird und von Grund auf neu beginnt, genau wie Sally es getan hat. Mittlerweile ist sie übrigens im Vorstand.

Dieser Ansatz ist der beste Weg, die Service-Virtualisierung Schritt für Schritt in Ihr Unternehmen zu bringen und dort einzusetzen, wo sie am wertvollsten ist. Die genaue Reise jedes Einzelnen wird anders sein, aber die Endergebnisse sollten die gleichen sein:

  • Reduzieren Sie die Gesamtkosten für Tests.
  • Erhalten Sie die Möglichkeit, Ihren Testautomatisierungsprozess zu steuern.
Erstellen Sie zuverlässige und vorhersehbare Servicesimulationen mit Parasoft Virtualize

Verwandte Post + Ressourcen