200 likes | 332 Views
This presentation by Xenios Papademetris from Yale University explores the use of virtualization in software development and testing, specifically in the context of the Yale PET Center. It details the development of a database system that tracks imaging and processing details and discusses how virtualization enhances the management of complex data. The presentation covers the setup of virtual machines, their benefits for testing and development, and the seamless migration of server setups, emphasizing the controlled environments that virtualization provides to optimize software development and testing processes.
E N D
The use of Virtualization for Software Development and Testing Xenios Papademetris Departments of Diagnostic Radiology and Biomedical Engineering Yale University
Structure of Presentation • Part I • Review supplement project progress • Part II • Describe virtualization • Show how we use it at Yale
Supplement Grant Background • Yale PET Center database system has been developed over last 5 years (Yale/NIH) • Keeps track of • Images • Processing Details • Charging • Amount of Injections each patient has had • Integrated with Scanners for direct import of DICOM data • Enables the management of large studies and the reporting on the current state of the analysis
Aims of Supplement • Generalize server to better handle fMRI data as well as PET • Document server • Provide a VTK-based library for interfacing to the server • Distribute server setup as a virtual machine for turn-key installation • Key Note: The server stores image filenames not images, hence total storage demands are low (<30MB for Yale PET Center)
Library Mostly Done • A number of custom classes to map key tables • E.g. vtkbisPatient, vtkbisInjection • Leverages vtkMySQL interface • Demo Application below is about 100 lines of TCL
Virtual Server Applicance • Our goal is to (as an option) Distribute server setup as a virtual machine for turn-key installation • Database server installation is complex • Many dependencies • Virtual machines allow a completely configured server to be downloaded in “a box”
Virtualization • Allows a “guest” machine to run inside a “host” machine • Most commonly used setup is VMware (server/player/workstation) • Other options • Parallels (especially on Mac OS X) • Microsoft Virtual PC • XEN • QEMU • KVM
How does it work in practise? • Easiest and cheapest way (i.e. free) • Install VMware Server (preferably on Linux) • Within this create virtual machine with virtual processors, virtual memory , virtual disk etc. • Install guest OS in virtual machine • This last process if practically identical to installing OS on actual computer (only faster)
Our Testing Setup This is our test database server
Virtualization Selling Points (From vmware.com) • Host legacy applications and overcome platform migration issues • Configure & test new software or patches in an isolated environment • Automate tasks for software development and testing • Demonstrate multi-tier configurations on a single PC
Benefits I • Virtual Machines allow for completely controlled environments • Minimal software installation • (e.g. Windows 2000, Visual Studio 2003.NET, Emacs, Subversion, base libraries) • No unnecessary stuff that might interfere with development (especially on Windows) • Easy backup (a set of files) • Snapshots etc • Try upgrade if fails, can revert back to original config
Benefits II • Allow for complex setups to become hardware independent and move from server to server • BioImage Suite subversion server runs off a virtual machine • If we need to migrate it to a more powerful server the virtual machine can simply be “copied” over preserving all its configuration as is. • Upgrades to base server do not affect virtual server.
Benefits III • Allows for testing/development on more OS than one has machines available or desire to have on a desktop • E.g. we still compile on Windows 2000 but have no physical Windows 2000 machine around • Multiple versions of Linux – our cluster runs Centos 5 but we have Debian/Ubuntu/Fedora/RedHat virtual machines • Nobody wants Solaris on a desktop …
Limitations • Accelerated Graphics • No Open GL acceleration in a virtual machine hence display is slow • Solution (for Unix) – set the DISPLAY variable to point to a “real” machine • No MacOS X guests possible (Apple license is horribly restrictive) • Possible workaround – use OpenDarwin as a platform – this is painful however • Still naturally need legal licenses for Windows virtual machines.
Uses of Virtualization in BioImage Suite • Testing -- most of the dashboard below comes from various virtual machines • Development – e.g. different compilers • Problem Solving (e.g. User reports that BioImage Suite will not run of Fedora Core 8)
Uses in the Community • FSL on windows ships as a virtual machine • i.e. instead of FSL for windows you get FSL on Linux bundled with a linux virtual machine • Lots of appliances (e.g. safe browsing applicance etc)
Conclusions • Virtualization is a powerful tool for software development • Can save on number of machines needed for proper testing • Useful for “controlled” software development • Little or not cost, easy learning curve • Can also be very useful in server partitioning http://www.virtualization.info/
Acknowldgments • R01EB006494