Aller au contenu principal

Vue d'Ensemble de l'Architecture

« Deux architectures, une vision » — Implémentation actuelle + État cible pour v1.0

La plateforme STOA est conçue comme une plateforme de gateway cloud-native et multi-tenant, construite pour les APIs traditionnelles et les agents IA. Ce document maintient deux vues distinctes :

  1. Live — Ce qui est effectivement déployé et en production
  2. Cible — L'architecture vers laquelle nous convergeons (v1.0 Q3 2026)

Dernière mise à jour : 2 février 2026 — Post Cycle 5 (CAB-668)


Architecture Live (Février 2026)​

Ce qui tourne en production sur *.stoa.cab-i.com

Services Live — Statut 02/02/2026​

ServiceURLStatutStack
Portalportal.stoa.cab-i.com✅ LiveReact
Control Plane APIapi.stoa.cab-i.com✅ LiveFastAPI (Python)
Consoleconsole.stoa.cab-i.com✅ LiveReact
MCP Gatewaymcp.stoa.cab-i.com✅ LiveFastAPI (Python)
Keycloakkeycloak.stoa.cab-i.com✅ LiveKeycloak (OIDC)
Grafanagrafana.stoa.cab-i.com✅ LiveGrafana + Loki
OpenSearchopensearch.stoa.cab-i.com✅ LiveOpenSearch
Docsdocs.gostoa.dev✅ LiveDocusaurus (Vercel)
Kafka BridgeInterne uniquement✅ LiveFastAPI (CAB-485)
Error Snapshot ConsumerInterne uniquement✅ LivePython (CAB-485)

Fonctionnalités Live — Implémentées (Post Cycle 5)​

  • ✅ Auth : Keycloak OIDC + TOTP 2FA + RBAC multi-tenant
  • ✅ Abonnements : Outil → Utilisateur → Tenant avec clés API (Vault)
  • ✅ MCP Gateway : list_tools, call_tool, list_resources — intégration Claude.ai corrigée (bugs JSON-RPC résolus)
  • ✅ Découverte d'outils Multi-Tenant : Outils limités au tenant avec injection du contexte JWT
  • ✅ GitOps Multi-Gateway : ArgoCD + Patron Adaptateur de Gateway (STOA, Kong, Gravitee, webMethods)
  • ✅ Foundation ArgoCD : Déploiement continu GitOps pour stoa-system
  • ✅ Error Snapshots : Capture → Kafka → MinIO → Récupération via API (CAB-397 + CAB-485)
  • ✅ Observabilité : Prometheus + Grafana + Loki centralisés
  • ✅ Recherche : Catalogue OpenSearch + piste d'audit
  • ✅ Webhooks : Notifications subscription.created/renewed/revoked
  • ✅ Sécurité : Gestion des secrets Vault, RBAC Keycloak, socle mTLS

Dépôts Git​

DépôtHébergementObjectif
stoa-platform/stoaGitHub (public)Code principal de la plateforme (Apache 2.0)
stoa-platform/stoa-docsGitHub (public)Site de documentation
stoa-platform/stoa-webGitHub (public)Page d'accueil (gostoa.dev)
stoa-platform/stoa-helmGitHub (public)Charts Helm
PotoMitan/stoa-gitopsGitLab (privé)Applications ArgoCD, playbooks Ansible, infra
PotoMitan/stoa-catalogGitLab (privé)Définitions d'APIs tenant, configs webMethods
PotoMitan/stoa-opsGitLab (privé)Terraform, scripts opérationnels

Flux de Déploiement (Live)​

Important

Le flux de déploiement n'est PAS piloté par Kafka. Le Control Plane API orchestre la synchronisation des gateways directement via le Patron Adaptateur de Gateway (ADR-035).

Kafka est utilisé exclusivement pour le streaming d'événements internes (snapshots d'erreurs, metering), jamais pour l'orchestration du déploiement. Voir ADR-017 : Kafka Interne Uniquement.

Namespace Kubernetes​

Tous les composants s'exécutent dans le namespace stoa-system sur EKS :

kubectl get pods -n stoa-system

Architecture Cible (v1.0 — Q3 2026)​

Vision : natif eBPF, CLI-first, prêt pour l'IA

Différences Live → Cible​

