Technical Platform decision tree for Data Management Platforms

NoteOpenStack and Proxmox

This decision tree does not include OpenStack or Proxmox. In most cases we consider that you shouldn’t have to set-up any of them nor use them without some support.

OpenStack is very complex to set-up and quite complex to use and should probably only be a solution for a project when knowing exactly what to expect, and this guide is probably not needed then.

ProxMox could be a solution if there is a need for multiple servers that is not satisfied by your IT offering and you have enough persons and time (probably one person full time at minimum).

Note

The decision tree for which technical platform to use will always come after a Data Management Plan

flowchart TD
    A["Start - to repeat for each platform for an assembly"] --> B
    
    B{"Does your institution/consortium offers a suitable hosted service (check for backup, data retention, GDPR, access and security)"}

    B -- Yes --> C["Use this service. Eventually check for an API access if another platform needs to be connected"]

    BA{"Does your institution provides a managed environment for virtual servers"}
    
    BB{"Use this virtual server/servers, check if they provide backups, snapshots and a load-balancing facility/possibility. The virtual server can otherwise be used as a physical one"}
    
    BC{"Is there a need for high availability and no load-balancing possibility"}
    
    CA{"Are you familiar with Docker/Docker Compose and can your selected platform be setup using it?"}
    
    D{"Can you create and manage<br/>virtual machines (VMs)?"}
    
    H{"Can you install software<br/>on a dedicated physical server?"}
    
    I{"Is it possible to install<br/>a pre-built system image?"}
    
    F{"Do you need a 24/7 availability?"}
    
    B -- No --> BA
    
    BA -- Yes --> BB
    
    BA -- No --> F
    
    BB --> BC
    
    BC -- Yes --> M
    
    BC -- No --> CA
    
    F -- Yes --> M
    
    F -- No --> CA

    M{"Does your institution/consortium provide<br/>a managed Kubernetes cluster?"}

    M -- Yes, already running & supported --> N["Use a Kubernetes-based RDM stack<br/>(e.g., iRODS, Dataverse, Rucio, Nextcloud,<br/>or custom services deployed on K8s)"]

    M -- No --> MA

    MA{"Does the team have the necessary skills to manage and operate Kubernetes?"}

    MA -- Yes --> MB

    MA -- No --> CA

    MB{"Can the selected RDM platform be easily containerized and deployed on Kubernetes (e.g., using Helm charts or operators), and is the database already supported or can it be easily integrated?"}

    MB -- Yes --> MC

    MB -- No --> CA

    MC{"Do the benefits of Kubernetes (scalability, resilience, high availability) outweigh the added complexity and operational overhead?"}

    MC -- Yes --> N

    MC -- No --> CA

    CB{"Do you have specific requirements that necessitate an orchestration (for instance a need for high availability, load balancing)?"}

    CB -- Yes --> MD

    CB -- No --> CAA

    MD["Consider using simpler container orchestration alternatives like Docker Swarm, Nomad, or other tools that provide some benefits of containerization with less complexity"]
    
    CA -- Yes --> CB

    CAA["Use preferably docker-compose, evenually use https://www.composerize.com/ to transform a docker command line to a docker compose manifest."]
    
    CA -- No --> D

    D -- Yes --> E["Use a single VM with<br/>a preconfigured RDM image<br/>(if available) or install<br/>software manually within the VM"]

    D -- No --> H

    H -- Yes --> I

    I -- Yes --> J["Use a ready-made bare-metal image<br/>(e.g., institution-provided RDM stack)"]

    I -- No --> K["Install RDM software manually<br/>on bare metal<br/>(highest effort & risk)"]

    H -- No --> L["Use an external service instead<br/>(institutional or cloud SaaS)"]