Skip to content

Architecture Overview

WisePulse consists of four main components, all managed by Ansible playbooks.

Components

                         ┌─────────────────┐
                         │    Internet     │
                         └────────┬────────┘
                                  │
                    ┌─────────────┴─────────────┐
                    │     Nginx Reverse Proxy   │
                    │  (SSL termination, routing)│
                    └─────────────┬─────────────┘
                                  │
        ┌─────────────────────────┼─────────────────────────┐
        │                         │                         │
        ▼                         ▼                         ▼
┌───────────────┐       ┌─────────────────┐       ┌─────────────────┐
│    Loculus    │       │  srSILO/LAPIS   │       │   Monitoring    │
│  (Kubernetes) │       │    (Docker)     │       │ (Prometheus/    │
│               │       │                 │       │    Grafana)     │
│  Sequence     │       │  Multi-virus    │       │                 │
│  data mgmt    │       │  genomic APIs   │       │  Metrics &      │
│  & sharing    │       │  (COVID, RSV-A) │       │  dashboards     │
└───────────────┘       └─────────────────┘       └─────────────────┘
     :8080                  :8081-8084                 :3000, :9090

srSILO Pipeline

Multi-virus genomic data pipeline fully managed by Ansible with:

  • Multi-virus support (SARS-CoV-2, RSV-A; RSV-B and Influenza planned)
  • Low downtime (API managed automatically)
  • Self-healing (automatic rollback on failures)
  • Smart execution (exits early if no new data)
  • Retention policy (automatic cleanup of old indexes)

See srSILO Pipeline Architecture for detailed documentation.

Playbooks:

Playbook Purpose
playbooks/srsilo/setup.yml One-time server setup
playbooks/srsilo/update-all-viruses.yml Update all enabled viruses (production)
playbooks/srsilo/update-pipeline.yml Update single virus (debug/testing)
playbooks/srsilo/setup-timer.yml Configure daily automated runs

Loculus

Pathogen sequence sharing platform deployed to Kubernetes.

Playbook: playbooks/loculus/deploy-loculus.yml

See Loculus Deployment for configuration details.

Monitoring Stack

Prometheus + Grafana for observability.

Component Role
Prometheus Metrics collection and storage
Grafana Visualization and dashboards
Node Exporter Host resource metrics (CPU, RAM, Disk)
JSON Exporter LAPIS application metrics

Playbook: playbooks/monitoring/full.yml

See Monitoring Deployment for details.

Nginx Reverse Proxy

SSL termination and path-based routing for all services.

URL Pattern Backend
lapis.{domain}/covid/* LAPIS COVID (8083)
lapis.{domain}/rsva/* LAPIS RSVA (8084)
silo.{domain}/covid/* SILO COVID (8081)
silo.{domain}/rsva/* SILO RSVA (8082)

Playbook: playbooks/setup_nginx.yml

See Nginx Deployment for configuration details.