This is a quickstart guide for Feast administrators setting up a Feast deployment for the first time.
Feast is meant to run on Kubernetes, and currently requires managed services from GCP for certain operations
- Dataflow (for loading feature data into Feast)
- BigQuery (to act as feature warehouse)
- Pub/Sub (for event data)
- Cloud Storage (for staging data and logs)
This guide will assume that users are using GKE (Google Container Engine), and that these managed services are available. In addition, Redis will be used for the feature serving database.
- Kubernetes cluster
- The user should have a GKE cluster provisioned, with
kubectlset up to access this cluster - This cluster should have the right scopes to start jobs on
Dataflow and to modify BigQuery datasets and tables. The simplest
way to set this up is by setting the scope to
cloud-platformwhen provisioning the Kubernetes cluster.
- The user should have a GKE cluster provisioned, with
- Helm
- Helm should be installed locally and Tiller should be installed within this cluster. As noted here, make sure you have the cluster-admin role attached to the Helm service account.
- Feast repository
- You have cloned the Feast repository and your command line is active in the root of the repository
Set the following environmental variables before beginning the installation
GCP_PROJECT=my-feast-project
FEAST_CLUSTER=feast
FEAST_REPO=$(pwd)
FEAST_VERSION=0.1.0
FEAST_STORAGE_BUCKET=gs://${GCP_PROJECT}-feastEnsure that your kubectl context is set to the correct cluster
gcloud container clusters get-credentials "${FEAST_CLUSTER}" --project "${GCP_PROJECT}"Create a storage bucket for Feast to stage data
gsutil mb "${FEAST_STORAGE_BUCKET}"Create a copy of the Helm values.yaml file. This file will need to
be configured with the specifics of your environment.
cp charts/feast/values.yaml .Keys that likely need to be changed based on the user’s environment are
core.projectId- your GCP projectcore.image.tag- the current Feast versionserving.image.tag- the current Feast versioncore.jobs.*DataflowRunnerorDirectRunnerorFlinkRunnersettings for Beam- Note:
DirectRunnershould not be used in production it is for testing only.
See the documentation page for the complete list of options.
You can update values.yaml directly, or specify overrides on the Helm command line:
helm install --name feast charts/dist/feast-${FEAST_VERSION}.tgz \
--set core.projectId=${GCP_PROJECT} \
--set core.image.tag=${FEAST_VERSION} \
--set serving.image.tag=${FEAST_VERSION}