Vue d'ensemble de l'architecture¶
AKKO s'organise en six couches horizontales qui livrent ensemble une plateforme analytique souveraine complète. Chaque couche s'appuie sur des composants open source, tourne sur Kubernetes, et se branche automatiquement à Keycloak SSO, à l'autorisation OPA, au catalogue OpenMetadata et à l'observabilité Prometheus / Loki.
Schéma de référence à six couches¶
flowchart TB
subgraph L6[Couche 6 — Gouvernance et sécurité]
direction LR
KC[Keycloak SSO<br/>5 rôles RBAC]
OPA[OPA<br/>politiques row/column]
OM[OpenMetadata<br/>catalogue et lignage]
O2P[oauth2-proxy<br/>ForwardAuth]
LLDAP[LLDAP<br/>LDAP optionnel]
end
subgraph L5[Couche 5 — Analytique et consommation]
direction LR
SUP[Superset<br/>tableaux de bord]
JH[JupyterHub<br/>notebooks]
AF[Airflow 3<br/>orchestration]
COCK[Cockpit<br/>portail]
end
subgraph L4[Couche 4 — IA et ML]
direction LR
ADEN[ADEN<br/>NL -> SQL -> dashboard]
OLL[Ollama<br/>Qwen 2.5 et Nomic]
LLM[LiteLLM<br/>passerelle IA]
MLF[MLflow<br/>tracking et registry]
MCP[Serveurs MCP<br/>Trino et OpenMetadata]
end
subgraph L3[Couche 3 — Calcul et requêtage]
direction LR
TRINO[Trino 480<br/>SQL fédéré + 17 UDF ai_*]
SPARK[Spark Connect<br/>gRPC]
DBT[dbt Core<br/>couche sémantique]
end
subgraph L2[Couche 2 — Stockage et catalogue]
direction LR
POLARIS[Apache Polaris<br/>catalogue REST Iceberg]
MINIO[SeaweedFS<br/>stockage objet S3]
PG[PostgreSQL<br/>PostGIS + pgvector]
end
subgraph L1[Couche 1 — Ingestion]
direction LR
AFI[DAGs Airflow<br/>fichiers + API + JDBC]
SPARKI[ETL Spark<br/>batch]
SRC[Sources externes<br/>OLTP, fichiers, API]
end
SRC --> AFI
SRC --> SPARKI
AFI --> PG
AFI --> MINIO
SPARKI --> MINIO
PG --> SPARK
PG --> TRINO
MINIO --> POLARIS
POLARIS --> TRINO
POLARIS --> SPARK
SPARK --> POLARIS
DBT --> TRINO
TRINO --> ADEN
TRINO --> SUP
TRINO --> JH
TRINO --> MCP
LLM --> OLL
ADEN --> LLM
MCP --> LLM
JH --> MLF
JH --> SPARK
AF --> SPARK
AF --> TRINO
OM -.lignage.-> TRINO
OM -.lignage.-> AF
OM -.catalogue.-> POLARIS
KC -.OIDC.-> SUP
KC -.OIDC.-> JH
KC -.OIDC.-> AF
KC -.OIDC.-> OM
KC -.OIDC.-> COCK
O2P -.forward-auth.-> MLF
OPA -.politiques.-> TRINO
LLDAP -.utilisateurs.-> KC
Responsabilités par couche¶
| Couche | Rôle | Services clés |
|---|---|---|
| 1. Ingestion | Acheminer les données depuis les systèmes sources | DAGs Airflow, batch Spark, CDC Postgres |
| 2. Stockage | Tables brutes et organisées persistantes | SeaweedFS (S3), Apache Polaris (REST Iceberg), PostgreSQL (PostGIS + pgvector) |
| 3. Calcul | Exécuter ELT et requêtes interactives | Trino 480 (SQL fédéré + 25 fonctions ai_* = 20 data + 5 admin), Spark Connect (gRPC), dbt Core |
| 4. IA / ML | NL -> SQL, embeddings, entraînement, service | ADEN, Ollama, LiteLLM, MLflow, serveurs MCP, jupyter-ai |
| 5. Analytique | Tableaux de bord, notebooks, pipelines | Superset, JupyterHub, Airflow 3, portail Cockpit |
| 6. Gouvernance | Identité, politique, catalogue, lignage | Keycloak, OPA, OpenMetadata, oauth2-proxy, LLDAP |
Consultez les schémas dédiés pour chaque dimension :
- Flux de données — pipeline de bout en bout de la source à la consommation.
- Stack IA — ADEN,
ai_*Trino, RAG et MCP. - Flux de sécurité — Keycloak -> OPA -> masquage Trino.
Préoccupations transverses¶
flowchart LR
subgraph Users[Utilisateurs]
U1[Analyste]
U2[Ingenieur]
U3[Admin]
U4[Agent IA]
end
subgraph Edge[Bordure]
TRAEFIK[Traefik<br/>TLS et routage]
COCK[Cockpit<br/>portail]
end
subgraph Control[Plan de contrôle]
KC[Keycloak]
OPA[OPA]
OM[OpenMetadata]
end
subgraph Observe[Observabilité]
PROM[Prometheus]
GRAF[Grafana]
LOKI[Loki]
TEMPO[Tempo]
AM[Alertmanager]
end
U1 --> TRAEFIK
U2 --> TRAEFIK
U3 --> TRAEFIK
U4 --> TRAEFIK
TRAEFIK --> COCK
TRAEFIK --> KC
COCK -.sondes.-> Observe
KC --> OPA
OPA --> OM
Observe -.dashboards.-> COCK
AM -.alertes.-> Control
Chaque service expose des métriques Prometheus, des logs JSON structurés vers Loki et des traces OTLP vers Tempo. Alertmanager route les violations SLO (burn rapide ADEN, ingestion de traces stagnante, disjoncteur plugin Trino AI ouvert) vers la page Alertes du Cockpit.
Garanties de souveraineté¶
- Aucun appel externe. Toute inférence IA, embedding et consultation catalogue se fait dans le cluster.
- Images reproductibles. Les 12 images custom sont pinnées à
2026.03. Aucun:latest. - Manifestes portables. Le chart Helm tourne sur k3d, k3s, EKS, GKE, AKS, OpenShift, bare-metal et en air-gap.
- Standards ouverts. Iceberg, S3, OIDC, OpenLineage, exposition Prometheus, OpenTelemetry.
Voir aussi : Flux de sécurité · Déploiement Kubernetes · Catalogue de services