Using virtualization to improve testing
This presentation is the property of its rightful owner.
Sponsored Links
1 / 45

Using Virtualization to Improve Testing PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on
  • Presentation posted in: General

Using Virtualization to Improve Testing. Anil Desai IEEE Computer Society, Austin Chapter April 18 th , 2007. Speaker Information. Anil Desai Independent consultant (Austin, TX) Author of virtualization books and articles Managing / Scripting Microsoft Virtual Server

Download Presentation

Using Virtualization to Improve Testing

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Using virtualization to improve testing

Using Virtualization to Improve Testing

Anil Desai

IEEE Computer Society, Austin Chapter

April 18th, 2007


Speaker information

Speaker Information

  • Anil Desai

    • Independent consultant (Austin, TX)

    • Author of virtualization books and articles

      • Managing / Scripting Microsoft Virtual Server

      • SearchServerVirtualization.com

      • The Definitive Guide to Virtual Platform Management

    • Info: http://AnilDesai.net or [email protected]


Presentation overview

Presentation Overview

  • An Overview of Virtualization Technology

  • Virtualization Features & Scenarios

  • Virtualization Benefits for Dev/Test

  • Comparing Virtualization Approaches

  • Using Virtualization Features for Dev/ Test

  • Managing and Optimizing Virtualization


An overview of virtualization technology

An Overview of Virtualization Technology


What is virtualization

What is Virtualization?

  • Virtualization abstracts the underlying physical structure of various technologies

    • Examples:

      • Storage virtualization

      • Network virtualization

  • Server virtualization

    • Creates multiple isolated environments

    • Allows multiple OS’s and workloads to run on the same physical hardware

    • Solves the problem of tight coupling between OS’s and hardware


Virtualization architecture

Virtualization Architecture


Benefits of virtualization

Benefits of Virtualization

  • Simplified administration

  • Hardware independence/portability

  • Increased hardware utilization

  • Server consolidation

  • Decreased provisioning times

  • Improved security

  • Software Development

  • Testing / Quality Assurance

  • Product evaluations / demonstrations

  • Training

  • Disaster Recovery

Virtualization Features

Virtualization Scenarios


Emulated hardware platform

Emulated Hardware Platform


Understanding virtual hard disks

Understanding Virtual Hard Disks


Virtual network overview

Virtual Network Overview


Virtual network examples

Virtual Network Examples


Virtualization features scenarios

Virtualization Features & Scenarios


Deployment steps

Deployment Steps


Server consolidation

Server Consolidation


Load balancing

Load-Balancing


Training test labs

Training / Test Labs


Virtualization candidates

Virtualization Candidates

  • Getting Started

    • Migrate existing apps / physical machines

    • Create new virtual machines from scratch

  • Virtualization may not work well for:

    • Resource-intensive applications

      • VMs may have RAM/CPU/SMP limitations

    • Performance testing

    • Hardware compatibility testing

    • Specific hardware requirements

      • USB

      • Custom hardware devices


Physical to virtual p2v

Physical-to-Virtual (P2V)

  • Conversion of an existing physical machine into a virtual machine

    • Operating system, settings, and all data


Virtualization benefits for development testing

Virtualization Benefits for Development / Testing


Technical benefits for dev test

Technical Benefits for Dev/Test

  • Simplified Administration

  • Duplicating / recreating intermittent problems

  • Quick Deployment

  • Portability (Moving / Copying VMs)

    • For troubleshooting and recreating defects

    • Load-balancing

  • Standardized hardware configuration

  • State management for virtual machines


Development testing related scenarios

Development/Testing-Related Scenarios

  • Setting up a complex test lab

    • Testing multi-tier applications

    • Isolated networks

    • Simulating multiple clients

  • Rapid setup and tear-down of test environments

    • Consistent configurations

    • Ability to easily roll-back changes

    • Automation of VM setup and software installation


Virtual machine roll backs

Virtual Machine Roll-Backs

  • Can revert virtual machines to their initial state

  • Can create “snapshots” after changes

    • Can roll back to a particular snapshots


Estimating vm resource requirements

Estimating VM Resource Requirements

  • Number of VMs

  • Estimated memory per VM

  • Estimated disk space per VM

  • Resource usage estimates


Determining vm placement

