Holen Sie sich die UMFANGREICHSTE Abdeckung für die Einhaltung von MISRA C! Erfahren Sie mehr >>

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

Von Chris Colosimo

6. April 2018

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 wird Schritt für Schritt dort eingesetzt, wo es am wertvollsten ist, um die Gesamtkosten des Testens zu senken und die Möglichkeit zu erhalten, Ihren Testautomatisierungsprozess mit einem vollständig automatisierten DevOps-Workflow wirklich zu kontrollieren.

Wenn Sie sich entscheiden, dass es an der Zeit ist, sagen wir, etwas Gewicht zu verlieren, könnten Sie das tun Recherchiere und enden mit Ratschlägen wie „STop Alkohol trinken! Fangen Sie an, Grünkohl zu essen! Geh um 8 Uhr ins Bett! Gehen Sie jeden Tag 5 Meilen! " Und obwohl es möglicherweise sinnvoll ist, all 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 Wahl für das Essen… und bringen Sie sich langsam auf ein Niveau, auf dem Sie wirklich wie ein Profi Diät halten können.

Service-Virtualisierung ist nicht anders. Im Laufe der Jahre habe ich zahlreichen Kunden geholfen Nehmen Sie diesen wertvollen DevOps-Enabler an, und ich finde, dass die meisten Unternehmen den Big-Bang-Ansatz verfolgen wollen – indem sie sofort eine vollständig bereitgestellte Lösung einführen, die sich über mehrere Teams erstreckt und als Teil ihrer Continuous Delivery-Pipeline integriert ist. Und obwohl all diese Dinge unerlässlich sind, um den potenziellen ROI, den Service-Virtualisierung Ihnen bieten kann, voll auszuschöpfen, werden Sie wahrscheinlich nicht in der Lage sein, effektiv zu skalieren, wenn Sie versuchen, all diese Dinge am ersten Tag zu tun Ihre vollständige DevOps-Bereitstellung. Wie kommen Sie dorthin?

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

Schritt 1: Eine einzige kostenlose Desktop-Version von Parasoft Virtualize

Treffen Sie Sally, die Entwicklerin. Sally war schlau und konnte sich viel schneller entwickeln als ihre Kollegen. Sie hatte während der Testphase angefangen, Mocks zu verwenden, um sich zu isolieren, aber sie verbrachte viel Zeit damit, die Art von Logik zu entwickeln, die sie zum Einbau in diese Systeme benötigte, da die tatsächlichen Anwendungen, die sie auslöschte, etwas komplex waren.

So lernte sie, wie mithilfe der Service-Virtualisierung in kürzester Zeit ein komplizierterer virtueller Service erstellt werden kann. Sie hat die heruntergeladen kostenlose Version von Parasoft Virtualize um eine kostenlose Service-Virtualisierung zu erhalten, die es ihr ermöglichte, virtualisierte Services zu erstellen und diese einfach zu ändern, während sich die tatsächlichen Services ändern. Infolgedessen konnte sie alle ihre Tests und Entwicklungen in einer völlig isolierten Umgebung durchführen.

Schritt 2: Mehr Teammitglieder mit kostenlosen Desktop-Lizenzen

Während sie diese Vorteile mit einigen ihrer Mitarbeiter diskutierte, wollten auch sie die von ihr erstellten Services nutzen, da es sich um gemeinsame Services zwischen den verschiedenen Entwicklern handelte und sie ihre Anwendungen einfach auf Sallys Computer richten und die Vorteile nutzen konnten.

Daher erhielten auch sie mit Parasoft Virtualize eine kostenlose Service-Virtualisierung und begannen, neue Services zu erstellen, diese Services anzupassen und diese Services von ihren kostenlosen Desktops aus zu nutzen. Das Team machte bedeutende Fortschritte bei der Entwicklung und beim Testen, da es in der Lage war, viele der in der Umwelt vorhandenen Engpässe zu reduzieren. Das Team wurde bekannt für seine Beweglichkeit und bekam die besten Projekte.

