What is Cloudy
Prior to the general adoption of cloud services, users of Community Networks (CNs) already shared or provided services and resources to the community, however, these users were only a minority. One of the reasons identified is the technological barrier. Before providing content, users willing to share information with the community have first to take care of the technical aspects such as the deployment of a server with a set of services.
In the past, users from the Guifi.net CN tried to overcome this problem by releasing a GNU/Linux distribution named Guinux which provided end users with an easy way of offering network services to the community (HTTP proxy, DNS systems and MRTG graphic interfaces).
The key part of the distribution was a set of scripts that automatised the configuration process. End users were only asked for a few parameters such as their e-mail address and the node identifier. Shortly after the distribution was made available the number of end users sharing resources proliferated.
According to that, it became clear that lowering (or removing) the technological entry barrier encouraged users to provide more services and share their resources with the community. To this end, one of the goals of the CLOMMUNITY project is to release a GNU/Linux distribution, codenamed Cloudy, aimed at end users, to foster the transition and adoption of the Community Network cloud environment.
Join the cloud!
The following list summarises the motivations and the chosen solutions to accomplish them:
Distribution: in order to foster services distribution amongst the Community Networks (CNs), a platform to publish and discover them is required. This way, service access does not depend on static networking deployments and is aware of the dynamically-changing conditions of CNs. The software chosen for service publishing and discovering is Avahi.
Decentralisation: a common network layer is required to allow all CN cloud nodes to communicate with each other directly. A good way to build it is to create a virtual Layer 2 based on a VPN service. Among the available options, TincVPN has been chosen, as it fulfills all the requirements while being easy to configure and manage.
To coordinate the devices with TincVPN, a tool to automate the system deployment has been developed as part of the project. This software, named Getinconf, takes care of the TincVPN configuration process and the exchange of keys with the rest of the cloud nodes.
User-friendliness: to this end, a web-based management platform has been developed aimed to integrate all the installation and configuration steps for the cloud services enabled in the Cloudy distribution. A simple web interface is available to the end user as an easy way of configure, administer and monitor the cloud services running in the node.
Free, Libre, Open Source Software: the distribution has been based on Debian GNU/Linux. Apart from being one of the most popular distributions and fulfilling all the technical requirements, it has been chosen because the Debian Social Contract safeguards and guarantees that the software will always be open and free.
The internal architecture of the Cloudy distribution is depicted in the figure in the right side, inside the central rectangle. On the top part, the virtual L2 over L3 network provides the overlay to interconnect all the servers in a micro cloud. This overlay network is used in the service announcement and discovery processes, that respectively publish local information to the cloud and receive remote data from its neighbour peers.
The service announcement daemon periodically checks the status of the available services by means of their corresponding plug-in and publishes the information. The nodes in the micro cloud receive this information and update their lists of services. When a service in a node is stopped or removed, this information is also announced to the rest of cloud servers. The service discovery daemon continuously listens for announcements from other peers, and keeps an updated list of the available services in the micro cloud. This list can be consulted directly by the services or by the end user.
The system can be administered via either the Cloudy web management interface or the console. The first one provides to end users a tool for that, covering the most basic options (installation, self-configuration and control of the services). The console is the traditional approach to the system management, providing all the available options, led for advanced users.