You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 27 Next »

The Cloud Layer of the RDC is the technical backbone based on a multi-cloud infrastructure including in particular the de.NBI cloud and GDWG. It provides near-infinite storage and storage services such as Aruna Object Storage (AOS), which manages the RDC's raw datasets. In addition, the layer provides basic compute services to the upper layers to make it easier for applications to run in the cloud. 


Zooming into the Cloud Layer

The Cloud Layer provides support for storage and compute resources. For the storage resources, we distinguish between primary storage, with its reference implementation Aruna Object Storage, and secondary storage, where dedicated data systems are offered to manage the data products of the Semantic Layer. The compute resources consist of tools, such as Docker and Kubernetes, to facilitate the depolyment of services of the upper layers in the cloud.

Primary Storage - Infrastructure-as-a-Service

The primary storage consists of a cloud-based object storage, the Aruna Object Storage (AOS), developed at JLU. A detailled describtion of the technology will be given in an extra document. In this paragraph, we will summarize the advantages of such an object storage in RDC. As indicated by the name, an object storage organizes data in units of objects (not as files as known from a file system). Objects come with an unique identifiert and metadata to describe the contents of the objects.  It is particuarly applicable for unstructured data items like text, images, audio and video or semi-structured items expressed in JSON. In order to retrieve objects, there are two options. The one is to use the unique identifier to retrieve the associated object and the other makes use of search labels returning all objects matching one or multiple search labels. One of the key functionality of an object storage is possibility to use so-calleds RESTful APIs or HTTP to retriev the objects from the storage. Thus, it is possible to use either an arbitrary programming language or simply a Web browser to issue a request. While object stores might be located on an ordinary desktop computer, an object storage is distributed among nodes in the cloud. This gives at least three advantages. First, the cloud offeres a near unlimited storage capacity. Second, it is possible to distribute objects among multiple nodes such that access to objects and processing can be parallelized resulting in large performance improvements. Third, the data objects are replicated to avoid the problem of system failuers. When one the node in the cloud is out of service, there will be other nodes offering a copy of the objects.

The object storage of a research infrastructure like RDC gives another advantage by sharing objects among many users. Instead of managing an individual copy of an object for each of the users, it is now possible to share the object among all users. Moreover, domain scientists do not have to care about the management of systems, but simply use the unified access interface of the object storage of RDC.

In general, object storage requires that objects are static and updates of an object are seldom. However, there are highly dynamic data sets like time series in biodiversity. To address this issue, RDC introduces a version concept that manage static versions of data set, where one of them is the actual version. Instead of applying updates to the actual version immediately, it is possible to collect updates and apply them once when the next version of the data set is created. Versions of data sets are then managed for processing and never deleted from the object store. Thus, such a version approach also supports reproducibility of research results.

Cloud Computing - Platform as a Service

The RDC is not limited to storage only, but strives for offering scalable compute services that are easy to use based on intuitive low-code interfaces. We aim to offer these low-code services in the Mediation Layer and plan to implement them using the popular and powerful open-source Apache Spark infrastructure as a PaaS (Platform as a Service) for all data transformation related tasks. Building on such infrastructure lets us benefit from other existing developments on top of it so we can avoid building things from scratch and focus our efforts on specific challenges present in the RDC.
For enabling tools like Apache Spark to run in the cloud in a distributed and scalable fashion, we build on Kubernetes for managing compute resources available on cloud providers like de.NBI. In order to remove the complexity of deploying Apache Spark in a Kubernetes cluster for end-users, we want to offer Apache Kyuubi as a distributed JDBC/ODBC gateway service. This enables the submission of Spark tasks in simple SQL-like query syntax and Kyuubi handles the creation and management of Spark compute instances in the Kubernetes cluster.
At the same time, it enables easy integration into other tools, since only a JDBC/ODBC client is required for interfacing with the service. For example, on the Semantic Layer, we offer a Jupyter Notebooks service, from which data transformations can then seamlessly be triggered to run on Spark, offering the power of the cloud to our users.


Perspectives

Secondary Storage - Platform as a Service

In contrast to the primary storage, the secondary storage offer data systems as a service that are administrated in the cloud. For example, users are often interested in using a relational database system like PostgreSQL with its native SQL-interface. For example, some of the tools use a PostgreSQL database to manage spatial data. Instead of deploying such a service locally, we offer such kind of services for users to create databases. In particular, we see the necessity for such a service for the management of data products that are created in the Semantic Layer. These data products often come withe a structured or a semi-structured data model (e. g. , JSON). It would then be beneficial to use an appropriate data service rather than hosting a database system on a local machine. In addition, often cloud-ready systems exist and then the scalability of the cloud would give a performance advantage. So far, we have not implemented such services, but we plan to support various data services like PostgreSQL, NoSQL database systems and triple stores as these systems are already required within the RDC. 



Associated Services:

  • No labels