A Practitioner's Approach to Successfully Implementing Service Virtualization - Page 4
We have mainly focused on the service virtualization for middleware and SOA components, however many products can virtualize databases. The lifecycle methodology is mostly the same for both, database and service virtualization. Leads may prefer to virtualize databases if they believe that the data population and subsetting requirements are easier at the database level than for a larger component. This is more commonly seen when a service derives limited data from a simple target database, derives complex data and composes or orchestrates it across other enterprise services. It is easier in such scenarios to virtualize the simpler and smaller target database than the more complex composite services. This is why you should look into automating the process of virtualizing with “just the test data you need” by capturing these scenarios from pre-production or production databases.
The implementation phase involves the creation of virtual services and populating them with data, ensuring accurate performance. The data induced virtual images are then ready for deployment to virtual environments.
Based on the environment and testing/development requirements, a virtualization team may begin implementing virtual services, even if the larger SOA project is still in the analysis and design phase. As a matter of fact this is needed if the virtual services will be deployed in the development environment for alleviating the development resource constraints.
In this phase virtualization teams populate empty (no data) services with data. Virtual images can derive test data by recording and then masking the production information or through artificial data creation. Steps for capturing production data varies across products but for the most part resemble:
- Configure the recording components to point to the right targets for observing traffic.
- Modify the captured data to create an appropriate subset for usage in virtual images.
- Mask sensitive data.
- Ensure that all scenarios are covered by the test data.
For creating artificial data, virtualization teams often start by collating data into a simple worksheet for stubbing the image. This is then available for import into the virtualization product. There are more advanced ways to automate this import dynamically from live transactions or data sources (for more information see the series of joint papers between Infosys and ITKO and blogs on Test Data Management (TDM) to know more about production level and DevTest environments).
Virtualization teams exit the implementation phase after ensuring that a virtual service can indeed perform for all the identified use cases. The virtual images created as a result of this phase are now ready for use in the next phase.