So übernehmen und skalieren Sie Service-Virtualisierung

Schritt 3: Eine Enterprise-Lizenz von Parasoft Virtualize zur Unterstützung der kompletten Umgebung

Eines Tages wurde Sallys Team vom Management angesprochen, das neugierig auf die Service-Virtualisierungslösung war, die das Team verwendete, um die Anwendungen schneller zu erstellen und zu testen. Sie wollten eine Diskussion über die praktische Anwendung in der größeren Umgebung führen. In den Integrations- und Produktionsumgebungen gab es einige Probleme mit Ausfällen, die durch ältere Anwendungen verursacht wurden. Die Anwendungen stützten sich auf eine Reihe von Oracle-Datenbanken sowie einen komplexen ESB und einen Mainframe.

Diese Systeme waren aus einer Reihe von Gründen schwer zu testen, und 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 sowie einige JMS und MQ mit handelte hausgemachtes XML. Um die ältere Hardware in Angriff zu nehmen, mussten sie ihren Service-Virtualisierungs-Desktop aufladen, sodass sie auf die Vollversion von upgraden konnten Parasoft Virtualisieren.

Zu diesem Zeitpunkt konnten sie die Service-Virtualisierung problemlos auf die verschiedenen Herausforderungen anwenden, die in den vom Management beschriebenen Anwendungsfällen auftreten. Es dauerte einige Tage, um sicherzustellen, dass die virtuellen Dienste alle unterschiedlichen Anwendungsfälle erfüllten, aber sie konnten alle Herausforderungen, die sie in diesen Umgebungen hatten, entsperren. Dies war einer der wichtigsten Wendepunkte für die Service-Virtualisierungsbewegung in Sallys Organisation, da sie das Know-how von Sallys Team bei der grundlegenden Service-Virtualisierung nutzen konnten, um kompliziertere Herausforderungen zu bewältigen, mit denen tatsächlich Kosten verbunden waren.

Schritt 4: Ein Service-Virtualisierungsteam, das die wichtigsten Herausforderungen beim Testen angeht

Das Managementteam unternahm dann den nächsten wertvollen Schritt für sein Unternehmen und schuf ein dediziertes Kompetenzzentrum für Servicevirtualisierung innerhalb des Unternehmens, das zum Aufbau virtueller Services genutzt werden kann, wenn neue Herausforderungen auftreten. Sally war natürlich die natürliche Passform, um das Team zu führen.

