using virtualization to improve testing

45
Using Virtualization to Improve Testing Anil Desai IEEE Computer Society, Austin Chapter April 18 th , 2007

Upload: tracen

Post on 25-Feb-2016

40 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Using Virtualization to Improve Testing

Using Virtualization to Improve Testing

Anil DesaiIEEE Computer Society, Austin Chapter

April 18th, 2007

Page 2: Using Virtualization to Improve Testing

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]

Page 3: Using Virtualization to Improve Testing

I. An Overview of Virtualization Technology

II. Virtualization Features & Scenarios

III. Virtualization Benefits for Dev/Test

IV. Comparing Virtualization Approaches

V. Using Virtualization Features for Dev/ Test

VI. Managing and Optimizing Virtualization

Presentation Overview

Page 4: Using Virtualization to Improve Testing

An Overview of Virtualization

Technology

Page 5: Using Virtualization to Improve Testing

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

What is Virtualization?

Page 6: Using Virtualization to Improve Testing

Virtualization Architecture

Page 7: Using Virtualization to Improve Testing

Benefits of Virtualization

Virtualization Scenarios

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

Page 8: Using Virtualization to Improve Testing

Emulated Hardware Platform

Component Specifications

Chipset Intel 440BX

CPU Based on the host CPU (single CPU only)

BIOS AMI BIOS

Video S3 Trio 32/64 with 4MB of video memory

Memory Up to 3.6GB

Input Devices PS/2 Mouse and Keyboard

Floppy Drives Up to two 1.44MB 3.5” floppy drives

Communications Ports

2 Serial Port1 Parallel Port

IDE Controllers Two channels, each of which supports up to two devices each (up to four IDE total devices)

SCSI Controllers Up to four Adaptec 2940 SCSI Controllers (each supports up to 7 devices; 28 devices total)

Network Interfaces

Up to four Intel 21140 10/100Mb network interface cards

Page 9: Using Virtualization to Improve Testing

Understanding Virtual Hard Disks

Page 10: Using Virtualization to Improve Testing

Virtual Network Overview

Page 11: Using Virtualization to Improve Testing

Virtual Network Examples

Page 12: Using Virtualization to Improve Testing

Virtualization Features & Scenarios

Page 13: Using Virtualization to Improve Testing

Deployment StepsPlanning

• Determining hardware requirements• Coordination with business leaders

Purchasing• Hardware selection• Approvals processes• Budgeting

Physical Deployment• Finding rack space• Physical "racking"• Network and power connections

Server Configuration• OS Settings• Application installation• Network Settings

Page 14: Using Virtualization to Improve Testing

Server Consolidation

Page 15: Using Virtualization to Improve Testing

Load-Balancing

Page 16: Using Virtualization to Improve Testing

Training / Test Labs

Page 17: Using Virtualization to Improve Testing

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

Virtualization Candidates

Page 18: Using Virtualization to Improve Testing

Conversion of an existing physical machine into a virtual machine◦ Operating system, settings, and all data

Physical-to-Virtual (P2V)

Page 19: Using Virtualization to Improve Testing

Virtualization Benefits for

Development / Testing

Page 20: Using Virtualization to Improve Testing

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

Technical Benefits for Dev/Test

Page 21: Using Virtualization to Improve Testing

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

Development/Testing-Related Scenarios

Page 22: Using Virtualization to Improve Testing

Can revert virtual machines to their initial state

Can create “snapshots” after changes◦ Can roll back to a particular

snapshots

Virtual Machine Roll-Backs

Page 23: Using Virtualization to Improve Testing

Estimating VM Resource Requirements

Number of VMs Estimated

memory per VM Estimated disk

space per VM Resource usage

estimates

VM Name CPU Memory Disk Network

WebApp01 Low Low Medium High

WebApp02 Low High Low Low

WinXPTest Low Low Medium Low

FileServer01 Low Medium High High

Page 24: Using Virtualization to Improve Testing

Determining VM Placement

Workload CPU Util. Memory Util. Disk Util. Network Util.

Public Web Server

Low Low Low High

Web Application Server

Medium Medium Low Medium

Middle-Tier Server (CRM Application)

