Quix serverless compute

Quix provides an easy way to run code in an elastic serverless compute environment. It automatically builds code in GIT into a docker image and deploys containers to Kubernetes. This otherwise very complicated procedure is done by a couple of clicks in the Quix web portal.

Architecture

serverless environment

Git integration

Source code for workspace projects (models, connectors and services) is hosted in GIT repositories. Developers can check out repositories and develop locally and collaborate using GIT protocol. Code is deployed to the Quix serverless environment using tags in GIT. Quix builds service will build selected GIT commit into a docker image.

Docker integration

Each code example generated using the Quix library is shipped with a Dockerfile that is designed to work in the Quix serverless compute environment powered by Kubernetes. You can alter this file if necessary. When you deploy a service with Quix, a code reference to GIT with a build request is sent to the build queue. The build service will build a docker image and save it in the docker registry. In the next step, this image is deployed to Kubernetes.

If there is any problem with the docker build process, you can check the build logs.
Hover over the deployment in the deployments page to download the docker image of the deployed service for local testing or custom deployment.

Kubernetes integration

Quix manages an elastic compute environment so you don’t need to worry about servers, nodes, memory, CPU, etc. Quix will make sure that your container is deployed to the right server in the cluster.

We provide the following integrations with Kubernetes:

  • Logs from container accessible in the portal or via portal API.

  • Environment variables allows passing variables into the docker image deployment. So code can be parameterized.

  • Replica number for horizontal scale.

  • CPU limit.

  • Memory limit.

  • Deployment type - Options of one-time job or continuously running service,

  • Ingress - Optional ingress mapped to port 80.

If a deployment reference is already built and deployed to a service, the build process is skipped and the docker image from the container registry is used instead.

DNS integration

The Quix serverless environment offers DNS routing for services on port 80. That means that any API or frontend can be hosted in Quix with no extra complexity. Load balancing is provided out of the box, just increase the replica count to provide resiliency to your deployed API or frontend.

A newly deployed service with DNS routing takes up to 10 minutes to propagate to all DNS servers in the network.