Aller au contenu principal

Prérequis de Déploiement

Ce document fournit la liste complète des exigences d'infrastructure, de réseau et d'authentification pour déployer la Plateforme STOA. Partagez-le avec vos équipes IT, réseau et sécurité avant le déploiement.

Quel modèle de déploiement ?

Consultez Déploiement Hybride pour choisir entre les modèles Hybride, Entièrement Sur Site ou Multi-Cloud. Cette page couvre les prérequis techniques pour tous les modèles.


1. Exigences d'Infrastructure

Cluster Kubernetes

ExigenceMinimumRecommandé
Version Kubernetes1.28+1.30+
Nœuds workers23+
CPU par nœud4 vCPU8 vCPU
RAM par nœud8 Go16 Go
Disque par nœud40 Go SSD100 Go NVMe
Runtime de conteneurcontainerd 1.7+containerd 1.7+
Contrôleur IngressQuelconque (nginx, Traefik, Envoy)nginx-ingress
cert-managerv1.12+v1.14+
Helmv3.12+v3.14+

Distributions supportées : EKS, GKE, AKS, OVH MKS, K3s, RKE2, OpenShift 4.12+.

Budget de Ressources par Composant

ComposantRéplicasCPU RequestCPU LimitRAM RequestRAM LimitDisque
Control Plane API2250m1000m256Mi1Gi
Console UI1100m500m128Mi256Mi
Developer Portal1100m500m128Mi256Mi
Stoa Gateway2250m1000m128Mi512Mi
Keycloak1500m2000m512Mi2Gi
PostgreSQL1 (HA : 2)250m1000m512Mi2Gi20Gi PVC
Total (minimum)8 pods1,8 CPU7 CPU2 Go6,5 Go20 Go

Dépendances Externes (Entièrement Sur Site uniquement)

Ces composants ne sont requis que pour le modèle Entièrement Sur Site. En mode Hybride, STOA Cloud les fournit.

ComposantVersionObjectifAlternative
PostgreSQL16+Base de données Control PlaneTout PG géré (RDS, Cloud SQL, Azure DB)
Redis7+Cache gateway (optionnel)
OpenSearch2.11+Logs et recherche (optionnel)Elasticsearch 8.x

2. Matrice des Flux Réseau

Vue d'Ensemble

Matrice Détaillée des Ports

Flux Entrants (vers votre cluster)

