Architecture overview

There are several different components in the DEEP-HybridDataCloud project that are relevant for the users. Later on you will see how each different type of user can take advantage of the different components.

The marketplace

The DEEP Marketplace is a catalogue of modules that every user can have access to. Modules can be:

  • Trained: Those are modules that an user can train on their own data to create a new service. Like training an image classifier with a plants dataset to create a plant classifier service. Look for the trainable tag in the marketplace to find those modules.
  • Deployed for inference: Those are modules that have been pre-trained for a specific task (like the plant classifier mentioned earlier). Look for the inference and pre-trained tags in the marketplace to find those modules.

Some modules can both be trained and deployed for inference. For example the image classifier can be trained to create other image classifiers but can also be deployed for inference as it comes pre-trained with a general image classifier.

For more information have a look at the marketplace.

DEEP as a Service

DEEP as a Service (or DEEPaaS) is a fully managed service that allows to easily and automatically deploy developed applications as services, with horizontal scalability thanks to a serverless approach. Module owners only need to care about the application development process, and incorporate new features that the automation system receives as an input. The serverless framework allows any user to automatically deploy from the browser any module in real time to try it. We only allow trying prediction, for training, which is more resource consuming, users must use the DEEP Training Dashboard.

The DEEPaaS API

The DEEPaaS API is a key component for making the modules accessible to everybody (including non-experts), as it provides a consistent and easy to use way to access the model’s functionality. It is available for both inference and training.

Advanced users that want to create new modules can make them compatible with the API to make them available to the whole community. This can be easily done, since it only requires minor changes in user’s code and adding additional entry points.

For more information take a look on the full API guide.

The data storage resources

Storage is essential for user that want to create new services by training modules on their custom data. For the moment we support hosting data in DEEP-Nextcloud. We are currently working on adding additional storage support, as well as more advanced features such as data caching (see OneData), in cooperation with the eXtreme-DataCloud project.

The dashboards

The DEEP dashboard allow users to access computing resources to deploy, perform inference, and train their modules. To be able to access the Dashboard you need IAM credentials. There are two versions of the Dashboard:

  • Training dashboard
    This dashboard allows you to interact with the modules hosted at the DEEP Open Catalog, as well as deploying external Docker images hosted in Dockerhub. It simplifies the deployment and hides some of the technical parts that most users do not need to worry about. Most of DEEP users would use this dashboard.
  • General purpose dashboard
    This dashboard allows you to interact with the underling TOSCA templates (which configure the job requirements) instead of modules and deploy more complex topologies (e.g. a kubernetes cluster). Modules can either use a general template or create a dedicated one based on the existing templates.

For more information take a look on the full Dashboard guide.