Zum Inhalt

Gesamtarchitektur

Diese Seite beschreibt das Gesamtarchitektur-Design von OpsAnt.

Architekturdiagramm

graph TB
    subgraph 前端
        UI[Vue 3 + Ant Design Vue<br/>SPA]
    end

    subgraph 后端
        API[Django API<br/>api/opsant/v1/]
        CELERY[Celery Worker]
        BEAT[Celery Beat<br/>定时任务]
    end

    subgraph 执行引擎
        ANS[Ansible<br/>SSH 主机]
        SALT[SaltStack<br/>Agent 主机]
        MINI[OpsMini Server<br/>Go / gRPC]
    end

    subgraph 数据
        DB[(MySQL)]
        REDIS[(Redis)]
    end

    subgraph 监控
        PROM[Prometheus]
        AM[Alertmanager]
        CONSUL[Consul]
    end

    UI --> API
    API --> DB
    API --> REDIS
    CELERY --> ANS
    CELERY --> SALT
    CELERY --> MINI
    BEAT --> CELERY
    API --> PROM
    API --> AM
    API --> CONSUL
    MINI --> REDIS
    MINI --> CONSUL

Kern-Design

Trennung von Frontend und Backend

  • Frontend: Vue 3 + Ant Design Vue, SPA, Build-Artefakte nach static/opsant/
  • Backend: Django, stellt REST API mit dem Präfix api/opsant/v1/ bereit, Response-Envelope {code, message, data}

Drei Ausführungs-Engines

Je nach Host-Verwaltungsmethode wird an verschiedene Ausführungs-Engines geroutet:

Verwaltungsmethode Ausführungs-Engine Beschreibung
SSH Ansible Kein Agent, SSH-basiert
Agent SaltStack salt-minion Push-Modell
OpsMini OpsMini Server Go-Implementierung, gRPC-Datenebene

Dual-Modus-Schalter

Die Plattform unterstützt Umschaltung über den OPSANT_ENABLED-Schalter:

  • true: Eigenständige Produktform (mit Frontend und neuer API)
  • false: Reines OpsAny Proxy Legacy-Routing

Beide Routen sind isoliert und beeinflussen sich gegenseitig nicht.

OpsMini Agent ohne SaltStack

OpsMini ist als eigenständiges Go-Agent-Projekt konzipiert und verwendet ein Pull-Modell, bei dem der Agent (Panel) eine REST API bereitstellt und vom Proxy aktiv abgerufen wird – ein Ansatz ähnlich wie bei Prometheus, nicht das Push-Modell von salt-minion.

Detailliertere Erläuterungen