ComposantLive (Fév. 2026)Cible (Q3 2026)Cycle
GatewaywebMethods (Java)stoa-proxy (Rust)Cycle 15
Rate LimitingUser-space (slowapi)XDP/eBPF (noyau)Cycle 15
Control PlaneFastAPI (Python)stoa-api (Go)Cycle 15
CLI—stoa-cli (Go)Cycle 15
Operator—stoa-operator (Go)Cycle 15
GitOpsArgoCD + Gateway AdaptersArgo CD + RolloutsCAB-483
CacheEn mémoireRedis distribuéCAB-306
Protocoles B2BREST uniquementEDI/SWIFT/Euro Num.Cycle 13
AI GatewayMCP de baseCache sémantique + routageCycle 17

CRDs — Feuille de Route v1.0​

Non Encore Déployé

Les Custom Resource Definitions suivantes sont prévues pour v1.0 et ne sont pas encore déployées. Elles seront gérées par le stoa-operator :

# FEUILLE DE ROUTE - Non déployé encore
apiVersion: stoa.io/v1alpha1
kind: Tool
metadata:
name: billing-api
namespace: tenant-acme
spec:
protocol: rest
upstream: https://api.acme.com/billing
auth:
type: oauth2
issuer: https://keycloak.stoa.cab-i.com/realms/acme
---
apiVersion: stoa.io/v1alpha1
kind: ToolSet
metadata:
name: acme-tools
namespace: tenant-acme
spec:
tools:
- billing-api
- inventory-api
policies:
rateLimit: 1000/min
auth: required

Feuille de Route de Migration​

Jan 2026       Fév 2026       Mar 2026       Q2 2026        Q3 2026
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│v0.1.0 │ │v0.2.0 │ │v0.3.0 │ │v0.5.0 │ │v1.0.0 │
│MVP │────►│Demo │────►│Proxy │────►│eBPF │────►│GA │
│ │ │ │ │ │ │ │ │ │
│Arch │ │+Claude│ │+Rust │ │+eBPF │ │Cible │
│Live │ │ .ai │ │Proxy │ │ │ │Finale │
└───────┘ └───────┘ └───────┘ └───────┘ └───────┘
│ │
└──────────── Période Hybride ───────────────────────────┘
(webMethods + stoa-proxy coexistent avec bascule de trafic)

Stack Technologique​

CoucheLive (Fév. 2026)Cible (v1.0)
GatewaywebMethods (Java)Rust, Tokio, Hyper
MCP GatewayPython, FastAPIRust (intégré dans stoa-proxy)
Control Plane APIPython, FastAPIGo
FrontendReact, TypeScript, TailwindReact, TypeScript, Tailwind
Base de donnéesPostgreSQLPostgreSQL
Event StreamingRedpanda (API Kafka)Redpanda (API Kafka)
RechercheOpenSearchOpenSearch
Stockage objetMinIOMinIO / S3
CacheEn mémoireRedis
AuthKeycloakKeycloak
SecretsHashiCorp VaultHashiCorp Vault
ObservabilitéPrometheus, Grafana, LokiPrometheus, Grafana, Loki
GitOpsArgoCD + Gateway AdaptersArgoCD + Argo Rollouts
InfrastructureKubernetes (EKS), HelmKubernetes, Helm, Terraform

Zones de Sécurité​

ZoneNiveau de ConfianceComposants
ExterneNon fiableClients API, Claude.ai, Console Web
DMZSemi-fiableIngress Traefik, API Gateway, MCP Gateway
InterneFiableControl Plane, Keycloak, Couche Données

Principes de sécurité clés :

  • Kafka/Redpanda : zéro exposition externe (ADR-017)
  • Isolation multi-tenant via contexte JWT (ADR-016)
  • GitOps avec Argo CD pour la config déclarative (ADR-015)
  • Tous les secrets gérés via HashiCorp Vault

Flux du MCP Gateway​

Isolation des Outils Multi-Tenant​

Chaque tenant ne voit que ses propres outils :

TenantOutils PlateformeOutils Tenant
Parzival (IOI)stoa_*ioi:billing:*, ioi:inventory:*
Sorrento (Gregarious)stoa_*greg:oasis:*, greg:sixers:*
Halliday (Admin)Visibilité complète cross-tenantTous les outils

Documents Associés​


Journal des Modifications​

DateVersionModifications
2026-02-022.1Alignement CAB-668 : terminologie Phase→Cycle, actualisation Fév. 2026, fonctionnalités post-Cycle 5
2026-01-182.0Séparation Live vs Cible, corrections d'URLs
2026-01-151.9Ajout CAB-485 (Error Snapshots)
2026-01-111.8Intégration OPA MCP Gateway

Référence : CAB-668 — STOA Platform