Service Virtualization Removing Constraints to Modern Application Development
Date: Monday , February 01, 2010
Virtualization is being used today by many IT organizations seeking to reduce their costs and improve overall agility. There are different types of virtualization available, the most familiar being the practice of simulating the behavior of a physical IT asset in a software emulator and hosting that emulator in a virtual environment. This type of hardware virtualization can help companies better manage their physical resources, improve their utilization, and increase business agility by removing physical constraints regarding resource access, capacity, and data volatility.
Realizing Virtualizationís Full Potential
Most large organizations are in the process of adopting hardware virtualization approaches during the development of their enterprise applications. Most often, the key driver is to improve utilization of physical server capacity. However, hardware virtualization is not appropriate or feasible in all circumstances.
What if we could also apply the benefits of virtualization to other areas where enterprises may spend 60 percent or more of an enterprise IT budget, such as the extensive development and delivery costs of these applications? Many remaining critical challenges can be resolved with the complementary use of Service Virtualization, which leads to substantial additional benefits and improved ROI.
Service virtualization (SV) involves the simulation of software service behavior and the modeling of a virtual service to stand in for the actual service during development and testing. Service virtualization is complementary to hardware virtualization, and provides a solution to address each of the aforementioned hardware virtualization limitations such as:
* Providing 24/7 access to the service to support more concurrent development efforts
* Removing system dependency constraints so that you can test components and complex systems earlier and more often
* Simplifying test data management across distributed systems
* Reducing or eliminating the cost of invoking third party systems for non-production use
Service virtualization entails capturing the behavior, performance, and data associated with the target system to facilitate the efficient development and testing of complex, distributed applications. The opportunities presented by SV offer significant breakthroughs in productivity and agility for the entire enterprise application development and deployment lifecycle.
Limitations of Hardware Virtualization
* Systems that canít be imaged on a hypervisor: Mainframes, externally hosted partner services, SaaS, and cloud based applications are all examples of systems that could definitely benefit from virtualization, but often cannot leverage hardware virtualization. In many cases, these assets are the most mission critical and the most costly to provide access and capacity.
* Total cost of ownership is far more than hardware: Where hardware virtualization is possible, it clearly reduces the hardware acquisition cost, but that is usually just a fraction of the total cost of ownership. The majority of the costs comprise of the IT labor overhead of maintaining the server images, software configurations (especially when publishing changes to them), installs, patches, and licensing costs.
* Hardware virtualization is not always appropriate: A clear example of this is when we are considering the performance management lab. You might deploy hardware virtualization in the performance lab, but the basic assumption of underutilized capacity is inherently false when you are driving thousands of transactions into a VM.
Service virtualization can offer a solution to these shortcomings. With SV, we take real multi-tier, distributed software architectures, capture their behavior, and bring them into a virtual environment so that we can interact with them freely without real world constraints. You can control their behavior, their capacity, their access, and also control them in the ways completely unrelated to what the real world would impose.
Example before Service Virtualization
Letís assume that we have multiple teams that need to develop, integrate, and test against an existing application with 3 downstream dependencies (starting from the bottom up):
Access to a mainframe: There are dozens of project teams, and each needs access to the mainframe. Yet these teams receive very limited access, and often during timeslots that do not align to their project plan. Team leaders will exclaim, ĎI canít build or test my application without access to a mainframe, and yet, I barely ever get accessí. This is a persistent problem that introduces risk, unacceptable delays, lost productivity, and added cost.
Access to a database: One team owns a database that is accessed by others. This database is currently accessible in a development lab, but multiple test teams need to access the data, and they conflict with each other and invalidate the test results.
Access to the Web service: A required web service doesnít exist yet, it is under development. The team has a scope and a due date, but is missing a key dependency.
All of the above are examples of very real world constraints - and there are many more. Letís now apply SV to capture these IT assets as virtual services and bring them into a virtual modeling environment where each team can eliminate these physical constraints and redefine them on their terms.
After Applying Service Virtualization
Letís look at the same environment with three downstream dependencies after applying SV techniques (starting from the bottom up):
Resolved mainframe access issues: While the mainframe is accessible, SV involves capturing the traffic between the application and the mainframe, analyzing the way that system responds in, and building a sophisticated, dynamic model of that behavior which is then hosted as a virtual service that is accessible 24/7 in a virtual service environment.
Captured test data: We need more than just database access to have stable, relevant data for testing. We need the ability to make changes to the database rapidly without impacting other teams. SV allows you to recapture up to 50-60 percent of productive time on the database by modifying its behavior in an unconstrained virtual world, as opposed to the physical world.
Modeled Service under development: Using software, we can construct a model for that Web service from a WSDL, XML samples, or other artifacts, so that the teams can go productive much more rapidly as opposed to waiting for that contract to be signed, and then waiting for someone to build and deliver the Web service.
A significant last benefit of this approach is that it requires no third party access fees or costs for accessing pay-per-use or pay-for-volume types of services used in the software development lifecycle.
Organizations involved in the development and delivery of complex, modern applications should consider the benefits afforded by service virtualization. Service virtualization allows development and testing teams access an ever-increasing number of dependent services and systems of record that are not readily available. It is a strategy for letting teams take the principles of virtualization beyond the data center and simulate more distributed, complex environments where significant value can be realized.
The author is CEO and President, iTKO