Community Clouds need to offer a set of attractive services to users. Cloud services are typically grouped into: IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software as a Service),
For community network clouds we consider the following service domains:
Software emulation techniques provide a set of abstraction layers between the hardware and the applications that allow fast, flexible and dynamic deployments of services on top. There are several solutions that provide full hardware-level, operating system-level or both kinds of virtualization.
VMs are a way to assign a dedicated machine (virtual) to each application or service. At the expense of a slight overhead in resources usage, every service is independent from the other ones, and works transparently to the Infrastructure.
We have tested several cloud management platforms (CMPs), which provide IaaS, among others OpenStack, OpenNebula and Proxmox for the hardware-level virtualization approach. In addition, we have tested LXC and Docker for operating system-level virtualisation.
Cloudy, the community network cloud distribution, offers different solutions. when targeting low-end devices, Cloudy can run on “bare metal”, offering OpenVZ, which it has integrated, to run containers. For high end machines, Cloudy can run inside of VMs managed by CMPs, e.g. Proxmox. Third, Cloudy can be extended with Debian packages which might support additional virtualization solutions.
Deployments of community clouds are constrained by the underlying community network in terms of resources allocation, performance and capabilities. Since the cloud infrastructure is to be built practically independently from the physical network itself, it might be needed to provide networking as a service tools if upper cloud layers require specific performance conditions. For example, if one of the cloud's software as a service can not operate adequately when packet losses occur (which is likely to happen in community networking), a possible NSCC demand would be an overlay network that would handle these packet losses and provide a loss-free network to the upper layer.
Another issue with community networking clouds is that the cloud is actually deployed over different geographic locations and, most probably, on different physical network segments. This imposes some limitations to the cloud services running on top. For instance, services relaying on multicast or broadcast capabilities, like a Service Discovery daemon, would be unaware of the services running on the next node's cloud.
As solution we provide a virtual, overlay layer-two network on top of the IP-based layer-three network. This overlay network iscreated automatically, with minimum user intervention and without requiring any reconfiguration of the community networking insfrastructure. On top of this overlay network, cloud services requiring a common physical network, multicast or broadcast functionalities can operate even when located at geographically distant positions.
Platform services is the group of software and applications providing basic services and resources to enable the end-user software services on top. Platform services are aimed at offering transparent and uniform procedures to the software services layer, to avoid duplication of functions and simplification of common mechanisms.
In the context of CNs, service discovery services, in conjunction with service announcement services, are a key component in the local contents ecosystem. In addition, a dependable and secure storage service will allow to offer to end users backup possibilities and applications similar to Dropbox. A generic key-value store could support with search functionalities for several end user applications.
Data storage is one of the many areas on which cloud services operate. In this wide context, many different solutions are available, sometimes focusing on very different aspects of the service. To name a few: data storage cloud services can be used for off-site backup and recovery purposes, for on-line synchronisation from different machines or locations, for collaborative sharing and edition of information. Furthermore, some solutions focus on providing cryptographically secure services, others put their emphasis on offering huge amounts of storage space, etc. In the context of community cloud, data storage is also needed by end users, and the use cases can be as diverse as with Internet cloud.
The first proposed data storage cloud service focuses on the ease of use, providing convenient ways for end users to upload, access, manage and share their data. This is accomplished by means of a web interface, WebDav integration, FTP/SFTP/Rsync access, a client to sync local and remote folders, etc.
The second proposal for a data storage cloud service focuses on security, by means of the adequate cryptographic techniques. This service provides end users concerned about moving their contents to a cloud storage warranties about the privacy, integrity, security and reliability of their data.
Most Internet media streaming services are commonly operated on a cloud basis. However, with few user content producers and many users-consumers, information mostly flows vertically in a top-down fashion.
An approach to media streaming services is to focus on live streaming of real-time media content. This could be generated on a continuous basis (a video stream obtained from a webcam), or periodically (a scheduled event retransmitted live like, for instance, a radio show) or in a sporadic way (live retransmission of conferences, talks, speeches, social events, etc.). This media streaming service should allow end users to broadcast such content easily, requiring them to focus on just making the media stream available to the cloud, without constraining them by potential issues like network bandwidth problems, computational power for encoding the content to adapt it to other users' requirements, etc.
As a complement to the previously suggested services, another possible media streaming solution could be to provide on-demand media content. From the community networking point of view, this would only come as a replacement of current Internet cloud-based video-on-demand streaming services. To go one step beyond current media streaming services, features in the user client software like p2p co-streaming, chat, etc. could enhance the service for the community networking infrastructures.
Community networks are, first and foremost, social projects. Therefore, non-technical aspects play a critical role in the development and maintenance of the network and the community itself. User engagement, awareness of rights, quality of experience or any combination thereof are aspects that must be considered in any action taken or contribution made.
Community members are the ultimate reason and the driving force of these projects. Attracting users and being feasible in terms of usage, maintenance, and deployment is a key factor for determining the use cases for community network clouds.
Community networks usually define themselves as free, open and neutral. This means, in short, that everybody is able to join, explore, use, enjoy and expand the network with no restrictions other than allowing others to do the same in equal terms. To be coherent with this spirit of openness and transparency, cloud services provided on top of community networks should be based on these same principles.
In order to allow these users to have full control over the cloud and its services, they must be able to obtain the source code of the software running, analyse it, modify it and redistribute it freely. Using FLOSS means that users are empowered with the aforementioned opportunities to truly control their resources.
Community Clouds need to offer a set of attractive services to users. ==== Infrastructure services ==== This service provides to the user a set of virtual machines, with predefined template loaded or selectable form a small number of templates. We expect that this service has rather permanent assignments of VMs to users. We expect that owners of machines that provide this service will have installed the virtualization management platform of their choice. (e.g. Proxmox, Virtualbox, Eucalyptus, OpenNebula, OpenStack …) Preliminarily, a Wiki page will be used to inform about VMs offered and used. Later a Web page will publish the owners of machines that offer VMs and consumers of VMs will contact them directly and ask for VMs. Consumers may have root access to the VM. These infrastructure services allow a user to install on a base templaet a Web application, e.g. to host a IoT platform. ==== Platform services ==== Gcodis is the default template that contains platform services. - it contains the Tahoe storage service. - it contains Tinc to enable service discovery among Gcodis instances. - it contains a LDAP service for applications that require authentication. ==== Application services ==== Gcodis contains appliactions. - it contains owncloud. - it contains a streaming applications for VoD or live streaming (evaluating Peerstreamer and others …)