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:
Decentralisation: in a CN, where users are geographically and topologically distributed on the network, concentrating services at a single location makes no sense, as it creates a single point of failure and provides uneven quality of services depending on the user's location. Instead, decentralised services can be placed closer to the users, to improve the quality of experience at any network point. Cloudy implements a decentralised communication mechanism based on Serf, a service orchestrator that uses a gossip protocol to allow all nodes to talk to each other directly without a centralised server.
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. Cloudy feautres DADS (Distributed Announcement and Discovery of Services), a tool using the decentralised communication mechanism to help accomplishing this task.
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.