Prerequisites#

This section details the requirements for deploying and running Neptune on your own infrastructure.

Neptune's system requirements#

This section is about the requirements of Neptune itself. For requirements specific to the Neptune installer, see the Neptune installer requirements section.

Platform requirements#

Neptune runs on Kubernetes. If you don't have a Kubernetes cluster, the Neptune installer can set up a single-node cluster.

Required version Processing Memory
Kubernetes 1.19+ or above 4 vCPUs 16 GB RAM

Note

The hardware requirements depend on how users interact with Neptune.

Neptune's dependencies#

All of the listed dependencies are delivered as part of the installation process.

Service Requirements Recommended storage
MySQL version 5.7.14+ or 8.0.13+ 100 GB
Elasticsearch version 7.10+ 100 GB
Kafka version 2.8 10 GB
Object storage S3-compatible or POSIX-compliant 100 GB (see note below)

Note on storage

The storage needs depend heavily on how much data users actually upload.

• If the metadata that is uploaded is simple and doesn't include many files, even 10 GB is plenty.
• However, if the uploaded data possibly includes many large files, you should reserve as much as 1 TB of storage space.

You can also use extensible storage, for example, AWS EBS volume.

For details, see Object storage.

You can use the services delivered with Neptune, although in some cases, it makes sense to use your own. In cloud deployments, for example, you can (and usually should) use a managed database.

If you choose to go with the services delivered with Neptune, you need to provide persistent storage for them to store users' data.

If you choose to use the services delivered with Neptune when deploying Neptune to an existing Kubernetes cluster, the cluster needs to be able to provision storage.

Managed Kubernetes services (such as Amazon EKS, Google GKE, and Azure AKS) usually have this capability out of the box.

When you configure the Neptune installer to deploy a single-node Kubernetes cluster, it needs an unformatted disk attached to the VM where the installation takes place. This disk is where the MySQL and other services will store their data.

For the simplest deployments, in which all of Neptune and its data live on a single VM, the recommended minimum is 100 GB of available disk space. If users are going to upload lots of files, however, you may wish to increase this.

Object storage#

Object storage is where Neptune stores the bulk of users' data. Here, Neptune supports two types of storage:

• S3-compatible object storage
• POSIX-compliant filesystem

Below is a high-level overview of the tradeoffs:

S3-compatible object storage POSIX-compliant file system
Extendability (adding more storage) Usually easily extendable Often difficult to extend
Scalability Allows Neptune services to scale horizontally Required to be ReadWriteMany to enable Neptune services to scale horizontally
Complexity For non-cloud installations, requires using a separate service, like MinIO Usually easy to provision

Neptune installer requirements#

The host where the installer is executed must meet the following prerequisites:

Requirement Version Notes
Ubuntu 18.04 or 20.04 -
kubectl - Only required when deploying Neptune to an existing Kubernetes cluster. kubectl needs to be added to the PATH environment variable.
Ansible 2.8.0+ See below for installation instructions.
yq 2.10.1 Install with: pip install yq==2.10.1
jq - Install with: apt-get install jq
sudo apt-add-repository --yes ppa:ansible/ansible