Skip to content
StableAudienceOpsSécuritéAudit banqueOwner@platform-opsDernière revue2026-05-22

Infrastructure de base — vue d'ensemble

Procédure complète de déploiement de l'infrastructure staging Nex. La référence est éclatée en 4 pages thématiques, plus la checklist globale ci-dessous.

Objectif

À la fin de ce parcours, l'environnement staging dispose de :

  • Un VPC avec réseau segmenté (public / privé / données)
  • Un cluster Kubernetes (EKS) opérationnel avec des nœuds prêts
  • Une base PostgreSQL accessible depuis le cluster
  • Un cache Redis accessible depuis le cluster
  • Des buckets S3 pour les backups
  • Le DNS Cloudflare configuré et les certificats TLS prêts
  • Les secrets injectables via Doppler

Pré-requis : operations/variables-et-stack lu, tous les comptes créés, outils CLI installés.

Plan de déploiement (4 sous-pages)

PagePhasesContenu
Réseau1 → 3Backend Terraform state, VPC AWS, Security Groups
Data4 → 6RDS PostgreSQL, ElastiCache Redis, S3 buckets
Compute7 → 8Cluster EKS, composants K8s (ingress, cert-manager, external-secrets)
DNS, secrets et NestJS9 → 11DNS Cloudflare + certificats, Doppler / External Secrets, config NestJS des services

Checklist globale — fin du parcours

Toutes ces vérifications doivent passer avant d'entamer operations/cicd-services.

Infrastructure AWS

  • [ ] VPC créé avec CIDR 10.0.0.0/16 dans eu-west-3
  • [ ] 6 subnets sur 2 AZ (public, privé, data)
  • [ ] NAT Gateway actif
  • [ ] 4 Security Groups (alb, eks-nodes, rds, redis)
  • [ ] SG cluster EKS ajouté aux inbound de sg-rds et sg-redis
  • [ ] RDS PostgreSQL 16.13 disponible, encrypted, backups 30j, Performance Insights activé
  • [ ] User applicatif nex_app créé avec droits restreints (ou nex_admin temporairement)
  • [ ] Redis disponible, TLS activé, auth token configuré
  • [ ] Bucket S3 backups créé, encrypted, lifecycle configuré
  • [ ] Terraform state stocké dans S3 avec lock DynamoDB

Kubernetes

  • [ ] Cluster EKS actif avec 2 nœuds Ready
  • [ ] 6 namespaces permanents créés (nex-staging, nex-production, nex-monitoring, ingress-nginx, cert-manager, external-secrets)
  • [ ] Ingress NGINX Controller avec NLB (hostname récupéré)
  • [ ] cert-manager avec ClusterIssuers Let's Encrypt (prod + staging) Ready
  • [ ] External Secrets Operator connecté à Doppler
  • [ ] Secret nex-secrets synchronisé dans nex-staging
  • [ ] Secret gitlab-registry créé pour le pull d'images
  • [ ] Resource Quotas appliqués (staging + production + template review)
  • [ ] Overlay Kustomize review prêt (infrastructure/kubernetes/overlays/review/)

DNS & Certificats

  • [ ] dev.paywithnex.com pointe vers le NLB via Cloudflare (proxy activé)
  • [ ] *.review.paywithnex.com pointe vers le NLB via Cloudflare (proxy activé)
  • [ ] admin.paywithnex.com pointe vers Firebase Hosting
  • [ ] bo.paywithnex.com pointe vers Firebase Hosting
  • [ ] SSL/TLS Full Strict configuré dans Cloudflare
  • [ ] HSTS activé
  • [ ] Records SPF, DKIM, DMARC pour Resend

Secrets

  • [ ] Doppler (projet paywithnex, config stg) contient toutes les variables
  • [ ] Variables critiques : POSTGRES_SSL=true, REDIS_TLS=true
  • [ ] Noms corrects : POSTGRES_HOST (pas DATABASE_HOST), REDIS_PASSWORD (pas REDIS_AUTH_TOKEN)
  • [ ] URLs inter-services configurées (RISK_ENGINE_SERVICE_URL, etc.)
  • [ ] Les endpoints Terraform sont synchronisés dans Doppler
  • [ ] Les secrets sont accessibles depuis les pods K8s

Services NestJS

  • [ ] Tous les services ont un endpoint GET /health exclu du prefix global
  • [ ] Tous les services avec TypeORM ont SSL configuré (app.module.ts ET data-source.ts)
  • [ ] Les services Redis (auth, notifications) ont TLS activé
  • [ ] Les images Docker sont buildées en linux/amd64 et pushées sur GitLab Registry

Connectivité

  • [ ] Un pod dans nex-staging peut joindre RDS sur le port 5432 (avec SSL)
  • [ ] Un pod dans nex-staging peut joindre Redis sur le port 6379 (avec TLS)
  • [ ] curl sur https://dev.paywithnex.com retourne une réponse (même 404)
  • [ ] curl sur https://test.review.paywithnex.com résout vers le NLB (wildcard DNS OK)
  • [ ] Les dashboards Firebase Hosting répondent sur leurs domaines

Si un point est rouge → corriger avant de passer à operations/cicd-services.

Nex — Plateforme fintech CEMAC