This document discusses multi-tenancy and virtualization in the cloud context. It describes the challenges of managing variability and customer-specific configurations for software product lines deployed in public or private clouds. The document compares solving variability through virtualization versus application-level multi-tenancy and outlines some of the tradeoffs of each approach. It also summarizes some research projects exploring these issues, including using dependency injection to implement multi-tenancy, developing a reference platform architecture, and optimizing feature placement across cloud infrastructure.