CCAT System Integration Documentation#
Overview#
This documentation covers the CCAT System Integration, including:
Docker Compose configuration and deployment
Configuration management with Dynaconf
Backup and restore procedures
Monitoring with Grafana, Prometheus, and Loki
Service orchestration across multiple nodes
Key Components#
Infrastructure Services:
PostgreSQL database with replication
Redis cache with TLS
InfluxDB for time-series data
MinIO object storage
Grafana dashboards
Prometheus monitoring
Loki log aggregation
Deployment Configurations:
Local development (docker-compose.local.yml)
Staging environment (docker-compose.staging.yml)
Production nodes:
Database node (docker-compose.production.db.yml)
Data processing node (docker-compose.production.data.yml)
Input node (docker-compose.production.input.yml)
Reuna VM (docker-compose.production.reuna-vm.yml)
Quick Links#
Documentation Contents#
Getting Started#
For setup instructions, see the project README and the Getting Started guide.
Indices and tables#
The system-integration repository contains Docker Compose configurations, Kubernetes manifests, and supporting infrastructure for deploying the complete CCAT data center stack across different environments.
Deployment Environments#
- Local Development
docker-compose.local.yml- Local development environmentdocker-compose.dev.yml- Development with live reload
- Staging
docker-compose.staging.yml- Staging environmentdocker-compose.staging.batleth.yml- Batleth staging servercologne-staging-k8s/- Kubernetes configuration for Cologne staging
- Production
docker-compose.production.*.yml- Production deployment configurationsSeparated into database, data transfer, and input components
Infrastructure Components#
Core Services
PostgreSQL: Operations database with replication support
Redis: Caching and session management
MinIO: S3-compatible object storage
InfluxDB: Time-series metrics storage
Monitoring & Observability
Prometheus: Metrics collection and alerting
Grafana: Dashboards and visualization
Loki: Log aggregation
Promtail: Log collection agent
Supporting Services
Nginx: Reverse proxy and load balancing
Celery: Distributed task queue for background jobs
Directory Structure#
postgres/PostgreSQL initialization scripts and configuration
grafana/Grafana dashboards and provisioning configuration
prometheus/Prometheus monitoring configuration
loki-config/&promtail-config/Log aggregation configuration
jenkins_pipelines/CI/CD pipeline definitions
tools/Deployment and management scripts
Deployment Guides#
Kubernetes Deployments#
The cologne-staging-k8s/ directory contains Kubernetes manifests for deploying
on the Cologne cluster:
Deployment configurations
Service definitions
Ingress routing
Persistent volume claims
See cologne-staging-k8s/README.md for detailed deployment instructions.
Docker Compose Deployments#
Docker Compose files are organized by environment and component:
Choose your environment: local, staging, or production
Select components: database, data transfer, input processing
Run:
docker-compose -f <config-file> up -d
Initialization Scripts#
init_ops_db_entrypoint.shInitializes the operations database schema and loads seed data
init-influxdb.shSets up InfluxDB databases and retention policies
init-minio.shConfigures MinIO buckets and access policies
Monitoring#
The monitoring stack provides comprehensive observability:
System Metrics: CPU, memory, disk, network via Prometheus
Application Metrics: Custom metrics from Python services
Logs: Centralized logging with Loki
Dashboards: Pre-configured Grafana dashboards for all services
Access Grafana at the configured endpoint to view dashboards and alerts.