450 likes | 673 Views
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
E N D
Using Virtualization to Improve Testing Anil Desai IEEE Computer Society, Austin Chapter April 18th, 2007
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 Anil@AnilDesai.net
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
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
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
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) • Conversion of an existing physical machine into a virtual machine • Operating system, settings, and all data
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 • 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 • Can revert virtual machines to their initial state • Can create “snapshots” after changes • Can roll back to a particular snapshots
Estimating VM Resource Requirements • Number of VMs • Estimated memory per VM • Estimated disk space per VM • Resource usage estimates
Determining VM Placement Approach: Categorize VMs based on resource utilization Combine VMs that have “compatible” workloads
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
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 • Goals: • Minimize the number of base images • Include as much functionality as possible
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
Automating Virtualization • Common operations can be scripted or automated • Test Lab Management Applications • Web-based • Client-based
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 • 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 • 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 • Backup VM files from the host file system • Host-Level Backup Options:
For More Information • Resources from Anil Desai • Web Site (http://AnilDesai.net) • E-Mail: Anil@AnilDesai.net • 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 Q & A, Discussion