Spaces:
Sleeping
Sleeping
| version: "3.9" | |
| # CloudSRE v2 β Distributed Microservice Architecture | |
| # 16 real containers, each with its own PID namespace, network stack, and filesystem. | |
| # This is NOT localhost subprocess spawning β each service is a real Docker container. | |
| # | |
| # Usage: | |
| # docker-compose up -d # Start all 16 services + orchestrator | |
| # docker ps # See 17 running containers | |
| # docker kill cloudsre-payment # Real SIGKILL β port goes dead | |
| # docker pause cloudsre-dns # Real SIGSTOP β TCP timeouts cascade | |
| # | |
| # Architecture: | |
| # 172.20.0.2 orchestrator (API server, port 7860) | |
| # 172.20.0.10 payment 172.20.0.11 auth 172.20.0.12 worker | |
| # 172.20.0.13 frontend 172.20.0.14 cache 172.20.0.15 notification | |
| # 172.20.0.16 search 172.20.0.17 gateway 172.20.0.18 scheduler | |
| # 172.20.0.19 storage 172.20.0.20 metrics 172.20.0.21 email | |
| # 172.20.0.22 billing 172.20.0.23 config 172.20.0.24 dns | |
| # 172.20.0.25 loadbalancer | |
| x-service-defaults: &service-defaults | |
| build: | |
| context: . | |
| dockerfile: Dockerfile.service | |
| restart: unless-stopped | |
| volumes: | |
| - shared-data:/data | |
| - shared-logs:/var/log | |
| networks: | |
| - sre-mesh | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:${PORT:-8001}/healthz"] | |
| interval: 10s | |
| timeout: 3s | |
| retries: 3 | |
| services: | |
| # ββ Orchestrator (API Gateway) βββββββββββββββββββββββββββββ | |
| orchestrator: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| container_name: cloudsre-orchestrator | |
| ports: | |
| - "7860:7860" | |
| volumes: | |
| - shared-data:/data | |
| - shared-logs:/var/log | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| environment: | |
| - CONTAINER_MODE=docker | |
| - DATA_DIR=/data | |
| - LOG_DIR=/var/log | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.2 | |
| depends_on: | |
| - payment | |
| - auth | |
| - worker | |
| - frontend | |
| - cache | |
| - notification | |
| - search | |
| - gateway | |
| - scheduler | |
| - storage | |
| - metrics_collector | |
| - billing | |
| - config | |
| - dns | |
| - loadbalancer | |
| # ββ us-east-1 Region βββββββββββββββββββββββββββββββββββββββ | |
| payment: | |
| <<: *service-defaults | |
| container_name: cloudsre-payment | |
| command: python -m cloud_sre_v2.services._service_worker --service payment --port 8001 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8001:8001"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.10 | |
| auth: | |
| <<: *service-defaults | |
| container_name: cloudsre-auth | |
| command: python -m cloud_sre_v2.services._service_worker --service auth --port 8002 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8002:8002"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.11 | |
| billing: | |
| <<: *service-defaults | |
| container_name: cloudsre-billing | |
| command: python -m cloud_sre_v2.services._service_worker --service billing --port 8013 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8013:8013"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.22 | |
| gateway: | |
| <<: *service-defaults | |
| container_name: cloudsre-gateway | |
| command: python -m cloud_sre_v2.services._service_worker --service gateway --port 8008 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8008:8008"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.17 | |
| loadbalancer: | |
| <<: *service-defaults | |
| container_name: cloudsre-loadbalancer | |
| command: python -m cloud_sre_v2.services._service_worker --service loadbalancer --port 8016 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8016:8016"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.25 | |
| config: | |
| <<: *service-defaults | |
| container_name: cloudsre-config | |
| command: python -m cloud_sre_v2.services._service_worker --service config --port 8014 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8014:8014"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.23 | |
| # ββ eu-west-1 Region βββββββββββββββββββββββββββββββββββββββ | |
| worker: | |
| <<: *service-defaults | |
| container_name: cloudsre-worker | |
| command: python -m cloud_sre_v2.services._service_worker --service worker --port 8003 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8003:8003"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.12 | |
| scheduler: | |
| <<: *service-defaults | |
| container_name: cloudsre-scheduler | |
| command: python -m cloud_sre_v2.services._service_worker --service scheduler --port 8009 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8009:8009"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.18 | |
| search: | |
| <<: *service-defaults | |
| container_name: cloudsre-search | |
| command: python -m cloud_sre_v2.services._service_worker --service search --port 8007 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8007:8007"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.16 | |
| storage: | |
| <<: *service-defaults | |
| container_name: cloudsre-storage | |
| command: python -m cloud_sre_v2.services._service_worker --service storage --port 8010 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8010:8010"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.19 | |
| metrics_collector: | |
| <<: *service-defaults | |
| container_name: cloudsre-metrics | |
| command: python -m cloud_sre_v2.services._service_worker --service metrics_collector --port 8011 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8011:8011"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.20 | |
| # ββ ap-south-1 Region ββββββββββββββββββββββββββββββββββββββ | |
| frontend: | |
| <<: *service-defaults | |
| container_name: cloudsre-frontend | |
| command: python -m cloud_sre_v2.services._service_worker --service frontend --port 8004 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8004:8004"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.13 | |
| cache: | |
| <<: *service-defaults | |
| container_name: cloudsre-cache | |
| command: python -m cloud_sre_v2.services._service_worker --service cache --port 8005 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8005:8005"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.14 | |
| notification: | |
| <<: *service-defaults | |
| container_name: cloudsre-notification | |
| command: python -m cloud_sre_v2.services._service_worker --service notification --port 8006 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8006:8006"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.15 | |
| email: | |
| <<: *service-defaults | |
| container_name: cloudsre-email | |
| command: python -m cloud_sre_v2.services._service_worker --service email --port 8012 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8012:8012"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.21 | |
| dns: | |
| <<: *service-defaults | |
| container_name: cloudsre-dns | |
| command: python -m cloud_sre_v2.services._service_worker --service dns --port 8015 --db-path /data/app.db --queue-dir /data/queue --log-dir /var/log | |
| ports: ["8015:8015"] | |
| networks: | |
| sre-mesh: | |
| ipv4_address: 172.20.0.24 | |
| networks: | |
| sre-mesh: | |
| driver: bridge | |
| ipam: | |
| config: | |
| - subnet: 172.20.0.0/16 | |
| volumes: | |
| shared-data: | |
| shared-logs: | |