# System Specifications
# Production Environment
Petro.ai is flexible enough to be deployed on a single node for testing environments but can scale up to fit the redundancy and performance needs in a production deployment. In general, Petro.ai Core should be network and CPU optimized for API traffic and Petro.ai Worker should be CPU and RAM optimized for job workloads. Further hardware considerations and production level configurations for the Petro.ai Database should be reviewed in the MongoDB Production Notes and MongoDB Operations Checklist.
Below are the recommended system deployments and their associated specifications.
# Five-Node Deployment
The five-node deployment offers the best performance for API routing, many/frequent scheduled jobs, and large datasets, and database availability. It is best suited for large production environments with the following use cases:
- Real-time data ingestion into Petro.ai
- Large datasets spanning most Petro.ai datatypes
| Petro Manager | Petro Worker | Petro Database 1 | Petro Database 2 | Petro Database 3 | |
|---|---|---|---|---|---|
| Platform | Windows Server 2016 or better | Windows Server 2016 or better | Windows Server 2016 or better (note 1) | Windows Server 2016 or better (note 1) | Windows Server 2016 or better (note 1) |
| CPU | ≥ 4 vCPUs | ≥ 8 vCPUs | ≥ 8 vCPUs | ≥ 8 vCPUs | ≥ 8 vCPUs |
| RAM | ≥ 16GB | ≥ 32GB | ≥ 32GB | ≥ 32GB | ≥ 32GB |
| OS Disk | 80GB | 80GB | 80GB | 80GB | 80GB |
| Data Disk (note 2) | N/A | N/A | 1TB | 1TB | 1TB |
Note 1
See MongoDB Documentation for recommended platforms.
Note 2
For data replication and disaster recovery data disks should be physically separate, i.e. not sharing a common virtualized disk.
# Three-Node Deployment
The three-node deployment offers a smaller database footprint at the expense of database availability. It is best suited for moderately sized production or test environments with the following use cases:
- No real-time data ingestion
- Moderately sized datasets focusing on a subset of Petro.ai datatypes
| Petro Manager | Petro Worker | Petro Database 1, 2, 3 | |
|---|---|---|---|
| Platform | Windows Server 2016 or better | Windows Server 2016 or better | Windows Server 2016 or better (note 1) |
| CPU | ≥ 4 vCPUs | ≥ 8 vCPUs | ≥ 8 vCPUs |
| RAM | ≥ 16GB | ≥ 32GB | ≥ 32GB |
| OS Disk | 80GB | 80GB | 80GB |
| Data Disk (note 2) | N/A | N/A | 3 x 500GB |
Note 1
See MongoDB Documentation for recommended platforms.
Note 2
For data replication and disaster recovery data disks should be physically separate, i.e. not sharing a common virtualized disk.
# Two-Node Deployment
The two-node deployment offers an economical hardware footprint at the expense of database availability and Petro.ai performance. It is best suited for very small production or test environments with the following use cases:
- No real-time data ingestion
- Small sized datasets focusing on a few Petro.ai datatypes (e.g. Decline Curve Analysis only)
| Petro Manager + Worker | Petro Database 1, 2, 3 | |
|---|---|---|
| Platform | Windows Server 2016 or better | Windows Server 2016 or better (note 1) |
| CPU | ≥ 4 vCPUs | ≥ 8 vCPUs |
| RAM | ≥ 16GB | ≥ 32GB |
| OS Disk | 80GB | 80GB |
| Data Disk (note 2) | N/A | 3 x 256GB |
Note 1
See MongoDB Documentationfor recommended platforms.
Note 2
For data replication and disaster recovery data disks should be physically separate, i.e. not sharing a common virtualized disk.