Sally begann Prozesse zu entwickeln, um Virtualisierungsinitiativen zu integrieren und Akzeptanzkriterien zu erstellen, damit das Team selbst kein neuer Engpass wurde. Governance wurde ein wichtiger Teil des Gesprächs. Das Team hat eine Reihe von Rollen und Verantwortlichkeiten eingerichtet, um sicherzustellen, dass jedes Virtualisierungsprojekt erfolgreich war. Es gab 5 Rollen:

  1. Der Tester. Wann immer Sie einen virtuellen Dienst erstellen, benötigen Sie einen Grund zum Virtualisieren der jeweiligen Komponente. Sehr oft erhielt das Team Anfragen, eine unzuverlässige Anwendung in der Umgebung zu simulieren. Wenn sie das erste Gespräch mit dem Antragsteller hatten, fragten sie: "Was können Sie nicht tun?" Diese Frage war kritisch, da Sie klar definierte Akzeptanzkriterien haben müssen, um eine Definition von „erledigt“ für ein virtuelles Asset zu erhalten. Der Tester wird zu einem wesentlichen Bestandteil 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 mit wenig bis gar keinem Verständnis der zu virtualisierenden Anwendung erstellt werden. Um jedoch mit minimalem Aufwand einen virtuellen Dienst zu erstellen, ist es hilfreich, Domänenkenntnisse über die von Ihnen simulierte Anwendung zu haben. So wurde der Entwickler zu einem wesentlichen Bestandteil des Erstellungsprozesses virtueller Assets und gab Erklärungen zur Funktionsweise der Services, sodass bei der Erstellung der virtuellen Services ein Verständnis dafür bestand, warum diese so funktionierten, wie sie funktionierten.
  3. Testdatenverwaltung. Es ist anzunehmen, dass viele Herausforderungen bei der Servicevirtualisierung im Kern tatsächlich Testdatenherausforderungen sind. Daher werden Testdatenverwaltungsteams beim Aufbau virtueller Assets wichtig. Die meisten virtuellen Assets werden durch Aufzeichnen und Wiedergeben erstellt. Wenn also die Testfälle identifiziert und das Verhalten vereinbart ist, ist es wichtig, dass die Umgebung, die Sie aufzeichnen möchten, zum Zeitpunkt der Aufzeichnung über die richtigen Testdaten verfügt. Während Testdatenverwaltungsteams im Virtualisierungsprozess selbst nur eine minimale Rolle spielten, war es entscheidend, sie in den Prozess einzubeziehen, bevor das Erstangebot erstellt wurde.
  4. Operationen. Virtuelle Dienste replizieren reale Dienste. Wenn Sie also den virtuellen Dienst richtig erstellt haben, weiß ein Benutzer möglicherweise nicht, dass er auf Simulation trifft. 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 sein, da viele Benutzer keinen Zugriff auf die Neukonfiguration der erforderlichen Verbindungen haben, um die Anwendung auf den Endpunkt der virtuellen Dienste zu verweisen. Parasoft Virtualize verwendet einen Mechanismus namens Proxy, mit dem ein Dienst über einen Mann in der Mitte kommunizieren kann, der von Sallys Team gesteuert werden kann. Es lag jedoch in der Verantwortung des Ops-Teams, diesen anfänglichen Verbindungssatz zu erhalten. Die frühzeitige Identifizierung der Betriebsressource und der Abschluss des Vorabvertrags für diese Initiative war der beste Weg, um sicherzustellen, dass das Team bereit und in der Lage ist, zu verstehen, was es ist, wenn alle Rohre tatsächlich miteinander verbunden werden statt finden.
  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.

Das Einrichten dieser Rollen war entscheidend für den Erfolg des Service-Virtualisierungsteams, um die Anforderungen für den Erfolg der Virtualisierungsprojekte zu klären. Jedes Mitglied des Service-Virtualisierungsteams verfügte über eine Parasoft Virtualize-Desktopsoftware. Sie würden die virtuellen Dienste auf dem Desktop erstellen und sie dann den Benutzern zur Verfügung stellen.

Schritt 5: Hinzufügen eines Virtualisierungs-Staging-Servers

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, würde dies Auswirkungen auf Benutzer haben, die die virtuellen Dienste nutzen. Daher entschied Sally, dass es Zeit war, ihre Bereitstellungsarchitektur erneut zu aktualisieren, und beschaffte sich einen Virtualisierungs-Staging-Server.

Auf diese Weise konnte sich jedes Teammitglied zusammenschließen und seine virtuellen Assets gemeinsam nutzen. Der Server war "immer eingeschaltet" und fungierte als virtuelle Artefaktbibliothek. Der Server war mit der Quellcodeverwaltung verbunden, sodass verschiedene Versionen der Dienste, die auf dem Server bereitgestellt wurden, automatisch eingecheckt wurden. Dadurch konnte das Team einen zentralen Wahrheitspunkt für alle virtuellen Assets festlegen, und niemand musste raten wo war die neueste Version.

