Peer-to-peer (P2P) protocols have proven efficient to provide scalable support to many large-scale distributed applications, successfully coping with unreliability and dynamics. However, to exploit them in a wider range of environments, such as very large-scale networks of smartphones or set-top boxes, it is imperative to make P2P protocols manageable: we need to be able to start, bootstrap and stop protocols, and assign resources dynamically. In this paper we present a general-purpose framework aimed to support several fully distributed applications running independently over a very large scale and dynamic pool of resources. We call this resource pool a cloud. The basic idea of the framework is a declarative application suit description, that describes what applications should be running on what resources, and a middleware that makes sure the currently available and dynamic cloud self-organizes into the configuration represented by the description, creating the subclouds that are assigned to applications. The middleware also provides additional functionality, such as bootstrapping overlay networks, to support the applications. Our preliminary ideas on the implementation rely on various gossip-based protocols, that are applied to form the subclouds and to implement boot-strapping, monitoring and control services. Most of all, this position paper sets an exciting research agenda to fully exploit the possibilities offered by very large scale dynamic networks.