Community networks (CNs) have gained momentum in the last few years in response to the growing demand for network connectivity in rural and urban areas. These networks, owned and managed by volunteers, offer various services to their members. While Internet access is the most popular service offered to their members, the provision of services of local interest within the network is enabled by the emerging technology of CN micro-clouds. By putting services closer to users, CN micro-clouds pursue not only an improved service performance, but also a low entry barrier for the deployment of alternatives to mainstream Internet services within the CN. Unfortunately, the provisioning of the services is not so simple. Due to the large and irregular topology, high software and hardware diversity and different service requirements in CNs, a "careful" placement of micro-cloud services over the network is required. First, in order to understand the micro-cloud service requirements for a successful operation in CNs, we perform deployment, feasibility analysis and in-depth performance assessment of popular CN micro-cloud services such as distributed storage, live video-streaming and service discovery. We characterize and define workload upper bounds for successful operation of such services and perform cross-layer analysis and optimizations to improve the service performance. This deployment experience supports the feasibility of CN micro-clouds and our measurements contribute to understand the performance of services and applications in this challenging environment. Then, in order to improve the performance of the services on the network level over which a service host provides a service to client nodes, it is necessary to adapt the logical network topology to both external (e.g., wireless connectivity, node availability) and internal (e.g., service copies, service demand) factors. To achieve this, we propose to leverage state information about the network to inform service placement decisions, and to do so through an i) exploratory algorithm PASP (Policy-aware Service Placement) that minimizes the service overlay diameter, while fulfilling service specific criteria and ii) through a fast and low-complexity service placement heuristic BASP (Bandwidth and Availability-aware Service Placement), which maximizes bandwidth between nodes and improves user QoS. Our results show that PASP and BASP consistently outperform the existing in-place strategies in the Guifi.net CN, with respect to bandwidth, availability and latency when used with real CN micro-cloud services. Since this improvement translates in the QoE (Quality of Experience) perceived by the user, our results are relevant for contributing to higher QoE, a crucial parameter for using services from volunteer-based systems.
Community networks (CNs) have gained momentum in the last few years with the increasing number of spontaneously deployed WiFi hotspots and home networks. These networks, owned and managed by volunteers, offer various services to their members and to the public. To reduce the complexity of service deployment, community micro-clouds have recently emerged as a promising enabler for the delivery of cloud services to community users. By putting services closer to consumers, micro-clouds pursue not only a better service performance, but also a low entry barrier for the deployment of mainstream Internet services within the CN. Unfortunately, the provisioning of the services is not so simple. Due to the large and irregular topology, high software and hardware diversity of CNs, it requires of a "careful" placement of micro-clouds and services over the network. To achieve this, this paper proposes to leverage state information about the network to inform service placement decisions, and to do so through a fast heuristic algorithm, which is vital to quickly react to changing conditions. To evaluate its performance, we compare our heuristic with one based on random placement in Guifi.net, the biggest CN worldwide. Our experimental results show that our heuristic consistently outperforms random placement by 211% in terms of bandwidth gain. We quantify the benefits of our heuristic on a real live video-streaming service, and demonstrate that video chunk losses decrease significantly, attaining a 37% decrease in the loss packet rate. Further, using a popular Web 2.0 service, we demonstrate that the client response times decrease up to an order of magnitude when using our heuristic.
Seamless computing and service sharing in community networks (CNs) have gained momentum due to the emerging technology of community network micro-clouds (CNMCs). However, deploying and running services in CNMCs confront enormous challenges to cope with, such as the dynamic nature of micro-clouds, limited capacity of nodes and links, asymmetric quality of wireless links, geographic singularity based deployment model rather than network QoS based, etc. CNMCs have been increasingly used by network-intensive services which exchange significant amounts of data between nodes, therefore their performance heavily relies on the available bandwidth resource in a network. This paper proposes a novel bandwidth-aware service placement algorithm which aims to replace the current random placement adopted by Guifi.net. Our experimental results show that the proposed BASP algorithm consistently outperforms the random placement in Guifi.net by 35% regarding its bandwidth gain. More promisingly, as the number of services increases, the gain tends to increase accordingly. Furthermore, we quantify the performance and effects of our algorithm with a real service such as live video-streaming service, in a real production CN. Our real experimental results show that when using our BASP algorithm, the video chunk loss in the peer side decreases up to 3% percentage point .
Cloud services in community networks have been enabled by micro-cloud providers. They form community network micro-clouds (CNMCs), which grow organically, i.e. without being planned and optimized beforehand. Services running in community networks face specific challenges intrinsic to these infrastructures, such as the limited capacity of nodes and links, their dynamics and geographic distribution. CNMCs are used to deploy distributed applications, such as streaming and storage services, which transfer significant amounts of data between the nodes on which they run. Currently there is no support given to users for enabling them to chose better or the best option for specific service deployments. This paper looks at the next step in community network cloud service deployments, by taking network characteristics into account when deciding placement of service instances. We propose a service placement algorithm (PASP) that minimizes the service overlay diameter, while fulfilling service specific criteria. First, we characterize with simulations the potential performance gains of our approach. Secondly, we apply our algorithm to deploy a distributed storage service currently used in Guifi.net, and evaluate it in the real production network, assessing the performance and effects of our algorithm. We find that our PASP algorithm reduces the client reading times by an average of 16% (with a max. improvement of 31%) compared to the currently used organic placement scheme. Our results show how the choice of an appropriate set of nodes, taken from a larger resource pool, can influence service performance significantly.
Internet and communication technologies have lowered the costs to collaborate for communities, leading to new services like user-generated content and social computing and, through collaboration, collectively built infrastructures, such as community networks. Community networks are formed when individuals and local organisations from a geographic area team up to create and run a community-owned IP network to satisfy the community's demand for ICT. Internet access is often considered the main service of community networks, but the provision of services of local interest within the network is a unique opportunity for community networks, which is currently predominantly unexplored. The consolidation of today's cloud technologies offers community networks the possibility to collectively build community clouds, building upon user-provided networks, and extending towards an ecosystem of cloud services. We propose a framework for building a collaborative distributed community cloud system that employs resources contributed by the members of the community network for provisioning infrastructure and software services. This framework is tailored to the specific social, economic, and technical characteristics of community networks and requirements for community clouds in order to be successful and sustainable. We materialise this framework in the implementation of the Cloudy distribution. We conduct real deployments of these clouds in the Guifi.net community network and evaluate cloud-based applications such as service discovery and distributed storage. This deployment experience supports the feasibility of community clouds and our measurements demonstrate the performance of services and applications running in these community clouds. Our results encourage the development and operation of collaborative cloud-based services using the resources of a community network. We anticipate that such services can effectively complement commercial offers and have the potential to boost innovation in application areas in which end-user involvement is required.
Wireless community networks (CNs) are large-scale, self-organized and decentralized communication infrastructures built and operated by citizens for citizens. CN cloud infrastructures have been recently introduced to run services inside the network, without the need to consume them from the Internet. We have developed a Linux-based distribution code-named Cloudy, which fosters the service deployment and automation in CN clouds. In this paper, we present two ways provisioned by Cloudy to integrate the services and improve the user QoS in these clouds. First, we present a distributed service discovery mechanism that helps users with service quality metrics to choose the best service from a pool of instances. Second, we experiment with a live video streaming service deployed in CN environments, using more than 50 real CN nodes distributed across Europe for the evaluation. Our analysis shows that, tuning the vital parameters of this service as neighborhood peer selection strategy and source node dispersion strategy, improves the video streaming QoS in the CNs. Our results indicate that both ways help the user to experience improved service performance. Automated service selection, needed once the number of micro service providers becomes larger, is the next step that can be built upon our results.
Community networks are self-organized and decentralized communication networks built and operated by citizens, for citizens. The consolidation of today's cloud technologies offers now, for community networks, the possibility to collectively develop community clouds, building upon user-provided networks and extending toward cloud services. Cloud storage, and in particular secure and reliable cloud storage, could become a key community cloud service to enable end-user applications. In this paper, we evaluate in a real deployment the performance of Tahoe least-authority file system (Tahoe-LAFS), a decentralized storage system with provider-independent security that guarantees privacy to the users. We evaluate how the Tahoe-LAFS storage system performs when it is deployed over distributed community cloud nodes in a real community network such as Guifi.net. Furthermore, we evaluate Tahoe-LAFS in the Microsoft Azure commercial cloud platform, to compare and understand the impact of homogeneous network and hardware resources on the performance of the Tahoe-LAFS. We observed that the write operation of Tahoe-LAFS resulted in similar performance when using either the community network cloud or the commercial cloud. However, the read operation achieved better performance in the Azure cloud, where the reading from multiple nodes of Tahoe-LAFS benefited from the homogeneity of the network and nodes. Our results suggest that Tahoe-LAFS can run on community network clouds with suitable performance for the needed end-user experience.
This demo paper presents Cloudy, a Debian-based distribution to build and deploy clouds in community networks. The demonstration covers the following aspects: Installation of Cloudy, the Cloudy GUI for usage and administration by end users, demonstration of Cloudy nodes and services deployed in the Guifi community network.
Cloud-enabled services in community networks have not yet been demonstrated. Most users see in community networks only the possibility to gain Internet access. Sharing of the bandwidth between nodes enables the traffic from users to be routed over the nodes of different node owners. Since this is done in a reciprocal manner, community networks successfully operate as IP networks. However, the sharing of other computing resources like storage, which is now common practice in today's Internet through cloud computing, hardly exists in community networks, making community networks lose an important opportunity for offering a new set of innovative services that could be based on collective actions. Different to the general purpose cloud-based applications offered in the Internet, clouds in community networks would 1) allow providing cloud-based services that are relevant for the community, and 2) create services that are shaped and owned by the community.
Community networks are decentralized communication networks built and operated by citizens, for citizens. We consider service discovery for clouds in such community networks. The currently employed solutions for service discovery are static and are not able to follow the dynamics in cloud service provision. We propose a novel service discovery mechanism based on the common Linux tool Avahi combined with TincVPN, in which the VPN allows Avahi to reach nodes beyond the local link. The concept of the micro-cloud is introduced which contains the nodes reached with the extended broadcast domain of Avahi. We evaluate the performance of the proposed service discovery mechanism in a real community cloud deployment consisting of 25 geographically distributed nodes. In experiments with different settings and number of services, we measure the number of services discovered as a function of the discovery time. Our results show that while a client eventually discovers all the services, a significant time is needed to achieve a complete service discovery. The proposed mechanism therefore seems appropriate for the case of community clouds with many replicas of a sought service, where the fast discovery of just a few providers satisfies the requirements of a client. By applying standard Linux tools, an advantage of our solution is that it is by default available on most Linux distribution, which allows our solution to be easily used for real deployments.
Community networks are decentralized communication networks built and operated by citizens, for citizens. Most users see in community networks only the possibility to gain Internet access, while we propose clouds in community networks as the real opportunity: different to the general purpose cloud-based applications offered in the Internet, community clouds would allow providing cloud-based services that are relevant for the community and that are shaped and owned by the community. It is in favour of our vision that today's cloud management systems and applications have consolidated and can run on commodity hardware, making them now ready for potential deployment and usage in community networks. The experience that we report in this paper is on a real distributed cloud that we have permanently running within a community network, where for our experiments two distributed file systems were deployed over very heterogeneous distributed cloud resources that are part of the system. Tahoe-LAFS and XtreemFS were evaluated where the distributed storage nodes are provided by KVM-based VMs from Proxmox and OpenStack cloud management platforms, by Linux containers (LXC) from a community resource management platform and even from storage space on IoT embedded boards. Furthermore, we implement a service discovery and publishing mechanism that automatically publishes and discovers available services (e.g. distributed storage service) of a cloud node to all the other nodes. We compared the performance of Tahoe-LAFS and XtreemFS in this highly diverse settings and under the dynamic conditions of the community network. While both file system performed functionally correct, since Tahoe-LAFS offers end-to-end encryption by default and fault-tolerance to churn of nodes, it seems to be able to be a solution for important use cases for storage in community networks where privacy of data is important.
Community-Lab is an open, distributed infrastructure for researchers to carry out experiments within wireless community networks. Community networks are an emergent model of infrastructures built with off-the-shelf communication equipment that aims to satisfy a community's demand for Internet access and ICT services. Community-Lab consists of more than 100 nodes that are integrated in existing community networks, thus giving researchers access to community networks and allowing them to conduct experimental evaluation of routing protocols, services and applications deployed there. Community networks have now the opportunity to extend the collaborative network building to the next level, that is, building collaborative services implemented as community clouds, built, operated and maintained by the community, that run on community-owned heterogeneous resources, and offer cloud-based services that are of the community's interest. This demo paper focuses on demonstrating the cloud extension of Community-Lab, enabling now community cloud experiments. By means of selected applications, we show how Community-Lab has been extended with distributed clouds, where different devices such as server, desktop PCs, low-resource embedded PCs and IoT boards are brought together forming a heterogeneous distributed cloud environment for researchers to experiment in community networks.