Skip to main content

Where to deploy

Requirements

The primary deployment requirement of a Reboot application is a persistent filesystem for Reboot to store its state (using RocksDB under the covers).

Outside of Reboot Cloud or Reboot Enterprise, replication of the persistent filesystem is a developer's responsibility, and is accomplished at or below the filesystem. RocksDB uses file locking to ensure that only one process is attached to any given database.

See the comparison below to get a sense of your options.

Comparison

Kubernetes (EBS or equivalent)Kubernetes (EFS or equivalent)Reboot CloudReboot Enterprise
Physical backupsyesyesyesyes
Replicationwithin an availability zonewithin a regionwithin a regionwithin a region
High availability (failover time)~minutes~seconds~seconds~seconds
Vertical scalingyesyesyesyes
Horizontal scalingnonoyesyes
Availabilityavailable nowavailable nowJoin the waitlist!Contact Reboot!

Details

Reboot Cloud

To deploy your Reboot app to production, you can use the Reboot Cloud. The Reboot Cloud uses Reboot's safety guarantees to automatically partition and deploy your application across a cluster of machines, providing automatic scaling and high availability!

$ rbt cloud up --image-name=...
...
Application starting; your application will be available at:

${unique-id}.prod1.rbt.cloud:9991

Join the waitlist today, and give us your feedback on the shape of the Reboot Cloud!

Reboot Enterprise

For users with more stringent compliance requirements, the Reboot Cloud can also be deployed on your enterprise's Kubernetes cluster, allowing all of the same benefits of the Reboot Cloud, on your own hardware.

Contact Reboot for more information!

Kubernetes

The recommended deployment model for rbt serve on Kubernetes is to store Reboot's state in either:

  • A replicated block device (Amazon EBS, or equivalent) - Able to be mounted by one machine at a time.
  • An NFSv4 filesystem (Amazon EFS, or equivalent) - Able to be mounted by more than one machine at a time, with support for file locking.

As shown in the comparison, these types of persistent storage have different failover times and replication properties, due to how they are mounted. EFS may be mounted by multiple machines at a time, and so failover is limited only by Kubernetes' failover time -- whereas EBS may only be mounted by one machine at a time, and so failover additionally requires waiting for EBS to release the volume for a new machine to acquire.

Helm chart

Reboot can be deployed using rbt serve atop Kubernetes using a Helm chart.

Start by adding the reboot-dev Helm charts repository:

helm repo add reboot-dev https://reboot-dev.github.io/helm-charts
helm repo update

And then deploy Reboot using your configured values:

helm install my-release reboot-dev/reboot -f my-values.yaml