Service Virtualization and Hardware Virtualization
Posted on Thu, Feb 16, 2012
Last week, we talked about how service virtualization relates to stubbing and mocking. This week, we'll answer another common question: how does service virtualization relate to hardware & OS virtualization?
In a nutshell, service virtualization complements hardware virtualization & dramatically reduces the costs associated with configuring & managing test environments. Since it's not feasible to leverage hardware virtualization for every dependent application (e.g., databases, mainframes, 3rd-party systems), service virtualization fills the gap by providing access to their behavior.
Hardware and OS Virtualization Lowers Cost & Increases Access—Yet Significant Gaps Remain
In an attempt to provide all of the necessary team members ubiquitous access to realistic dev/test environments in light of these complexities, many organizations have turned to hardware and OS virtualization. Virtualizing the core test foundations—specific operating systems, configurations, platforms, etc.— has been a tremendous step forward for dev/test environment management. This virtualization provides considerable freedom from the live system, simultaneously reducing infrastructure costs and increasing access to certain types of systems. Moreover, leveraging the cloud in concert with virtualization provides a nearly unlimited bandwidth for scaling dependent systems.
Nevertheless, in terms of development or test environments, some significant gaps remain. First of all, some assets cannot be easily virtualized. For example, it is often unfeasible to leverage hardware or OS virtualization technology for large mainframe applications, third-party applications, or large ERPs.
Moreover, even when virtualization can be completed, you still need to configure and manage each one of those applications on top of the virtualized stack. Managing and maintaining the appropriate configuration and data integrity for all the dependent systems remains an ominous and time-consuming task. It is also a task that you will need some outside help with—you will inevitably be relying on other groups, such as operations or DevOps, to assist with at least certain aspects of the environment configuration and management.
How Service Virtualization Helps
Service Virtualization (a.k.a. Application-Behavior Virtualization) reduces this configuration and data management overhead by enabling the developer or tester to rapidly isolate and virtualize just the behavior of the specific dependent components that they need to exercise in order to complete their end-to-end transactions. Rather than virtualizing entire systems, you virtualize only specific slices of dependent behavior critical to the execution of development and testing tasks.
It is completely feasible to use the cloud for scalability with service virtualization. Nevertheless, since you're virtualizing only the specific behavior involved in dev/test transactions (not entire systems), the scope of what's being virtualized is diminished… and so is the need for significant incremental scalability.
***
Photo Credit: pedrosimoes7
If you’d like an overview of how Parasoft's service virtualization provides easy access to the constrained components that impede development and testing, read our Service Virtualization eBook or visit the Parasoft Virtualize page.