SourceDestinationPortProtocoleObjectifRequis ?
Utilisateurs / NavigateursContrôleur Ingress443HTTPS/TLSAccès Console, Portal, APIOui
Utilisateurs / NavigateursContrôleur Ingress80HTTPRedirection vers HTTPSRecommandé
Agents IA (Claude, GPT, etc.)Contrôleur Ingress443HTTPS/TLSGateway MCP (découverte + appels d'outils)Oui
Agents IAContrôleur Ingress443HTTPS/TLSDécouverte OAuth 2.1 + échange de tokensOui
Monitoring (Uptime Kuma, etc.)Contrôleur Ingress443HTTPS/TLSEndpoints de vérification de santéRecommandé

Flux Sortants (depuis votre cluster)

SourceDestinationPortProtocoleObjectifRequis ?
Pods gatewayAPIs backendvariableHTTP/HTTPSRoutage du trafic APIOui
Pods gatewayFournisseur d'identité443HTTPSValidation de token OIDC (JWKS)Oui
Pods gatewayAPI STOA Cloud443HTTPSSync config, envoi métriques (Hybride uniquement)Hybride uniquement
Control Plane APIFournisseur d'identité443HTTPSFédération utilisateur, introspection de tokenOui
Control Plane APIPostgreSQL5432TCP/TLSRequêtes base de donnéesOui
Nœuds K8sRegistre de conteneurs443HTTPSPull des images (GHCR)Oui
cert-managerLet's Encrypt443HTTPSÉmission de certificats TLS (ACME)Si LE utilisé
Pods gatewayAPIs Fournisseur LLM443HTTPSRoutage IA (si fonctionnalités LLM activées)Optionnel

Flux Internes (au sein de votre cluster)

SourceDestinationPortProtocoleObjectif
Contrôleur IngressPods Console UI8080HTTPServing frontend
Contrôleur IngressPods Portal8080HTTPServing portal
Contrôleur IngressPods Control Plane API8000HTTPAPI REST
Contrôleur IngressPods gateway8080HTTPTrafic MCP + proxy
Contrôleur IngressPods Keycloak8080HTTPUI Auth + endpoints OIDC
Control Plane APIKeycloak8080HTTPValidation de token, sync utilisateurs
Control Plane APIPostgreSQL5432TCPBase de données
GatewayControl Plane API8000HTTPChargement config, registre d'outils
GatewayKeycloak8080HTTPEndpoint JWKS, introspection de token
KeycloakPostgreSQL5432TCPBase de données Auth

Résumé des Règles Pare-feu

À fournir à votre équipe réseau :

# ENTRANT (vers le cluster K8s)
ALLOW TCP/443 FROM 0.0.0.0/0 TO <INGRESS_LB_IP> # Trafic HTTPS
ALLOW TCP/80 FROM 0.0.0.0/0 TO <INGRESS_LB_IP> # Redirection HTTP→HTTPS

# SORTANT (depuis le cluster K8s)
ALLOW TCP/443 TO ghcr.io # Images de conteneurs
ALLOW TCP/443 TO acme-v02.api.letsencrypt.org # Certificats TLS (si LE)
ALLOW TCP/443 TO <VOTRE_DOMAINE_IDP> # OIDC (Keycloak, Okta, Azure AD)
ALLOW TCP/5432 TO <VOTRE_HOST_PG> # PostgreSQL (si externe)
ALLOW TCP/443 TO api.gostoa.dev # STOA Cloud (Hybride uniquement)

# SORTANT OPTIONNEL
ALLOW TCP/443 TO api.anthropic.com # Routage LLM (si activé)
ALLOW TCP/443 TO api.openai.com # Routage LLM (si activé)

3. Exigences DNS

Sous-domaines

STOA nécessite 5 sous-domaines pointant vers l'IP externe ou le load balancer de votre contrôleur Ingress.

Sous-domaineServiceObjectif
console.<YOUR_DOMAIN>Console UITableau de bord administrateur
portal.<YOUR_DOMAIN>Developer PortalCatalogue API, abonnements
api.<YOUR_DOMAIN>Control Plane APIAPI REST + opérations admin
mcp.<YOUR_DOMAIN>Stoa GatewayProtocole MCP, accès agents IA, proxy API
auth.<YOUR_DOMAIN>KeycloakSSO, fournisseur OIDC

Sous-domaines optionnels :

Sous-domaineServiceQuand Nécessaire
grafana.<YOUR_DOMAIN>GrafanaSi déploiement de la stack d'observabilité
vault.<YOUR_DOMAIN>Vault/InfisicalSi déploiement du gestionnaire de secrets

Configuration DNS

# Tous les sous-domaines pointent vers la même IP LB Ingress
console.<YOUR_DOMAIN> A <INGRESS_LB_IP>
portal.<YOUR_DOMAIN> A <INGRESS_LB_IP>
api.<YOUR_DOMAIN> A <INGRESS_LB_IP>
mcp.<YOUR_DOMAIN> A <INGRESS_LB_IP>
auth.<YOUR_DOMAIN> A <INGRESS_LB_IP>

Les certificats TLS sont gérés par cert-manager (ClusterIssuer avec Let's Encrypt ou votre CA interne). Aucune gestion manuelle de certificats n'est requise.


4. Exigences d'Authentification

Fournisseur d'Identité (IdP)

STOA utilise Keycloak comme courtier d'identité. Keycloak peut fédérer avec votre IdP existant.

Type d'IdPIntégrationProtocoleCe que vous fournissez
Keycloak (inclus)Inclus dans le chart HelmOIDCRien — prêt à l'emploi
Azure AD / Entra IDCourtier d'identité KeycloakOIDC/SAMLID tenant, Client ID, Client Secret
OktaCourtier d'identité KeycloakOIDCURL Issuer, Client ID, Client Secret
Oracle OAMCourtier d'identité KeycloakSAML 2.0XML de métadonnées, Entity ID
LDAP/Active DirectoryFédération d'utilisateurs KeycloakLDAPURL de connexion, Bind DN, Search Base
Tout fournisseur OIDCCourtier d'identité KeycloakOIDCIssuer, Client ID, Secret

Rôles RBAC

STOA est livré avec 4 rôles prédéfinis. Mappez-les vers les groupes de votre IdP :

Rôle STOAPermissionsMapping Typique
cpi-adminAdministration complète de la plateformeGroupe Admin IT
tenant-adminGérer son propre tenant (APIs, apps, utilisateurs)Responsable Équipe API
devopsDéployer et promouvoir des APIsÉquipe DevOps / SRE
viewerAccès en lecture seuleAuditeurs, parties prenantes

MCP OAuth 2.1 (Accès des Agents IA)

Les agents IA (Claude, GPT, personnalisés) s'authentifient via OAuth 2.1 avec PKCE :

ExigenceDétail
ProtocoleOAuth 2.1 (découverte RFC 9728 + métadonnées RFC 8414)
Type de grantAuthorization Code avec PKCE (S256)
Type de clientPublic (sans client_secret)
EnregistrementDynamic Client Registration (DCR) — automatique
Scopesstoa:read, stoa:write, stoa:admin

Aucune configuration manuelle n'est nécessaire pour les agents IA — le Gateway gère automatiquement la découverte OAuth, DCR et PKCE.


5. Images de Conteneurs

Toutes les images STOA sont publiées sur GitHub Container Registry (GHCR).

ImagePolitique de TagTaille
ghcr.io/stoa-platform/control-plane-apilatest, semver~250 Mo
ghcr.io/stoa-platform/control-plane-uilatest, semver~50 Mo
ghcr.io/stoa-platform/portallatest, semver~50 Mo
ghcr.io/stoa-platform/stoa-gatewaylatest, semver~30 Mo
ghcr.io/stoa-platform/keycloaklatest~500 Mo

Air-Gappé / Registre Privé

Pour les environnements sans accès Internet :

# Pull et re-tag pour votre registre privé
for img in control-plane-api control-plane-ui portal stoa-gateway keycloak; do
docker pull ghcr.io/stoa-platform/$img:latest
docker tag ghcr.io/stoa-platform/$img:latest your-registry.internal/$img:latest
docker push your-registry.internal/$img:latest
done

Puis surcharger dans les valeurs Helm :

global:
imageRegistry: your-registry.internal
imagePullSecrets:
- name: your-registry-secret

6. Comparaison des Topologies de Déploiement

Hybride (Recommandé)

Votre Responsabilité                    STOA Cloud (UE)
┌─────────────────────────┐ ┌────────────────────┐
│ Cluster K8s │ │ Control Plane │
│ ├── Stoa Gateway (2) │───HTTPS───▶│ ├── Console UI │
│ ├── Vos APIs Backend │ sortant │ ├── Portal │
│ └── Fournisseur IdP │ seulement │ ├── API │
│ │ │ ├── Keycloak │
│ Pare-feu : TCP/443 OUT │ │ └── PostgreSQL │
└─────────────────────────┘ └────────────────────┘

Vous gérez : Cluster K8s, pods gateway, APIs backend, fédération IdP. STOA gère : Control Plane, base de données, mises à jour, monitoring. Réseau : HTTPS sortant uniquement (aucune connexion entrante depuis STOA Cloud).

Entièrement Sur Site

Votre Responsabilité (tout)
┌──────────────────────────────────────┐
│ Cluster K8s │
│ ├── Control Plane API (2) │
│ ├── Console UI (1) │
│ ├── Portal (1) │
│ ├── Stoa Gateway (2) │
│ ├── Keycloak (1) │
│ ├── PostgreSQL (1-2) │
│ └── [Optionnel] Grafana, OpenSearch │
│ │
│ Pare-feu : TCP/443 IN (utilisateurs) │
│ TCP/443 OUT (GHCR, LE) │
└──────────────────────────────────────┘

Vous gérez : Tout. STOA fournit : Chart Helm, images de conteneurs, documentation, support. Réseau : HTTPS entrant pour les utilisateurs + sortant pour les pulls d'images et les certificats TLS.


7. Liste de Vérification Pré-Déploiement

À remettre à votre équipe IT. Tous les éléments doivent être confirmés avant le jour du déploiement.

Infrastructure

  • Cluster Kubernetes provisionné (version 1.28+)
  • Minimum 2 nœuds workers (4 vCPU, 8 Go chacun)
  • Contrôleur Ingress installé (nginx-ingress, Traefik ou équivalent)
  • cert-manager installé (v1.12+)
  • Helm v3.12+ disponible
  • Accès kubectl confirmé depuis la machine de déploiement
  • Classe de stockage disponible pour les PVCs (20 Go minimum)

Réseau

  • IP du load balancer Ingress assignée
  • 5 enregistrements DNS créés (console, portal, api, mcp, auth)
  • Propagation DNS vérifiée (dig console.<YOUR_DOMAIN>)
  • Règles pare-feu appliquées (voir Section 2)
  • HTTPS sortant vers ghcr.io confirmé
  • HTTPS sortant vers acme-v02.api.letsencrypt.org confirmé (si LE utilisé)
  • HTTPS sortant vers votre IdP confirmé

Authentification

  • Détails de fédération IdP collectés (type, endpoint, client ID/secret)
  • Mapping des rôles RBAC défini (4 rôles STOA → groupes de votre IdP)
  • Utilisateur admin identifié pour la configuration initiale

Base de Données (Entièrement Sur Site uniquement)

  • PostgreSQL 16+ provisionné
  • Deux bases de données créées : stoa_production, keycloak
  • Chaîne de connexion disponible (host, port, utilisateur, mot de passe)
  • SSL/TLS activé pour les connexions DB

Images de Conteneurs

  • Pull depuis ghcr.io confirmé, OU
  • Images mirrorées vers registre privé + valeurs Helm mises à jour

8. Matrice de Support

ÉlémentHybrideEntièrement Sur Site
Mises à jour Control PlaneAutomatiquesHelm upgrade (manuel)
Correctifs de sécuritéAutomatiquesPull image + rollout
Sauvegardes base de donnéesGérées par STOAVotre responsabilité
Certificats TLScert-manager (auto)cert-manager ou votre CA
MonitoringInclus (Grafana)Optionnel (addon Helm)
SLA99,9% (Control Plane)Dépend de votre infra
Canaux de supportEmail + SlackEmail + Slack

Étapes Suivantes

  1. Choisir votre modèleDéploiement Hybride
  2. Démarrage rapideGuide de Démarrage Rapide
  3. Revue sécuritéSécurité & Conformité
  4. MigrationGuides de Migration (Kong, Apigee, webMethods, etc.)

Des questions sur les prérequis ? Contactez-nous — nous accompagnons les équipes enterprise dans les revues d'architecture et la planification du déploiement.