Skip to main content
Version: v2.10.0

Yeedu High Availability

Yeedu High Availability Introduction

Yeedu runs entirely on Kubernetes, and its availability characteristics come from two places: the Kubernetes controllers that keep workloads running, and the high-availability features of the cloud-managed services (PostgreSQL, object storage, NFS) that a deployment is pointed at.

This page describes what the shipped Helm charts actually configure. Everything below is taken from kubernetes/yeedu-tps/values.yaml, kubernetes/yeedu-ycs/values.yaml and the templates under kubernetes/yeedu-ycs/templates/ in the Core Services Formation repository.

note

We don't publish an RTO or RPO commitment for our own services. Recovery time and recoverable data both depend on how you configure the cloud-managed PostgreSQL, object storage and NFS backing the deployment. See Disaster Recovery Strategy for how those choices affect recovery.


Cloud Infrastructure Components

The availability of these components is supplied by your cloud provider, not by the Yeedu charts. Enable the relevant HA features when you provision them.

ServiceDescriptionHA responsibility
PostgreSQLMetadata database and system of recordIn cloud deployments Yeedu connects to a customer-supplied managed PostgreSQL; availability comes from that service's HA option (for example a Multi-AZ standby). The in-cluster yeedu-postgres deployment shipped for local/dev installs runs a single replica and isn't highly available.
Object StoragePersistent store for job logs and Spark event logsCloud-native object store durability and replication.
NFSShared file system across servicesA managed NFS service (AWS EFS, GCP Filestore, Azure Files) with the availability tier you select.
KubernetesOrchestration engine for all Yeedu servicesManaged control-plane availability, plus the controller behaviour described below.

Kubernetes-Level Behaviour

All Yeedu components are deployed into a Kubernetes cluster, which provides:

  • Pod auto-healing: the Deployment/StatefulSet controller replaces failed or deleted pods to restore the configured replica count.
  • Liveness and readiness probes: configured on yeedu-restapi, yeedu-vault, yeedu-history-server, yeedu-functions-proxy and the in-cluster yeedu-postgres deployment. The remaining workloads rely on container restart and the controller's replica reconciliation only.
  • Horizontal Pod Autoscaling: the charts define exactly one HorizontalPodAutoscaler, for the REST API (see below). No other Yeedu component autoscales.

Core Yeedu Internal Services

Yeedu REST API

The central API layer. It's the only component with autoscaling configured: restapi-hpa.yml sets minReplicas: 1, maxReplicas: 3 and scales on CPU at averageUtilization: 80. Liveness and readiness probes are configured.

Yeedu Reactors

yeedu-reactors-cosi is a StatefulSet with replicas: 1 fixed in the template. It executes backend compute functions and jobs and depends on the broker, cache and vault.

Log Synchronizer

The log synchronizer isn't a separate workload. It runs as the yeedu-reactors-logs-sync sidecar container inside the yeedu-reactors-cosi StatefulSet, so it shares that pod's single replica and lifecycle. It ships application and platform logs to object storage.

note

The synchronization interval is set inside the log-sync image and isn't exposed in the Helm chart.

Yeedu Broker

The broker is RabbitMQ, deployed as a RabbitmqCluster resource named yeedu-rabbitmq3 with replicas: 3. Clustered RabbitMQ tolerates the loss of individual nodes; the chart doesn't configure a queue type, so durability of in-flight messages follows RabbitMQ's defaults for whatever queues the application declares.

Yeedu Cache

The cache is Redis, deployed from the Bitnami Redis chart in its master-replica configuration: one master plus replica.replicaCount: 3 read replicas, each with 50Gi of persistent storage.

Yeedu Vault

Secret management, backed by PostgreSQL. vault.replicaCount: 1. Liveness and readiness probes are configured. Its availability follows the availability of the PostgreSQL backend.

Yeedu Monitor Dashboard

Grafana, with InfluxDB as the metrics store. grafana.replicaCount: 1 and influxdb.replicaCount: 1. Neither autoscales.

Yeedu UI

The end-user interface. ui.replicaCount: 1. There's no UI HorizontalPodAutoscaler.

Yeedu History Server

Serves Spark job and pipeline execution history from object storage. historyserver.replicaCount: 1, with liveness and readiness probes configured.

Yeedu Functions

Three workloads: a scheduler, a Celery worker and a proxy. functions.celery.replicaCount: 1 and functions.proxy.replicaCount: 1. Liveness and readiness probes are configured on the proxy.


yeedu_clouds


Configured Replica Counts

The values below are the chart defaults. They can be raised per deployment by overriding the corresponding replicaCount value.

yeedu-tps chart (platform services)

ComponentReplicasWorkload type
yeedu-postgres1Deployment
yeedu-ldap1Deployment
yeedu-redis1 master + 3 replicasBitnami Redis chart
yeedu-rabbitmq33RabbitmqCluster

yeedu-ycs chart (Yeedu core services)

ComponentReplicasWorkload type
yeedu-restapi1, autoscaled to a maximum of 3 at 80% CPUDeployment + HPA
yeedu-ui1Deployment
yeedu-vault1Deployment
yeedu-grafana1Deployment
yeedu-influxdb1Deployment
yeedu-history-server1Deployment
yeedu-reactors-cosi1 (fixed in the template)StatefulSet
yeedu-reactors-monitor1Deployment
yeedu-functions-celery1Deployment
yeedu-functions-proxy1Deployment

The bundled Airflow subchart is disabled by default (airflow.enabled: false). When enabled, its scheduler, triggerer, worker, API server and DAG processor are each configured with a single replica.


Summary

Most Yeedu services run as a single replica and rely on Kubernetes to restart or reschedule a failed pod. The components deployed with redundancy today are the RabbitMQ broker (3 nodes), the Redis cache (master plus 3 replicas), and the REST API (autoscaled between 1 and 3). Availability of the metadata database, object storage and NFS is provided by the cloud services you point the deployment at, so configure their HA options according to the availability you need.