Production_Readiness_Technical_Assessment

Category
Requirement Description

General

Your production Mojaloop instance Kubernetes cluster has at least 3 master nodes and 3 worker nodes that meet the following minimum specifications: - 3 master/worker nodes: Mid-level enterprise grade server, minimum 128 CPU cores, 1024GB RAM x4 500GB NVMe HDD in RAID mirroring configuration, x2 10GbE - 5 worker nodes and up: Mid-level enterprise grade server, minimum 64 CPU cores 512GB RAM x4 500GB NVMe HDD in RAID mirroring configuration, x2 10GbE Notes: - Worker nodes may also be master nodes but this is not recommended for production workloads. - Node specifications need to be higher if fewer are available.

Security

You are using one of the following methods to terminate mTLS between participants and the switch: - Cloud provider application gateway - Cloud provider firewall - Cloud provider load balancer - Kubernetes NGINX ingress - Kubernetes API gateway e.g. ISTIO. - Enterprise firewall appliance

You are using one or more of the following methods to secure secrets in your production environment? - In-cluster Hashicorp Vault - Cloud provider secure secret store - Enterprise grade secure secret storage appliance

You are using one or more of the following methods for operating your certificate authority for mTLS keypair generation and participant certificate signing: - Mojaloop connection manager - In-cluster Hashicorp Vault - Enterprise CA platform - Trusted 3rd Party certificate authority e.g. DigiCert, GlobalSign etc...

You have configured RBAC on all Mojaloop portals to restrict access to authorised staff.

You are using IP allow list filtering to control access to Mojaloop services. (default = block)

You are using an IP firewall to control access to your production infrastructure.

User management

Your participants are all performing JWS message signing and signature verification.

You enforce process and technical controls for all staff accessing the Mojaloop platform infrastructure and application services.

Resilience and Reliability

You are running a minimum of 3 healthy instances of the following pods at all times: 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) Note: items in brackets depend on optionally utilized features.

You have successfully tested Kubernetes pod recovery mechanisms to cope with pod failures and replace unhealthy pods in a timely manner in order to maintain your defined SLAs.

All mojaloop database data stores are running as synchronously replicated instances with a minimum of 3 healthy replicas at all times.

All stateful mojaloop pods are using one of the following underlying storage technologies: - Encrypted, RAID mirrored on-node NVMe storage (see node specs in general section) - Encrypted, replicated cloud provider storage. - Encrypted, enterprise grade, replicated SAN (not recommended for production).

All mojaloop database data store pods are scheduled to run on and store their data to different physical nodes.

All Kafka zookeeper pods are scheduled to run on and store their data to different physical nodes.

All Kafka broker pods are scheduled to run on and store their data to different physical nodes.

A data archiving process is defined to ensure production data stores to not grown beyond an appropriate size which would limit performance or risk free space exhaustion.

Your archive data storage is encrypted at rest, replicated and of sufficient grade to satisfy your business and regulatory operating requirements.

Testing

You have successfully executed the Mojaloop golden path test suite and all tests are passing.

Note: This section is currently being extended by the QA Framework Workstream

You have successfully executed adjacent test suites for custom or supplementary features and all tests are passing.

You have conducted a successful load test to prove your production instance can cope with your expected normal and peak traffic demands while maintaining your defined SLAs.

You have conducted a successful soak test to prove your production instance is stable over long periods of time without any unexpected failures or unrecoverable errors occurring.

You have conducted a successful penetration test of your production instance and supporting infrastructure and no vulnerabilities were found.

You have conducted successful chaos testing of your production instance and proved that simultaneous failure of multiple components is tolerated and the system continues to operate without falling into inconsistent or unrecoverable states. Note: The number and nature of tolerable simultaneous failures is somewhat subjective but you should be able to prove that a "reasonably well anticipated" set of failures can be tolerated without breaking your defined SLAs.

Last updated

Was this helpful?