VIDA (VIrtual Deployment Architecture) is an ongoing project which aims at creating a SOA based infrastructure for the deployment and management of virtual clusters (VCs).
Virtualization is an essential technology for building computational infrastructures tailored to the needs of a research organization. Virtual machines (VMs) enable the specialization of operating systems towards particular tasks, with hardware resources safely and transparently multiplexed by the VM hypervisor. They also allow the decoupling of the physical computational infrastructure management from the management of the user-visible virtual computing facility.
VIDA is a new software architecture for the deployment of virtual clusters being currently developed as a part of the CYBERSAR project. The architecture is designed to dynamically allocate resources to applications via a general control plane orchestrating the system's computational and network components. The implementation of the architecture is based on SOA principles. This approach allows for the development of a general architecture for managing VCs in a scalable and flexible manner, independently from the underlying hardware. In particular, VIDA adheres to the W3C style of implementation.
The entire system is built upon web services and implemented using standard languages and protocols. VIDA employs Xen as its virtualization layer and a web service wrapper to remotely manage virtual machines. The logic behind the creation and the management of a VC is implemented as a set of information workflows of cooperating components, using the Jolie language. Through the use of these workflows, the system is able to allocate physical devices as well as manage virtual resources. VIDA is used within CYBERSAR to deploy virtual Hadoop clusters in a production environment to support bioinformatics experimentation.
One of VIDA's main goals is to investigate on the different technologies related to the use of virtualization within the HPC world. In order to support these studies, we develop new prototypes and system architectures for experimenting on virtual clusters and related technologies.