Medium High Low Low

Database Server (CRM Application)

High High High Medium

Approach: Categorize VMs based on resource utilizationCombine VMs that have “compatible” workloads

Page 25: Using Virtualization to Improve Testing

Comparing Virtualization

Solutions

Page 26: Using Virtualization to Improve Testing

Virtualization Approach Overview

Applications

• Server applications• Office productivity applications

Operating System

• Device Drivers• Services

Hardware

• CPU, Memory, Disk, Network hardware• Other peripherals

Page 27: Using Virtualization to Improve Testing

Server-Level Virtualization Example

•Supported guest OS's•Windows XP, Windows Server 2003, Linux, etc.

Virtual Machines

•Microsoft Virtual Server 2005 R2

Virtualization Layer

•Windows Server 2003 R2•Device Drivers

Operating System

•CPU, Memory, Disk, Network•PeripheralsHardware

Page 28: Using Virtualization to Improve Testing

Application-Layer Virtualization

• Citrix, Microsoft SoftGrid, Terminal Services

Server Virtualization

• VMware Server, Microsoft Virtual Server

Hardware-Level Virtualization

• VMware ESX Server, XEN, Microsoft Hypervisor (“Viridian”)

Desktop Virtualization

• Virtual PC 2007, VMware Workstation, Parallels Workstation

Virtualization Options

Page 29: Using Virtualization to Improve Testing

Virtual Server vs. VirtualPC

Virtual Server 2005 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

Page 30: Using Virtualization to Improve Testing

Selecting the Best ApproachWorkload Virtualization

RecommendationNotes

Datacenter Server Consolidation

Hardware-Level orServer-Level

Performance is a key factor

Server applications are typically complex

Software Development and Testing Environments

Server-Level Manageability is a key requirement.

Users must be able to change hardware settings and OS levels.

Sharing End-User Productivity Applications

Application-Level orRemote Application Execution

Scalability is important. Applications are less

complex.

Page 31: Using Virtualization to Improve Testing

Using Virtualization for Development and Testing

Page 32: Using Virtualization to Improve Testing

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.)

Setting up a Test Lab

Page 33: Using Virtualization to Improve Testing

Designing Base VM Images Goals:

◦ Minimize the number of base images◦ Include as much functionality as possible

Base Client•Windows XP Professional Ed., SP2•Backup Agents•Anti-malware utilities•Security settings

Base Server

•Windows Server 2003 R2•Backup Agents•Anti-malware utilities•Security settings

Database Server

•All Base Server Components, plus:•SQL Server 2005 SP1•Database security configuration

Page 34: Using Virtualization to Improve Testing

Disk Hierarchy Example

Windows Server 2003

Windows Server 2003 R2

SQL Server 2000 SP4

SQL Server 2005 SP2

Web Server (IIS 6.0 enabled)

Web Server with SQLExpress database

Page 35: Using Virtualization to Improve Testing

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

Deploying Software

Page 36: Using Virtualization to Improve Testing

Presentation Servers

Application Servers

Data Access Layers

Database Servers

Operating System / Network Services

Creating Application Stacks

Page 37: Using Virtualization to Improve Testing

Common operations can be scripted or automated

Test Lab Management Applications◦ Web-based◦ Client-based

Automating Virtualization

Page 38: Using Virtualization to Improve Testing

Virtual Server COM API

Page 39: Using Virtualization to Improve Testing

Managing & Optimizing

Virtualization

Page 40: Using Virtualization to Improve Testing

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

VM Maintenance

Page 41: Using Virtualization to Improve Testing

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

Managing Performance

Page 42: Using Virtualization to Improve Testing

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

Page 43: Using Virtualization to Improve Testing

Backup VM files from the host file system Host-Level Backup Options:

Implementing Host-Level Backups

Cold Backups

•Stop VM & copy files•Can be scripted•Longest downtime

Warm Backups

•Pause VM & copy files•Minimal downtime

Hot Backups

•Backup while VM is running•File system snapshots•Can be risky

Page 44: Using Virtualization to Improve Testing

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

Page 45: Using Virtualization to Improve Testing

Summary / Conclusion

Q & A, Discussion