Skip to content

Overview

This page is meant to give system administrators a high level view of the different Adept's services.

Adept architecture

Adept is composed of different microservices. The backend code is written in Java and the frontend in TypeScript (Vue).

  1. Frontend service: The static files that are sent to the browser of each user.
  2. Gateway: It routes requests to the appropriate microservices and manages the communication between the different clients, microservices and external services.
  3. MinIO: It stores the files. e.g. uploaded files, exports, etc.
  4. Core / Search / Import / Export Service: They handle the core logic of the backend.
  5. AI Service: It's used by the chatbot to reply to users' questions. It does NOT have access to any datasets. It only uses information from the public documentation site you are currently viewing.
  6. Elastic Search: It stores the dataset data. It does not include data about the datasets (metadata).
  7. PostgreSQL: It stores metadata like dataset names, dashboard information, etc.
  8. Redis: It queues import requests (when there are too many simultaneous requests), and also caches some user requests so that future requests are returned faster.
  9. Keycloak: It handles authentication.
  10. Elixir Data Catalog: It checks whether users have the necessary approval to access different datasets.

Deployment methods

Adept was architected to be deployed inside containers. There are two possible strategies to deploy: docker compose and Kubernetes cluster (k8s).

Docker compose: It's a simpler method to deploy containers compared to a kubernetes cluster. It can be deployed to a single server. On the other hand, it has limited functionality compared to a cluster.

Cluster: It's a deployment method that enables more control over the containers, higher reliability, and performance. On the other hand, it has a steeper learning curve and it's typically advised to have dedicated people taking care of the cluster.

Backup

For the moment, the main instance of Adept is hosted in a virtual machine running docker-compose. The backups are applied only to this VM.

The backups are maintained by the LCSB system administrators.

What and When

Backups are run sequentially from 21:00 to 22:00, and they are collected at 02:00 (CEST time zone).

The backups are not done for the full production virtual machine. Instead, they backup different parts of Adept:

  • 21:00 - Backup PostgreSQL database.
  • 21:15 - Backup Elastic Search database.
  • 21:30 - Backup Redis database.
  • 21:45 - Backup minio.

Retention policy

  • A backup is kept for each of the last 30 days.
  • A backup is kept for each of the last 12 months.
  • A backup is kept for each of the last 10 years.