. Updated Daily. Editions SDA India   SDA Indonesia
JAX Asia 2008 - Conference for Enterprise Java, SOA, Spring, Web Services, Ajax, Agile and more
BUSINESS ENTERPRISE SOLUTIONS ARCHITECTURE INFORMATION SECURITY WIRELESS & MOBILITY DATA & STORAGE DEVELOPMENT HARDWARE













Online Articles

 

Virtualisation To The Rescue


By Mike Clayville

 

This article shows how VMware software improves testing productivity and eliminates hardware bottlenecks for testing and deployment.

 

VMware virtual infrastructure software simplifies test configuration management and eliminates the need for a physical machine for each configuration to be tested.

Virtualisation technology can dramatically reduce software development and testing cycles by shortening the time needed to provision, install, build, test and restore a new machine from days to minutes.

Development teams can leverage the portability of VMware ESX Server, VMware GSX Server and VMware Workstation virtual machines to easily share development environments and pre-packaged operating system (OS)/application testing configurations without risk.

This article shows how VMware software improves testing productivity and eliminates hardware bottlenecks for testing and deployment.

The IT Challenges of Developing, Testing and Deploying Applications

Application development and testing for today’s enterprise is a complex undertaking that involves the support of diverse computer and network environments, collaboration within geographically distributed teams, and resolution of resource conflicts.

One of the most significant challenges for development and testing is high hardware resource requirements. Many development engineers need two to four physical systems for application development and functional testing. The most common scenario is a developer having to validate applications on multiple versions and service packs of Windows operating systems, where each OS is installed on a separate physical machine. Similarly, developing multi-tier applications requires several systems, each hosting an application tier. Yet another example of a scenario requiring multiple machine use is when an additional system is needed to run development tools such as a kernel level debugger or network analyser. Even developers for whom a single development system is sufficient, if developing for Linux, may still need additional systems to be able to use standard office productivity tools.

The situation is even more serious in testing centers, where test server resource conflicts may result in projects being stalled for weeks at a time. The number of servers in the test labs is limited both by capital budgets and facilities space and power constraints. To start a QA cycle on any application, the test servers need to be configured from scratch for a specific application. The setup and configuration period can take from several days to as long as two weeks. Because of this long setup period, the servers remain dedicated to the testing of the specific application for the duration of the QA cycle. The obvious issues with this approach are the length of testing cycle, contention for QA hardware resources by different applications, idle period during setup time, and the inability to temporarily switch to QA of a different application if a high priority defect surfaces.

In addition to hardware constraints, there are other hindrances that affect developer productivity and software quality and prevent development, QA, and IT teams from improving development and deployment time for new applications. These challenges include:

· Need to have an isolated “sand box” environment for application development and pre-deployment testing, so that the new applications do not corrupt the existing enterprise IT infrastructure

· Difficulties in creating realistic test environments for production rollouts. Examples include validation of compatibility between the server application and other elements of the infrastructure and compatibility with clients running on different operating systems and connecting to the servers via different technologies

· Need to collaborate within a geographically distributed development team and need to communicate complete configuration information between QA, support, and development teams for effective fault reproduction

· Difficulties in automating regression and repetitive tests, which may include multiple rebooting and deliberately introduced failure conditions

· By virtualising test and development environments, application development teams are able to remove hardware constraints, improve efficiency, and improve the quality of both individual applications under development and the entire enterprise information system infrastructure.

VMware Virtual Infrastructure Software: The Silver Bullet

VMware software changes the game for development and testing by abstracting development and testing environments from the physical systems that execute workloads.

VMware virtualisation technology allows multiple operating systems and software applications to run concurrently in virtual machines on a single Intel-based computer. This technology also allows creation of a library of encapsulated development or testing environments that can be instantly deployed to any physical machine with spare hardware capacity.

Virtualisation thus allows testing teams to both reduce hardware resource conflicts and significantly shorten test cycles by eliminating configuration and setup periods. Specifically, VMware software enables enterprise IT engineers to greatly improve enterprise software development, testing, and deployment through such processes as:

· Running multiple operating systems concurrently on the same computer, including multiple versions of Microsoft Windows, Linux, NetWare and DOS

· Consolidating multiple virtual test machines onto a single physical platform

· Moving between operating system environments without repartitioning or rebooting

· Creating libraries of virtual machines with standard test environments and tools for each OS and network configuration

· Suspending virtual machine instances that can be stored and restarted at any time

· Building complex networks and developing, testing, and deploying new software on a single box

· Allowing several developers simultaneous access to a virtual machine

· Automating tests sequences, including the ones that require system restart