Das Team summte mehrere Monate lang glücklich mit und löste große und bedeutsame Herausforderungen für die Organisation. Es war größer geworden und hatte ein paar weitere Mitglieder hinzugefügt. Um die Sichtbarkeit und das Bewusstsein des Teams zu erhöhen (und auch das Budget zu vergrößern), hatte Sally das Programm „Hoo-Rah“ implementiert. Jedes Mal, wenn das Team etwas mit quantifizierbarem ROI aufbaute, verfolgte es die Gewinne und verschickte eine öffentliche E-Mail, in der erklärt wurde, was es getan hatte und welche Teams davon profitiert hatten. Beispiele für diese "Hoo-Rah" 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 Dienste simuliert wurden, die nicht bereit waren, in die Cloud verschoben zu werden. Dies ermöglichte die Transformation 2 Wochen vor dem Zeitplan, da sie die Validierung in Phasen durchführen konnten, aber trotzdem funktionierten, obwohl Teile fehlten. Dies sparte ihnen 45,875 US-Dollar an Arbeitsstunden für das Projekt.
  • Das Team verwaltete proaktiv eine Serviceänderung eines Drittanbieters, indem es eine virtuelle Darstellung des neuen Service erstellte und 3-2 Wochen zuvor Zugriff auf dev / test gewährte. Dieses Änderungsmanagement reduzierte ungeplante Ausfallzeiten im Zusammenhang mit Diensten von Drittanbietern (~ 6%) und sparte Programmkosten in Höhe von 3 USD.
  • 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 erfolgreich 112 Services, die für das Regressionsszenario für die Hauptschlüsseleintragung erforderlich sind. Auf diese Weise konnte das Team die virtuellen Dienste rund um den Schlüsseleingabedienst bereitstellen und die Notwendigkeit einer physischen Leistungsumgebung reduzieren, wodurch dem Unternehmen Investitionskosten in Höhe von 123,654 USD für die Beschaffung einer zusätzlichen Leistungsumgebung erspart wurden.

Diese „Hoo-rah“ -E-Mails waren von entscheidender Bedeutung, um zusätzliche Teams zusammenzubringen, halfen aber auch den wichtigsten Stakeholdern des Unternehmens, die Bedeutung der Service-Virtualisierung für den Testautomatisierungsprozess zu verstehen.

Wertschöpfung aus negativer Simulation

Dann, eines Abends im Spätsommer, führte ein Mitglied des Sicherheitsteams eine Prüfung einer kritischen Anwendung durch und entdeckte einen potenziellen Angriffsvektor in das System, der ausgenutzt werden konnte und nicht nur dazu führte, dass vertrauliche Kundendaten verloren gingen, sondern auch die Organisation zwang aus Compliance. Wenn dies nicht schnell behoben wird, muss die Organisation das Compliance-Komitee aktualisieren und den Strafprozess einleiten.

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 seiner Kontrolle lagen, in den Zustand zu zwingen, den es benötigte, um den Fehler aufzudecken und die Korrekturen zu validieren, die es einführen würde. Sally wurde mitten am Abend angerufen und gebeten, zur Arbeit zu gehen.

Das Team machte sich schnell daran, vorhandene virtuelle Dienste, die sie für diese Zahlungssysteme von Drittanbietern erstellt hatten, wiederzuverwenden und sie in einen Zustand zu versetzen, in dem sie negatives Verhalten zurückgeben würden. Da die Anwendung nicht erneut bereitgestellt werden musste, konnten sie einfach das Verhalten ändern, während die Entwickler ihre Änderungen vornahmen, und alle unterschiedlichen Kombinationen löschen, die zu dem potenziellen Exploit führten. Unnötig zu erwähnen, dass das Team erfolgreich einen heißen Patch in die Produktion gebracht hat, der dem Unternehmen Millionen gespart hat.

Schritt 6: Hinzufügen eines kollaborativen Arbeitsbereichs, um kontinuierliche Integration als Teil von DevOps zu ermöglichen

