# Évaluation technique de préparation à la production

Catégorie Description de l’exigence
Général Votre instance Mojaloop de production sur cluster Kubernetes compte au moins 3 nœuds master et 3 nœuds worker répondant aux spécifications minimales suivantes :

- 3 nœuds master/worker : serveur entreprise milieu de gamme, minimum 128 cœurs CPU, 1024 Go RAM, 4 × 500 Go NVMe en RAID miroir, 2 × 10 GbE
- 5 nœuds worker et plus : serveur entreprise milieu de gamme, minimum 64 cœurs CPU, 512 Go RAM, 4 × 500 Go NVMe en RAID miroir, 2 × 10 GbE

Remarques :
- Les nœuds worker peuvent aussi être des masters, ce qui n’est pas recommandé pour la charge de production.
- Les spécifications des nœuds doivent être plus élevées s’il y en a moins.
Sécurité Vous utilisez l’une des méthodes suivantes pour terminer le mTLS entre participants et switch :
- Passerelle applicative du fournisseur cloud
- Pare-feu du fournisseur cloud
- Répartiteur de charge du fournisseur cloud
- Ingress NGINX Kubernetes
- Passerelle API Kubernetes, ex. ISTIO
- Pare-feu matériel entreprise
Vous utilisez une ou plusieurs des méthodes suivantes pour sécuriser les secrets en production :
- Hashicorp Vault dans le cluster
- Coffre de secrets du fournisseur cloud
- Appliance entreprise de stockage sécurisé des secrets
Vous utilisez une ou plusieurs des méthodes suivantes pour exploiter votre autorité de certification pour la génération de paires de clés mTLS et la signature des certificats participants :

- Mojaloop Connection Manager
- Hashicorp Vault dans le cluster
- Plateforme CA entreprise
- Autorité de certification tierce de confiance, ex. DigiCert, GlobalSign, etc.
Vous avez configuré le RBAC sur tous les portails Mojaloop pour limiter l’accès au personnel autorisé.
Vous utilisez une liste d’adresses IP autorisées pour contrôler l’accès aux services Mojaloop.

(par défaut = blocage)
Vous utilisez un pare-feu IP pour contrôler l’accès à votre infrastructure de production.
Gestion des utilisateurs Tous vos participants signent les messages JWS et vérifient les signatures.
Vous appliquez des contrôles de processus et techniques pour tout le personnel accédant à l’infrastructure et aux services applicatifs Mojaloop.
Résilience et fiabilité Vous exécutez au minimum 3 instances saines en permanence des pods suivants :

ml-api-adapter, ml-api-adapter-handler-notification, central-ledger-service, central-ledger-handler-admin, central-ledger-handler-prepare, central-ledger-handler-position, central-ledger-handler-fulfil, central-ledger-handler-get, account-lookup-service, account-lookup-service-admin, moja-quoting-service, moja-centralsettlement-handler-deferred, moja-centralsettlement-handler-gross, moja-centralsettlement-handler-rules, moja-centralsettlement-service, (moja-cl-handler-bulk-transfer-fulfil, moja-cl-handler-bulk-transfer-get, moja-cl-handler-bulk-transfer-prepare, moja-cl-handler-bulk-transfer-processing)

Remarque : les éléments entre parenthèses dépendent de fonctionnalités optionnelles.
Vous avez testé avec succès les mécanismes de récupération des pods Kubernetes pour faire face aux pannes et remplacer rapidement les pods dégradés afin de respecter vos SLA.
Toutes les bases de données Mojaloop tournent en instances répliquées de façon synchrone avec au minimum 3 réplicas sains en permanence.
Tous les pods avec état Mojaloop utilisent l’une des technologies de stockage sous-jacentes suivantes :

- Stockage NVMe sur nœud chiffré, en RAID miroir (voir spécifications des nœuds, section générale)
- Stockage cloud du fournisseur chiffré et répliqué.
- SAN entreprise chiffré et répliqué (non recommandé en production).
Tous les pods de base de données Mojaloop sont planifiés sur des nœuds physiques distincts et y stockent leurs données.
Tous les pods ZooKeeper Kafka sont planifiés sur des nœuds physiques distincts et y stockent leurs données.
Tous les pods courtier Kafka sont planifiés sur des nœuds physiques distincts et y stockent leurs données.
Un processus d’archivage des données est défini pour que les magasins de données de production ne dépassent pas une taille nuisible aux performances ou au risque d’épuisement d’espace libre.
Votre stockage d’archives est chiffré au repos, répliqué et d’un niveau suffisant pour vos exigences métier et réglementaires.
Tests Vous avez exécuté avec succès la suite de tests golden path Mojaloop et tous les tests passent.
Remarque : cette section est en cours d’extension par le workstream QA Framework Vous avez exécuté avec succès des suites de tests adjacentes pour des fonctionnalités personnalisées ou complémentaires et tous les tests passent.
Vous avez mené un test de charge réussi démontrant que votre instance de production supporte le trafic normal et de pointe attendu tout en respectant vos SLA.
Vous avez mené un test d’endurance (soak) réussi démontrant la stabilité de votre instance sur de longues périodes sans défaillance inattendue ni erreur irrécupérable.
Vous avez mené un test d’intrusion réussi sur votre instance de production et l’infrastructure associée, sans vulnérabilité identifiée.
Vous avez mené des tests de chaos réussis sur votre instance de production et prouvé que la défaillance simultanée de plusieurs composants est tolérée sans états incohérents ou irrécupérables.

Remarque : le nombre et la nature des pannes simultanées tolérées sont en partie subjectifs, mais vous devez pouvoir démontrer qu’un ensemble de pannes « raisonnablement anticipées » est toléré sans rupture de vos SLA définis.