DE Architecture

View on GitHub

Infrastructure

The following sections describe the components of the infrastructure on which the DE operates.

Data Store

The DE provides access and management of data via the CyVerse Data Store, which is built on top of iRODS.

Compute Platform(s)

The DE integrates the Data Store with HTCondor and the Agave Platform to provide a large set of tools for performing resource intense analyses.

PostgreSQL

Nearly all applications use a database. The DE is backed by a PostgreSQL database. The schemas can be found here.

RabbitMQ

RabbitMQ is used throughout our services, but primarily to integrate our services with iRODS.

Elasticsearch

The DE uses Elasticsearch to provide search and other capabilities.

Docker

Docker is used throughout the DE architecture. Most importantly, all of the tools that run in the DE’s HTCondor cluster run within docker containers, allowing us to integrate new tools without affecting existing tools.

Additionally, the components of the DE application are packaged as Docker containers.

All of these images can be accessed through our organization page on Docker Hub.

Application Architecture

The DE is composed of backend services and a user interface (UI).

Backend Services

The DE backend is built as a micro-services architecture. Each of these services are contained in the services/ folder.

The functionality of the micro-service architecture is aggregated in the Terrain service, and exposed as a RESTful api.

More information about the backend micro-service architecture and implementation may be found here.

UI

All of the UI services are provided by the DE api. The application itself is built with GXT, a UI component library built on top of GWT.

More information about the UI design and implementation may be found here.