Whether the situation requires VMware Workstation on the desktop of an individual developer, GSX Server for consolidating test servers and developing multi-tier departmental applications, or ESX Sever for pre-deployment staging of data centre applications, VMware technology helps enterprise IT and application development teams in two significant ways: it reduces the amount of hardware needed for application development, testing and deployment while increasing developer productivity and software quality.

Eliminate Hardware Bottlenecks

Virtualisation allows multiple complete systems (including BIOS, operating system, security patches, and any applicable development tools) to run simultaneously on the same physical platform with each unaware and essentially unaffected by each other’s presence. Effectively, each development platform (server or desktop) is dynamically partitioned into multiple isolated independent platforms that can be used for different applications and environments, eliminating hardware bottlenecks.

Fig. 1:




Virtual machines are encapsulated in as few as two files, with no registry entries or other artifacts connecting them to physical systems, making them easy to capture and restore. As shown in Fig. 1, IT teams can create an easily accessible library of standard test environments complete with operating systems, standard patches, and development tools.

Further, virtual test banks can be set up for each of the applications under development. Both standard development environment libraries and test banks are stored as files in a centrally-accessible location and can be easily restored to any physical platform with available CPU and memory capacity as fast as a server can be restarted. Setup and configuration time is eliminated, which in turn brings test servers’ idle time from an average of 50 percent down to 5 percent or less.

The ability to virtualise network elements with VMware virtualisation technology allows developers to create a “network in the box” without the need for multiple physical platforms for multi-tier application development and a dedicated development network. In addition to reduced hardware requirements, this approach also results in significantly improved fault isolation.

Reducing the amount of hardware required for development, testing and deployment of enterprise applications results in significant operational savings:

· Capital expenditures are reduced

· Less space is required

· Less desktop space is required at individual developer’s work place

· Smaller test and deployment labs support the same effective hardware setup

· Power and cooling costs are significantly reduced

· Testing hardware is immediately reduced by 40 to 80 percent

· The need for IT effort to maintain hardware and software in development environments is reduced

Increase Productivity and Software Quality

In addition to eliminating hardware bottlenecks, virtualisation dramatically improves enterprise application development and testing efficiency. Enterprises with stringent quality requirements and highly distributed teams can now easily standardise their development environments.

Fig. 2:




As shown in Fig. 2, standard development environments for different application systems are now accessible to development teams across the globe. The encapsulation aspect of VMware software allows creation of virtual test banks for each application under test. Each test environment is created by copying a “gold” virtual machine with all the necessary software pre-installed and making minor subsequent modifications as needed. Labour-intensive tasks such as installing the operating system, applying necessary patches, and deploying development tools are eliminated from all but the original setup. Additionally, when the application is not being tested, the associated virtual test bank is powered off and does not consume any computing resources.

As there is no contention for physical resources, the test configurations for each application are stored for the lifetime of the application, which allows developers to easily address high priority support calls on older software releases. The ease of configuration and the ability to maintain more extensive test banks enables implementation of more extensive test plans including operating system, patch and applications variations and results in improved software quality. Additionally, because testing in clean environments is no longer associated with daunting system reconfiguration, all the tests are now conducted from a “clean state”, which eliminates possible ambiguities in fault location and improves QA productivity. Running test configurations in virtual machines reduces test cycle time and decreases delays caused by software failures or corruption in test systems. With VMware server software, each virtual machine is completely isolated and can be restarted quickly if the software under test fails. Using advanced virtualisation features such as snapshots, developers can discard any changes from a test run and return the test client to a known good state without the need for a reboot or software reinstallations.

Furthermore, the snapshot feature of VMware virtual machines allows developers and QA to capture the complete state of the virtual machine including disk, memory and register state. In effect, it is a running application frozen in time. Using VMware software, the developer addressing the fault can simply restore the failed virtual machine from a snapshot provided by the QA team and troubleshoot it, rather than painstakingly trying to reproduce application fault on a dissimilar physical system. The Virtual Machines can be seamlessly migrated between any virtualisation platforms. For example, once the development of the application layer is complete on the VMware Workstation, it can be migrated to GSX Server for multi-tier testing. VMware technology improves collaboration in geographically distributed development and testing teams by providing the ability for multiple developers to access the same virtual machine by connecting to it via remote console. Two or more developers can be making modifications to the code and view the results in real time. VMware further improves productivity with VirtualCenter, which allows IT teams to manage all the enterprise’s virtualised resources, including test and development virtual machines, from a central location. With VirtualCenter, an administrator can manage thousands of Windows NT, Windows 2000, Windows 2003, Linux and NetWare servers from a single point of control. The VirtualCenter interface provides an overview of all the virtual resources in a data center.

