Tweek is a distributed multi container app, being develop with container platform and tooling in mind, the easiest way to run Tweek is on a container orchestration platform. (Kubernetes, Swarm)
Tweek is dependent on two durable storage services:
- Git storage (can be any git server/service), used for storing JPAD/Polices/etc files
- Context Storage (can be Redis/Couchbase/MongoDB)
When deploy Tweek to a new environment it’s worth checking how to consume these storage services (self hosted, or managed by Cloud/3rd party).
The context storage backend is relevant for global HA scenarios as every Tweek “values” request can potential query this storage.
You can find recipes and examples on how to install Tweek in production on: https://github.com/soluto/tweek-deploy
Deploying on Public cloud
Tweek has a Pulumi (https://pulumi.io/) scripts for create a Kuberentes cluster with Tweek based on the cloud provider managed Kubernetes
The benefit of using this approach is that the control plane for Kubernetes can be free or cheap when using the managed solutions. Additonally, all services can run easily on a single instance and it easy to scale Tweek to several machines if necessary
Deploying to Existing Kubernetes cluster
Tweek has an helm chart for installing on existing k8s cluster: https://github.com/Soluto/tweek-deploy/tree/master/helm/tweek
Tweek helm chart uses k8s persistent volumes, but it might be desired to use external storage for durability/availability.