Quine Enterprise Helm Chart Quickstart
Full Helm chart available at: https://github.com/thatdot/helm-charts/tree/main/charts/quine-enterprise
Prerequisites
Kubernetes
A Kubernetes cluster is required to install Quine Enterprise with Helm.
Helm
Helm must be installed to use the charts. Please refer to Helm’s documentation to get started.
Once Helm has been set up correctly, add the repo as follows:
helm repo add thatdot https://helm.thatdot.com
If you have previously added this repo, run helm repo update
to retrieve the latest versions of the packages. You can then run helm search repo thatdot
to see the charts.
Cassandra Compatible Database
Apache Cassandra or a Cassandra-compatible database such as ScyllaDB is required to use Quine Enterprise.
The database used with Quine Enterprise may be installed in the same Kubernetes cluster as quine, but this is not required. However, it is recommended that it be physically located as close to the Quine Enterprise installation as possible to reduce network latency, such as ensuring they are both located in the same AWS region or availability zone.
There are a variety of ways to install Apache Cassandra or ScyllaDB into Kubernetes. Both databases have published Helm charts to make installation and administration easier.
See helm-charts/extras/persistor
for an example to quickly bootstrap a thatDot environment with an Apache Cassandra cluster.
Apache Cassandra Helm chart: https://artifacthub.io/packages/helm/bitnami/cassandra
ScyllaDB Helm chart: https://operator.docs.scylladb.com/stable/installation/helm.html
License
Quine Enterprise is proprietary software and a license is required to use it.
A free trial evaluation license is available from thatdot.com. When using this helm chart with a trial license, Values.trial.enabled
must be set to true and the Values.trial.email
and Values.trial.apiKey
fields must be set. The API key will be provided via email after registering for a trial license.
To schedule a demo or purchase a full license, please reach out at https://www.thatdot.com/request-a-demo/, email sales@thatdot.com, or contact thatDot directly.
Installation
Helm Values
First create a values file called quine-enterprise-values.yaml
with required helm configuration values (see values.yaml for a reference of available configuration and defaults):
# 3 Quine Enterprise hosts is a good minimum size for a cluster. Feel free to use more, up to the amount of available CPU and memory in your cluster.
hostCount: 3
# For simple installations, ClusterIP is a good choice. LoadBalancer can also be used to create an externally available endpoint for your cluster.
service:
type: ClusterIP
# Settings for using Cassandra cluster as the persistor. REQUIRED.
cassandra:
enabled: true
endpoints: "<CASSANDRA_ADDRESS_1>,<CASSANDRA_ADDRESS_2>"
plaintextAuth:
enabled: true
username: <CASSANDRA_USERNAME>
password: <CASSANDRA_PASSWORD>
shouldCreateKeyspace: true
shouldCreateTables: true
# Evaluation resource settings, should increase to 3-32cpu and at least 15Gi memory for production
resources:
requests:
cpu: 2
memory: 7Gi
limits:
cpu: 4
memory: 7Gi
If a trial license is being used, be sure to include a section with the trial license credentials.
trial:
enabled: true
email: "<EMAIL_USED_TO_REGISTER>"
apiKey: "<API_KEY_RECEIVED_IN_EMAIL>"
If you are not using a trial license, be sure to set the trial to disabled. And you will be required to specify an alternative docker image and tag pointing to a hosted version of the software you have been provided (see below).
trial:
enabled: false
(Optional) specify a docker image and tag. This is required if you are not using the trial license.
# Override image repository and tag to change the docker image used to run thatDot Quine Enterprise
image:
repository: public.ecr.aws/thatdot/streaming-graph-trial
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
Install the cluster with Helm using the command (Don’t forget to first helm repo add the thatdot Helm repo in the prerequisites section):
helm install --values=quine-enterprise-values.yaml \
my-quine-enterprise thatdot/quine-enterprise
Uninstall the cluster:
helm uninstall my-quine-enterprise
Cluster Scaling
In order to change the number of active cluster members of a Quine Enterprise, it must be scaled down to zero hosts and then back up. This is because Quine uses a static sharding scheme to determine which nodes each member will manage. However, all persisted data and standing queries can remain between different sized clusters, so it is possible to effectively pause a workload, scale up or down, and then resume the workload.
Delete all ingests before starting to scale down. Use the delete ingest API endpoint.
Quine ingests are defined per-member, so it is important to consider the topology of which member is ingesting from which stream. Deleting and recreating ingests is preferable when each host should be ingesting from a partitioned Kafka cluster or similar source.
Use Helm to scale the cluster down to 0 active hosts:
helm upgrade --wait --reuse-values \
--set hostCount=0 \
my-quine-enterprise
Once the operation has completed, update the quine-enterprise-values.yaml
file with the desired cluster size and use Helm to deploy the changes:
helm upgrade --wait --values=quine-enterprise-values.yaml \
my-quine-enterprise
Re-create all required ingests. Use the create ingest API endpoint.
Upgrade/Downgrade Version
If upgrading from or downgrading to a version of Quine Enterprise prior to 1.8.3, the entire cluster must be scaled up and down in a similar procedure to the Cluster Scaling section:
helm upgrade --wait --reuse-values \
--set hostCount=0 \
my-quine-enterprise
If you are upgrading or downgrading between versions 1.8.3 or newer, you can simply run helm upgrade
as below without scaling the cluster down to 0 members. Note that all work will be saved, but ingests, standing query outputs, and ad-hoc queries will be paused during the transition period.
Update the quine-enterprise-values.yaml
file with the desired Quine Enterprise docker image (example: downgrading to trial version 1.8.3):
# Override image repository and tag to change the docker image used to run thatDot Quine Enterprise
image:
repository: public.ecr.aws/thatdot/streaming-graph-trial
# Overrides the image tag whose default is the chart appVersion.
tag: "1.8.3"
If you do not want to specify the version explicitly, and a new version is available, you can simply run helm repo update
to get the latest versions of all helm charts.
Then deploy the update with Helm:
helm upgrade --wait --values=quine-enterprise-values.yaml \
my-quine-enterprise
You may also specify a chart version explicitly with Helm:
helm upgrade --wait --values=quine-enterprise-values.yaml \
--version 0.2.0
my-quine-enterprise
It is important to always use the latest helm chart version available for the particular appVersion
of Quine Enterprise you want to deploy.
Metrics and Monitoring
Quine Enterprise exposes a large number of JVM and application metrics via the Dropwizard Metrics Library.
The recommended monitoring stack consists of influxDBv1 to record metrics and grafana to graph and visualize them.
See helm-charts/extras/monitoring-stack
for an example to quickly bootstrap a thatDot environment with an InfluxDb and a Grafana instance.
# Metrics Configuration:
metrics:
influx:
enabled: true
database: metrics
scheme: http
# Set "host" and "port" to the reachable address of the influx server
host: "<INFLUXDB_HOST_ADDRESS>"
port: 8086