Kangaroo: A Tenant-Centric Software-Defined Cloud Infrastructure


Authors: Kaveh Razavi, Ana Ion, Genc Tato, Kyuho Jeong, Renato Figueiredo, Guillaume Pierre and Thilo Kielmann.
Source: Proceedings of the IEEE International Conference on Cloud Engineering (IC2E), Tempe, AZ, USA, March 2015.

Abstract

Applications on cloud infrastructures acquire virtual machines (VMs) from providers when necessary. The current interface for acquiring VMs from most providers, however, is too limiting for the tenants, in terms of granularity in which VMs can be acquired (e.g., small, medium, large, etc.), while giving very limited control over their placement. The former leads to VM underutilization, and the latter has performance implications, both translating into higher costs for the tenants. In this work, we leverage nested virtualization and a networking overlay to tackle these problems. We present Kangaroo, an OpenStack-based virtual infrastructure provider, and IPOPsm, a virtual networking switch for communication between nested VMs over different infrastructure VMs. In addition, we design and implement Skippy, the realization of our proposed virtual infrastructure API for programming Kangaroo. Our benchmarks show that through careful mapping of nested VMs to infrastructure VMs, Kangaroo achieves up to an order of magnitude better performance, with only half the cost on Amazon EC2. Further, Kangaroo's unified OpenStack API allows us to migrate an entire application between Amazon EC2 and our local OpenNebula deployment within a few minutes, without any downtime or modification to the application code.

Download


Bibtex Entry

@InProceedings{,
  author = 	 {Kaveh Razavi and Ana Ion and Genc Tato and Kyuho Jeong 
                  and Renato Figueiredo and Guillaume Pierre and 
                  Thilo Kielmann},
  title = 	 {Kangaroo: A Tenant-Centric Software-Defined Cloud 
                  Infrastructure},
  booktitle = 	 {Proceedings of the IEEE International Conference on
                  Cloud Engineering (IC2E)},
  year = 	 {2015},
  month = 	 mar
}