Aller au contenu

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 :

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