csis-architecture

Container Engine and Cloud Infrastructure

The CSIS is envisioned to be composed of a set of (micro) services that can independently be deployed as isolated containers either on a self-hosted physical server that provides its own container engine or in a virtualized environment offered by a cloud hosting provider. For this purpose, a Container Engine and Cloud Infrastructure Building Block must be part of the CSIS Architecture.

The approach of containerising services makes CSIS developments relatively independent of technological constraints regarding background technology of ICT Services. Accordingly, CLARITY’s technology support team is free to choose whatever technology or software fits best into CSIS Architecture as long as the requirements (functional, exploitation, etc.) are met and interoperability through well-defined APIs and standards is guaranteed.

As stated in D1.1 “Initial workshops and the CLARITY development environment” [2], having a micro services architecture for CLARITY CSIS, will allow having heterogeneous technological stacks and different deployment processes. Micro services are appropriate as architecture for CLARITY CSIS purposes and fits very well with a continuous integration platform, indeed it allows having heterogeneous technological stacks and different deployment processes for each software component. It will also bring autonomy on the development process of every consortium partner who will be working on a different CSIS component while having the confidence on not face big issues later on doing the different CSIS components integration.

Accordingly, for most ICT services the CLARITY technology support team will be able to use ready-to-use containers that are available for popular open source solutions like CKAN (3.2.3), PostgeSQL with PostGIS (7.3.2), GeoServer (7.4.3), Drupal 8 (7.5.2) and many more.

Requested functionality

The Container Engine and Cloud Infrastructure Building Block and the approach described above can provide the following baseline functionality and benefits:

Exploitation Requirements assessment

The assessment of the Exploitation Requirements [11] identified the following concrete technical and functional implications on this Building Block:

Technology support

Figure 32 gives an overview on the technological possibilities and the related open-source backend software components that have been selected for the Technology Support Plan. Since technology support for this Building Block is provided by T1.4 “Industrialization and Support”, a more detailed description is provided in D1.1 “Initial workshops and the CLARITY development environment” [8].

Figure 32: Container Engine and Cloud Infrastructure Technology Support

Regarding containerisation, Docker is the choice to achieve having such micro services architecture since Docker container engine is able to encapsulate lightweight runtime environments and provide good portability, performance, ease of replication, environment isolation, high availability and scalability as some of its main features.

https://en.wikipedia.org/wiki/Docker_(software)

To coordinate, monitor and manage such container infrastructure an automation technology is highly recommendable. Docker Compose seems to be appropriate as first approach because its simplicity but depending on the project needs it may change to Kubernetes.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

This kind of tools are able to provisioning hosts, instantiating a set of containers, link containers, expose services and scale the container cluster.

About the underlying hardware infrastructure there are two approaches under consideration:

https://www.egi.eu/about/