VMware software also allows IT teams to create a central library of operating systems, pre-installed servers, and development tools that are easily accessible from any location.

VirtualCenter features include:

Template Library: VirtualCenter allows administrators to manage a versioned library of server templates that can be used to provision new services and allow precise and easy-to-manage version control. IT managers can also easily create new templates from running systems. For example, a test server, that contains a collection of multiple applications with unexpected interactions that took a long time to build, can instantly be turned into a test bank image for regression testing.

Provisioning and Resource Allocation: IT managers can use the VirtualCenter interface to provision new Windows NT, Windows 2000, Windows 2003, Linux or NetWare servers to the pool of hardware resources.

Monitoring and Alerting: Threshold and event alerts can be configured for a large number of events within the virtual infrastructure, including server failures and over/underutilisation events.

API and SDK: VirtualCenter provides a rich software development kit (SDK) integration capability so that routine events can be automated or triggered by external systems. It also incorporates a robust access control framework so levels of access can be granted to IT staff with different rights and privileges to manage the infrastructure. SDK is recommended for automation of production deployments with ESX Server.

The scripting application programming interface (API) allows third-party applications to control virtual machines including suspend, shutdown and restart of a virtual machine. The API is ideally suited for automating test solutions, which is especially valuable for high volume and regression tests.

For example, consider the IBM Rational and VMware Test Lab Automation Solution, a test automation solution jointly developed by IBM and VMware, which brings together the software testing management benefits of the Rational Test Suite family and the virtualisation technology of VMware GSX Server. The IBM Rational and VMware Test Lab Automation Solution provides Rational Test Manager with the ability to automatically select from an array of test configurations with installed Rational Test Agents contained in VMware GSX Server virtual machines and control their execution state. This allows test teams to automate software testing across a large number of configurations.

Finally, VMware GSX Server and ESX Server provide significant benefits for pre-deployment testing and staging. By maintaining staging environments in virtual machines, IT departments always have servers available to conduct pre-deployment testing or conduct limited controlled deployments to ensure compatibility of the new application with the rest of the enterprise IT environment. Virtual test environments are flexible, enabling IT teams to simulate complex environments with less hardware and minimal setup time.

This flexibility enables better testing to ensure smooth and timely rollouts of new applications, with fewer bugs and fewer performance issues. In addition, the IT team operates more efficiently since tests can be replicated easily and accessed remotely by any member of the deployment team. Moreover, once the testing and staging is completed, the virtual machine can be easily moved into production with no user downtime. This process compresses deployment and rollout of new software.

The following example illustrates how VMware customers use virtualisation software to improve productivity during their software development and testing:

· Sharing a reusable library of hundreds of test environments that can be accessed and run on any computer

· Always having the required test environment available in a clean state

· Restarting tests with a clean state instantly

· Creating multi-machine environments for testing complex applications on a virtual network, such as clustering, VPN and firewalls, and domain servers

· Creating more realistic tests to improve testing quality

· Spending less time configuring test environments and more time testing

Customer Case Studies

This section summarises how major companies have deployed VMware software and improved IT efficiency while reducing their operational costs.

Customer

Investment Bank

Brokerage

Government Contractor

Goals of VMware Software Deployment

Replace old limited function VPN with richer web-based applications

Overhaul development, test and integration infrastructure to meet new business demands

Support secure access to complex environment for remote developers

Major Benefits

Centralised environment for 17 developers on three 4-CPU servers

Accelerated time-to-market for new applications

Allowed remote developers access to their own virtual environment

Increased developing and testing productivity by sharing common configurations

Automated server creation via the web

Reduced hardware costs by consolidating physical machines

Decreased server downtime by 60 percent

Saved time by creating standard test environments/ configurations and replicating them quickly

Simplified management of security policies

Compressed time required for replicating dev and test environments in off-shore setups where it can take weeks – a virtual machine image is zipped up and sent as by FTP

Accelerated time required for deployment and execution of programs

Cost Savings

Saved US,000 in annual hardware expenditures

Saved US.6 million in operations costs (labour and facilities)

Significantly reduced security management expenditures

Saved more than US,000 per developer per year in labour costs

Reduced hardware costs by 80 percent

Reduced network bandwidth needs by 50 percent

Realised hardware costs savings of US million

Mike Clayville is the Vice-President and General Manager of VMware, Asia Pacific.

 
print save email comment

print

save

email

comment

 
 

Search SDA Asia

Free eNewsletter

SDA Asia Magazine Free Download
 
 
 
Copyright @ 2008 SDA Asia Magazine - All Right Reserved Privacy Policy | Terms of Use