Determining VM Placement

Approach:

Categorize VMs based on resource utilization

Combine VMs that have “compatible” workloads


Comparing virtualization solutions

Comparing Virtualization Solutions


Virtualization approach overview

Virtualization Approach Overview


Server level virtualization example

Server-Level Virtualization Example


Virtualization options

Virtualization Options


Virtual server vs virtualpc

Virtual Server vs. VirtualPC

  • Improved performance (multi-threaded)

  • Web-Based Administration

  • Scripting and automation support (COM API)

  • Improved security

  • Advanced networking

  • Manageability

  • SCSI Device Support

  • Reliability/availability features (clustering)

  • Optimized for one or a few concurrent VMs (single-threaded)

  • Simplified administration

  • Sound card emulation

  • Easier file sharing

  • Automatic client desktop resizing

Virtual Server 2005

VirtualPC


Selecting the best approach

Selecting the Best Approach


Using virtualization for development and testing

Using Virtualization for Development and Testing


Setting up a test lab

Setting up a Test Lab

  • Create overall test plans and requirements

    • OS and version requirements

    • Service Packs / updates, etc.

    • Hardware configurations for VMs

      • CPU, Memory, Disk Space, Network configuration

  • Create a naming convention for VMs

  • Create base images

  • Create network address conventions

    • IP address ranges and subnets

    • Support for multi-tier applications

    • Multiple networks (host-only, routed, NATs, etc.)


Designing base vm images

Designing Base VM Images

  • Goals:

    • Minimize the number of base images

    • Include as much functionality as possible


Disk hierarchy example

Disk Hierarchy Example


Deploying software

Deploying Software

  • Media-based deployments

    • Automatic mounting of ISOs

  • Network-based installations

    • Automated OS Deployment

      • Image-based or PXE Booting

    • Application Deployment

      • OS Startup Scripts and Network shares

  • Third-party software distribution tools


Creating application stacks

Creating Application Stacks


Automating virtualization

Automating Virtualization

  • Common operations can be scripted or automated

  • Test Lab Management Applications

    • Web-based

    • Client-based


Virtual server com api

Virtual Server COM API


Managing optimizing virtualization

Managing & Optimizing Virtualization


Vm maintenance

VM Maintenance

  • Establish a base library of images

    • Ensures consistency

    • Helps in troubleshooting

    • Prepare VMs for duplication (SysPrep)

  • Create a Library of ISO files

  • Manage virtual machines as if they were physical machines

    • Security updates

      • Automatic Updates (if supported in Guest OS)

      • Microsoft Baseline Security Analyzer (MBSA)

      • Windows Server Update Services (SUS)

    • Patches

    • Corporate security standards

  • Configure anti-spyware / anti-malware exceptions

    • *.vhd, *.vud, *.vsv, *.iso


Managing performance

Managing Performance

  • Profile your applications

    • Windows System Monitor

      • Counter Logs

    • Event Viewer

    • Task Manager

    • Windows Management Instrumentation (WMI)

    • Microsoft Operations Manager (MOM)

    • Systems Management Server (SMS)

  • Monitoring Approach:

    • Host Server: Aggregate performance data

    • Guest OS: Detailed resource usage


Vm backup and recovery

VM Backup and Recovery

  • Backup and Recovery

    • Option 1:

      • Shut down/save state of the VM

      • Copy all required files.

      • Resume the VM

    • Option 2:

      • Use Backup Agents within the Guest OS.

  • Automating backups:

    • Build scripts/applications to automate virtual machine backup and recovery:

      • 1) Save state of the virtual machine

      • 2) Copy all related files

      • 3) Resume the virtual machine


Implementing host level backups

Implementing Host-Level Backups

  • Backup VM files from the host file system

  • Host-Level Backup Options:


For more information

For More Information

  • Resources from Anil Desai

    • Web Site (http://AnilDesai.net)

    • E-Mail: [email protected]

    • Keystone Learning Course: “Microsoft SQL Server 2005: Implementation and Maintenance (Exam 70-431)”

    • The Rational Guide to Managing Microsoft Virtual Server 2005

    • The Rational Guide to Scripting Microsoft Virtual Server 2005


Summary conclusion

Summary / Conclusion

Q & A, Discussion


  • Login