Architecture générale¶
Cette section présente l’architecture logique d’Aquila dans sa version GOV + PRO V1.
Vue d’ensemble¶
Aquila se compose des éléments suivants :
- API Aquila (FastAPI / Python) :
- endpoints de santé et de version ;
- endpoints de gouvernance GOV ;
- endpoints PRO (décision, historique, statistiques).
- Stockage :
- SQLite ou PostgreSQL pour l’édition PRO (historique, dernier état) ;
- fichiers de configuration pour la politique globale et les projets.
- Proxy HTTPS (facultatif mais recommandé) :
- Caddy, NGINX ou équivalent pour terminer TLS et exposer l’API Aquila en HTTPS.
- Intégration CI/CD :
- GitHub Actions (ou autre orchestrateur) appelant l’API Aquila en début de pipeline.
Runner CI/CD ---> Aquila API (GOV/PRO) ---> Base de données (PRO)
| |
+---- logs / métriques --+
Flux principaux¶
- Vérification de santé
-
Le pipeline ou les outils de supervision appellent
/healthpour vérifier que l’agent est disponible. -
Décision de gouvernance (PRO)
- Un job de garde (“guard job”) appelle
/agent/publishavec le contexte (référentiel, branche, pipeline, etc.). -
Aquila PRO évalue la demande selon les règles configurées et répond
acceptedourefused. -
Historisation
- Chaque demande traitée par l’agent PRO est stockée dans une table d’historique.
-
Une vue “dernier état” permet de récupérer rapidement le statut récent d’un couple projet / pipeline / branche.
-
Observabilité
- Des métriques sont exposées via
/metricsau format Prometheus. - Les logs structurés permettent de reconstituer le détail des décisions.
Déploiement de référence¶
- 1 VM Linux ou 1 cluster de containers (Docker / Kubernetes).
- 1 reverse proxy HTTPS (Caddy, NGINX, Traefik, …).
- Base SQLite (petits environnements) ou PostgreSQL (production, multi‑équipes).
- Runners CI/CD autorisés à joindre l’API Aquila (firewall / ACL ajustés).
L’architecture détaillée pour la partie PRO est décrite dans pro/overview.md et pro/packaging.md.