SMI Requirements overview
Requirements prior to installation#
Before beginning the SMI installation, ensure that your current system has the full set of required system resources which are described in this page.
These requirements are broken down into the following categories:
- Essential system resources
- Suggested requirements for Amazon Web Services
- Other suggested requirements
Essential system resources#
A Digital Twin Platform environment will generally require the following system resources:
- Core Networking
- Subnets, routing tables, internet access, etc.
- Load balancing, WAF, etc. for ingress into Kubernetes
- Kubernetes v1.29+
- Network Policy Implementation
- Custom Metrics Collection Implementation
- Block storage CSI Provider
- Shared file system CSI Provider
- Postgres v14
- MongoDB v6
- Redis v7
- Neo4J v4.4
- Kafka v3.7
- ActiveMQ v5.18
- SMTP
- DNS
Suggested requirements for Amazon Web Services#
If deploying to Amazon Web Services (AWS), ensure that you have the following:
- AWS Virtual Private Networking (VPC)
- Subnets, routing tables, internet access, etc.
- Load balancing, WAF, etc. for ingress into Kubernetes
- AWS Elastic Kubernetes Service (EKS)
- EKS Cluster v1.29
- Pod Identity Agent
- Network Policy Implementation (e.g. Calico or VPC CNI)
- Custom Metrics Collection Implementation, e.g. Prometheus as kube-prometheus-stack and Prometheus Adapter as prometheus-adapter
- Block storage CSI Provider
- Shared file system CSI Provider
- AWS Relational Database System (RDS)
- AWS ElastiCache
- AWS Managed Service for Kafka (MSK)
- AWS MQ (AMQ)
- MongoDB Atlas
- Neo4j Standalone Helm Chart
- Neo4J v4.4 - Needs two standalone clusters (neo4j1 and neo4j2)
- AWS CloudFront
- Refer to the AWS CloudFront Requirements page for details.
- AWS S3
- Refer to the AWS S3 Requirements page for details.
- SMTP (no dedicated cluster needed; simply an SMTP endpoint for delivering emails). While AWS has the Simple Email Service (SES), most customers will have an existing SMTP server for this use.
Other suggested requirements#
It is also recommended to have the following:
- Ingress, Naming, and Certificates: Use ingress-nginx, external-dns, and cert-manager to auto-create your cloud native load balancer, proxy your incoming traffic to the Kubernetes cluster, assign it DNS names, and create certificates from Let’s Encrypt or another ACME based certificate provider.
- External Secrets: Store all your generated secrets in AWS Secrets Manager and then pull those secrets into Kubernetes using External Secrets Operator. This is especially helpful for generating the secrets for external services used by the Digital Twin Platform Helm Chart.
- Service Mesh: For mTLS connections between services inside Kubernetes. Our installation doesn’t provide native TLS between services and to other Kubernetes installations (such as neo4j). The expectation is some service mesh is in place to encrypt traffic (for example, Istio, Linkerd, AWS App Mesh Controller, etc.)
- Cluster Autoscaling: Services are configured to horizontally scale when necessary. As such, a cluster autoscaler should be in place (for example, cluster-autoscaler, AWS Karpenter, etc.).