This guide covers production-ready deployment patterns for Ripple Custody with any KMS platform (HSM, Cloud KMS, or MPC). These patterns ensure high availability, observability, and operational resilience.
Applies to: All KMS integrations — both HSM and MPC deployments.
For production deployments, use namespace segmentation to isolate different components and enable multi-tenancy.
| Namespace | Purpose | Components |
|---|---|---|
custody-core | Core infrastructure | Notary, Core services |
custody-vaults | Vault workloads | Vault instances |
custody-networks | Network adapters | Blockchain indexers, network bridges |
custody-monitoring | Observability | Prometheus, Grafana, alerting |
- Security isolation: Network policies restrict cross-namespace traffic.
- Resource quotas: Limit resource consumption per namespace.
- RBAC Boundaries: Fine-grained access control per component
- Operational clarity: Clear separation of concerns.
- Compliance: Meet regulatory requirements for multi-tenant isolation
# Create namespaces
kubectl create namespace custody-core
kubectl create namespace custody-vaults
kubectl create namespace custody-networks
kubectl create namespace custody-monitoring
# Apply network policies (restrict cross-namespace traffic)
kubectl apply -f network-policies/Helm deployment:
helm upgrade --install harmonize ./harmonize-custody \
--namespace custody-core \
--set components.notary.namespace=custody-core \
--set harmonize.vaults.*.namespace=custody-vaults \
-f production.yamlDeploy multiple replicas of critical components. Note that the notary must run as a singleton (Merkle tree operations cannot be parallelized), while the vault supports multiple replicas for high availability:
# production.yaml
harmonize:
vaults:
"00000000-0000-0000-0000-000000000000":
enabled: true
replicas: 3 # Multiple vault replicas for HA
# Pod anti-affinity (spread across nodes)
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app: harmonize-vault
topologyKey: kubernetes.io/hostname
resources:
limits:
cpu: 2000m
memory: 512Mi
requests:
cpu: 500m
memory: 256Mi| KMS Platform | HA Strategy |
|---|---|
| Thales Luna HSM | HA Group with multiple HSMs, automatic failover |
| BlockSafe HSM | HSM clustering across racks/locations |
| Securosys Primus HSM | HA Group with multiple HSMs, automatic failover |
| AWS CloudHSM | Multi-AZ cluster deployment |
| IBM HSM | GREP11 API with IBM HPVS, CEX6S clustering for secure components only |
| MPC | Distributed nodes (3-of-4 threshold signing) |
Refer to your specific KMS integration guide for detailed HA configuration.
Use different HSM topologies for production and non-production environments to balance security with cost efficiency.
Production environments require a full HA cluster with partition replication across multiple HSMs:
Key points:
- 3+ HSMs in an HA group for redundancy
- Partition replication across all HSMs
- Multiple vault replicas for signing capacity
- Automatic failover if any HSM becomes unavailable
| Category | Metrics to Monitor |
|---|---|
| KMS/HSM Health | Connection status, latency, error rate |
| Signing Operations | Requests/second, success rate, latency |
| Pod Health | CPU, memory, restarts, readiness |
| Application | Transaction throughput, queue depth |
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: harmonize-notary
namespace: custody-monitoring
spec:
selector:
matchLabels:
app: harmonize-notary
namespaceSelector:
matchNames:
- custody-core
endpoints:
- port: metrics
interval: 30s
path: /metrics| Alert | Condition | Severity |
|---|---|---|
KMSConnectionFailed | HSM/KMS connection down > 1 min | Critical |
SigningLatencyHigh | p99 latency > 500ms for 5 min | Warning |
NotaryPodDown | Notary pod unavailable > 1 min | Critical |
VaultReplicasLow | Vault replicas < 2 | Warning |
HighErrorRate | Error rate > 1% for 5 min | Warning |
For mTLS-enabled deployments (Luna, BlockSafe):
- Generate new certificates using your HSM vendor tools
- Create new Kubernetes secret with updated certificates
- Perform rolling update via Helm to pick up new credentials
- Verify connectivity to HSM with new certificates
- Revoke old certificates after confirming new ones work
Zero-Downtime Rotation: With multiple vault replicas, rolling updates ensure continuous availability during certificate rotation. Note that the notary runs as a singleton, so plan a brief maintenance window for notary certificate rotation.
| Component | Backup Method | Frequency |
|---|---|---|
| HSM Keys | Vendor-specific backup (Luna: partition backup, AWS CloudHSM: cluster backup) | Daily |
| Kubernetes Secrets | Encrypted backup to secure storage | Daily |
| Helm Values | Version control (Git) | On change |
| Configuration | Infrastructure as Code (Terraform/CDK) | On change |
Perform quarterly disaster recovery testing:
- HSM Recovery: Restore keys to test partition/cluster
- Kubernetes recovery: Redeploy from IaC to test cluster.
- End-to-End Test: Verify signing operations work after recovery
- Document results: Update runbooks based on findings.
- KMS integration overview - All supported KMS platforms
- Advanced secret management - ESO, Vault Agent, AWS Secrets Manager
- Domain injection - Advanced key isolation patterns
- Thales Luna HSM
- BlockSafe HSM
- AWS CloudHSM
- IBM LinuxONE
- MPC overview
- MPC backups