Skip to content

Microservices

Infrastructure documentation for deploying the ATLAS platform on Kubernetes.

Documentation

Architecture Overview

The ATLAS microservices platform runs on K3s (lightweight Kubernetes) with the following components:

                              Internet


                    ┌─────────────────────────────────┐
                    │         Host Server             │
                    │         (Public IP)             │
                    │                                 │
                    │  ┌───────────────────────────┐  │
                    │  │           K3s             │  │
                    │  │       (Kubernetes)        │  │
                    │  └─────────────┬─────────────┘  │
                    │               │                 │
                    │  ┌─────────────▼─────────────┐  │
                    │  │      Cilium Ingress       │  │
                    │  │      (Envoy proxy)        │  │
                    │  │       :80 / :443          │  │
                    │  └─────────────┬─────────────┘  │
                    │               │                 │
                    │  ┌───┬───┬───┬┴──┬───┬───┬───┐  │
                    │  ▼   ▼   ▼   ▼   ▼   ▼   ▼   ▼  │
                    │ auth cloud chat ecrin redcap   │
                    │   git argocd grafana vault     │
                    │        flags hubble longhorn   │
                    └─────────────────────────────────┘

    Internal services (not exposed): PostgreSQL, Redis, SeaweedFS

Components

ComponentRoleTechnologies
OrchestrationContainer managementK3s, containerd
NetworkingCNI + Ingress + mTLSCilium (eBPF), Envoy, WireGuard
StoragePersistent volumesLonghorn (CNCF), LUKS encryption
Object StorageS3-compatibleSeaweedFS
CertificatesTLS automationcert-manager, Let's Encrypt
SecretsCentralized secretsHashiCorp Vault, External Secrets Operator
IAMIdentity & AccessAuthentik (OIDC, MFA, Forward Auth)
Feature FlagsFeature managementFlipt (OpenFeature SDK)
MessagingTeam collaborationMattermost
FilesDrive + CollaborationNextcloud + OnlyOffice
Research FormsData captureREDCap v16
PlatformResearcher expertiseECRIN (SvelteKit)
Git ForgeSource code hostingGitea
GitOps CDContinuous deploymentArgoCD
MonitoringMetrics & LogsPrometheus, Grafana, Loki
ObservabilityNetwork visibilityHubble UI

Databases (Mutualized)

ServicePostgreSQLRedis
Authentik
Mattermost
Nextcloud
Gitea
Vault-
Flipt-
REDCap-

Resource Requirements

ResourceMinimumRecommended
RAM16 GB32 GB
CPU4 cores8 cores
Disk200 GB500 GB
OSUbuntu 24.04 LTSUbuntu 24.04 LTS

Resource Breakdown

ComponentCPU RequestMemory RequestStorage
K3s + Cilium500m900Mi-
Longhorn200m400Mi-
Vault100m200Mi10Gi
PostgreSQL HA (3 pods)300m1.5Gi30Gi
Redis Sentinel (3 pods)150m450Mi-
Authentik225m576Mi-
Mattermost100m256Mi10Gi
Nextcloud + OnlyOffice700m1.5Gi10Gi
SeaweedFS300m512Mi111Gi
REDCap100m256Mi60Gi
ECRIN50m128Mi-
Flipt25m64Mi-
Gitea100m256Mi20Gi
ArgoCD200m400Mi-
Monitoring300m700Mi50Gi
Total~3.4 cores~8Gi~300Gi

Service URLs

ServiceURLAuthTarget Users
Authentikauth.example.com2FAAdmins
Nextcloudcloud.example.com1FAResearchers, Technicians
Mattermostchat.example.com1FAResearchers, Technicians
ECRINecrin.example.com1FAResearchers
REDCapredcap.example.com1FA/2FAResearchers, Admins
Giteagit.example.com1FADevelopers
Fliptflags.example.com2FAAdmins, Developers
ArgoCDargocd.example.com2FAAdmins
Grafanagrafana.example.com2FAAdmins
Vaultvault.example.com2FAAdmins
Longhornlonghorn.example.com2FAAdmins
Hubblehubble.example.com2FAAdmins

Installation Phases

  1. System Preparation - OS setup, firewall, prerequisites
  2. K3s Core - K3s, Cilium, Longhorn with encryption
  3. Vault - Secrets management setup
  4. Databases - PostgreSQL HA, Redis Sentinel
  5. Services - Authentik, Mattermost, Nextcloud, REDCap, ECRIN, Flipt
  6. DevOps - Gitea, ArgoCD
  7. Monitoring - Prometheus, Grafana, Loki, alerting
  8. Security - Network policies, access control
  9. Operations - Backups, secret rotation, maintenance