One of the CLASS project’s goals is to provide a cloud computing platform which allows data analytics service developers to focus on the task at hand, and not to worry about cloud computing specific details. Now a first version of the cloud computing platform is installed and integrated in the City of Modena Data Center.
The CLASS cloud computing platform provides some key features to the data analytics service developers.
First of all, the platform simplifies the deployment of analytic workloads. The developers just need to build a container image for a single analytic task or workload, specify the CPU and memory requirements and Quality of Service (QoS) constraints, and define networking and access (security) policies. They do not need to worry about VMs, servers, clusters, or any other peculiarities of the cloud infrastructure, or the middleware around it as the platform abstracts all these details away from the data analytics service developers.
The platform also helps achieve soft real time Service Level Agreements (SLAs) by constant monitoring of QoS parameters and fully managing elastic scalability. Some real time QoS parameters currently considered are budget (average computational time of the task) and deadline (when trespassed, then you need to discard the results), period (the periodicity with which the task needs to be executed, for example, every tenth of a second).
Finally, the platform integrates with well-known frameworks like Grafana  and Prometheus  to make analytics performance monitoring data from the distributed computing platform available. These tools are already integrated and available in the cloud environment deployed in the City of Modena data center.
The platform comprises of two layers:
- Rotterdam  is a Container-as-a-Service (CaaS) layer to manage the life cycle and scalability of cloud data analytics workloads. It abstracts the cloud infrastructure details away from data analytics service developers, which require not only deployment but also guaranteed performance. By means of the unifying power of Kubernetes  and container abstraction, it provides a unified mechanism and fully managed service for the life-cycle management and performance optimization of workloads. Rotterdam internally includes a CaaS API gateway for providing REST APIs to developers for deploying tasks easily, a Deployment Engine for optimal placement of analytics services on cloud resources, an SLA Manager for monitoring and enforcing real time QoS parameters, and finally an Adaptation Engine for self-managed and elastic scalability actions based on SLA Manager’s inputs.
- Cloud infrastructure layer is required by Rotterdam to deploy and operate containerized analytics tasks. This layer can go from native cloud (i.e., based on Docker  containers) to IaaS providing either a private or public cloud, including “traditional” virtualization solutions in data centers. Current implementation relies on Docker for container technology, OpenShift  flavor of Kubernetes for Container Management and VMware  as Hypervisor. Thus, Rotterdam aims to abstract away the details of all those infrastructure layers.
Figure 1 - CLASS Cloud computing platform shown in green, in the context of the overall CLASS architecture. It has two layers, a CaaS Layer named Rotterdam and the Cloud Infrastructure.
 Grafana: https://grafana.com/
 Prometheus: https://prometheus.io/
 Rotterdam: D4.4 First release of the Cloud Data Analytics Service Scalability components, Deliverable D4.4 of CLASS project
 Kubernetes: https://kubernetes.io/
 Docker: https://www.docker.com/
 OpenShift: https://www.openshift.com/
 VMware: https://www.vmware.com/