Mark Zhitomirski
ITS-EXPERT LLC
Virtualization Technology for Test Automation
The purpose of computing is insight,
not numbers.
Richard Hamming, 1915-1998
In preface to
Numerical Methods for Scientists and Engineers, 1962
Dictionary
Virtual, adj: being such in essence or effect though not formally recognized or admitted.
From Medieval Latin virtualis, from Latin virtus (virtue). First known use: 15th century.
VM: see Virtual Memory; Virtual Machine
VFS: ...
VLAN: ...
VNC: see VDI
VPN: ...
VPS: ...
See also: Hyper-V, Cloud, AWS, GAE, Microsoft Azure
VLAN: Virtual LAN
isolation, confidentiality
policy enforcement, authentication (optional)
partitioning (broadcast domains), equipment re-use = better ROI
Alternatives?
less flexible
more expensive in terms of equipment and labor cost, space used
VPN: Virtual Private Network
isolation (from i-net, from each other), confidentiality
policy enforcement, authentication
partitioning, authorization, private address spaces
Alternatives?
yes, but .. let's face e.g. “IP authentication” shortcomings
It's “nice to have” public IP on each device, but what do you do with security?
What else can be virtualized?
memory – VM and Paging pioneered by Ferranti Atlas in 1952 (with University of Manchester and Plessey)
runtime (library functions) or Virtual Machine – Java VM, .Net CLR, Dalvik (Android JVM)
filesystem - chroot in Unix – same kernel, network stack, CPU
filesystem (in user-mode) (SSHFS, Windows “share” mapping, here and above VFS is in game)
filesystem+network (sandbox, FreeBSD jail, Google Chrome sandbox)
sandbox + resource slice management/accounting – OpenVZ/Virtuozzo (specific shortcomings – no IPSec, memory management/accounting granularity); Solaris containers, AIX WPARs
OS – UML (StrongSWAN IPSec testing), colinux – same CPU
Desktop – VDI
Periphery – virtual CD / Printer / LAN adapter (common case for VPN)
Hardware – also called emulation or simulation Running legacy OS/ Apps – Hercules – run VM/370 or zSystem Linux on PC, MAME, virtualII modelling / verifying future hardware / system products
Full (system) virtualization CPU HDD, other storage e.g. CD, tape Network Graphics / video Input – keyboard, mouse USB, whatever is specific to emulated platform (HPET)
What suggests System Virtualization?
desire for a well defined state
“clean”, “initial”, “fully configured” and ready to go etc.
necessity to run incompatible environments
legacy apps/OS
IE6/7/8/9
Unix/Windows/MacOS X
security concerns and security research (sandboxing)
computing as utility
manageability, accountability requirements
equipment / resource re-use to increase efficiency and reduce manual labor
Notable system virtualization products
Early players:
Connectix: Virtual PC for (PowerPC) Mac 1997
VMware – founded 1998
Xen research project; public release 2003; offsprings: Sun xVM, Oracle VM, VirtualIron
Ascending
kvm (qemu-kvm) runs on Linux, also ported to Illumos (ex-OpenSolaris), FreeBSD
Hyper-V
Caveat: “paravirtualization”, hypervisor type 1 vs 2 – skip it and forget
VM and VDI – not unlike hand and glove
Precursors:
Text (and later “graphics”) terminals
X11 protocol and terminals
RFB: VNC – UK Olivetty (& Oracle) Research Lab ca. 1997, before that – Acorn, later AT&T
Teleconferencing systems (who knows TELEX? WRU?)
Current:
Xen – Citrix ICA
Hyper-V – RDP(+RemoteFX)
Sun xVM (Oracle VM) – ALP AIP. Before Sun – IXI Ltd, Cambridge, UK + Visionware, Leads,
UK; then SCO Tarantella, bought by Sun in 2005.
kvm – SPICE (and a legacy VNC)
VMware – PcoIP (Teradici)
Future:
HTML 5 ? or 6 ?
What’s the catch?what can go wrong with system virtualization?
Additional complexity, layer of indirection
Performance overhead
Licensing issues and costs (besides costs of VM Host solution and management tools, e.g. You
are not allowed to run W7HB in VM)
Hard-to-virtualize architecture (PC and x86, high-speed systems)
i/o is always a bottleneck
Temporal characteristics (non-linear time in VM, TSC on Pentium+, timekeeping)
Not obvious, hard to track problems, e.g. snapshots vs. “rich state” - do not snapshot AD
controller!
Personal success story and a use case
2009H2 Kind of cross-platform development – development machine -
Windows XP, target – RHEL5. Work cycle: check-out code - rebuild C++ pre-
requisites from XML templates - index code. Sun VirtualBox 3.0 chosen over
Vmware Workstation 6 on performance points. Not to mention cost,
acquisition/licensing concerns. Oops, that was not testing.
Use case - demo:
fire two pre-configured VMs: Windows and Linux
deploy “new version of application” under test to both platforms
“test” them and display result
Contacts
Thank YouMark Zhitomirski
Email: [email protected]
EXTENT Conference – October 2011
Test Automation for Trading Systems
Marriot Renaissance Moscow Hotel, 29-30 October
Тел: +7 (495) 640 2460
Email: [email protected]