Das Team des Service-Virtualisierungszentrums von Sally war jetzt bei Entwicklern und Testern beliebt, und viele von ihnen fragten selbst nach dem Zugriff auf Parasoft Virtualize, damit sie ihre eigenen Prototypen erstellen und negative und positive Szenarien validieren konnten. Sally hatte die Infrastruktur, um dies zu unterstützen, aber sie musste ihnen nicht unbedingt den schweren Hammer geben, der die professionelle Desktop-Version war, also aktualisierte sie ihre Infrastruktur erneut und integrierte die Thin-Client-Oberfläche von Parasoft, um ihre DevOps-Workflows vollständig zu aktivieren. Dieses zentralisierte Dashboard ermöglichte jedem Benutzer in der Organisation den Zugriff und ermöglichte es ihm, virtuelle Dienste und Testfälle direkt über seinen Browser zu erstellen.

Diese Weiterentwicklung der Bereitstellung führte zu einem „Hybridmodell“, in dem einzelne Teammitglieder zusammengeschlossen agieren, ihre eigenen virtuellen Dienste für ihre Anforderungen erstellen, auf sie zugreifen, sie ändern usw. Und als es an der Zeit war, diese virtuellen zu integrieren Für die Integration in die größere Architektur verfügten sie über einen Mechanismus zur Zusammenarbeit mit dem Virtualisierungszentrum. Das Team könnte zusätzliche Server hinzufügen, um die Auslastung zu unterstützen, und Leistungsserver einschalten, wenn das Leistungsteam an Bord kommt.

Zu diesem Zeitpunkt verfügte Sally über eine umfassende Bibliothek virtueller Assets sowie entsprechende automatisierte Testfälle. Sie hatte eine Bibliothek mit Testdaten, die in diese beiden Testartefakte eingespeist wurden. Der Großteil der eigentlichen Serviceerstellung wurde von den einzelnen Teams durchgeführt, und Sallys Team war in erster Linie dafür verantwortlich, all diese verschiedenen virtuellen Services in einer „Umgebung“ zu orchestrieren. Die Umgebung war eigentlich nur eine Vorlage für virtuelle Assets, Testfälle und Testdaten, die in eine bestimmte Konfiguration integriert wurden, um eine Testinitiative zu erfüllen. Sie haben viele dieser Umgebungsvorlagen erstellt und sie an den verschiedenen Anwendungen in der Organisation ausgerichtet.

Wann immer eine Anwendung getestet werden musste und die reale Umgebung nicht ausreichte, spaltete das Virtualisierungszentrum eine Umgebung mit verschiedenen virtuellen Diensten ab und ermöglichte den Teammitgliedern das Testen. Die Teams waren im Rahmen ihrer Testausführung immer mehr auf virtuelle Dienste angewiesen, und dies war ein natürlicher Übergang in die Pipeline für die kontinuierliche Bereitstellung.

Die endgültige und vollständig realisierte Bereitstellung für die Servicevirtualisierung in Sallys Organisation sah folgendermaßen aus:

Einzelne Teammitglieder würden die virtuellen Dienste und Testfälle in ihrem Browser erstellen. Wenn die virtuellen Dienste aktualisiert oder zusätzliche Logik hinzugefügt werden müsste, 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, und wenn diese Umgebungen verfügbar sein müssten, würde ihr Build-System sie entweder in der Cloud oder auf dedizierten Servern aufrufen und bereitstellen. Die automatisierten Testfälle würden dann beginnen, 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 Service-Virtualisierung ermöglicht werden, finden nicht über Nacht statt. Diese Geschichte ist real und alles ist mit Service-Virtualisierung möglich, aber es erfordert, dass die Organisation eingekauft wird und von Grund auf neu beginnt, genau wie Sally. (Übrigens ist sie jetzt im Vorstand.) Dies ist der beste Weg, um Service-Virtualisierung in Ihr Unternehmen zu bringen - Schritt für Schritt dort, wo sie am wertvollsten ist. Die genaue Reise eines jeden wird anders sein, aber das Endergebnis sollte das gleiche sein: Senkung der Gesamtkosten für Tests und Gewinnung der Fähigkeit, Ihren Testautomatisierungsprozess wirklich zu steuern.

Holen Sie sich Parasoft Virtualize Community Edition

Von Chris Colosimo

Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.