High-Level Architecture

Before diving into the architecture of the AutoQL engine we will establish some commonly-used terminology:

Microservices

A software architecture paradigm where software is broken into a collection of loosely-coupled services that have a discreet responsibility in the overall function of an application.

This approach allows for independent scaling of the service so that the overall efficiency of the system is improved.

Kubernetes and Containers

Containers and Kubernetes (K8S) allow for easier implementation of microservices. A requirement of microservices is to have lightweight independent components working in an orchestrated manner. A container houses all the necessary code and libraries without the requirement for its own operating system like a virtual machine would require.

📘

Kubernetes is an open-source container orchestration system for automating software deployment. scaling, and management.

We can draw an analogy between microservices, containers and Kubernetes to the postal service. If a package is a microservice, the mail truck is a container, and Kubernetes is the post office managing what packages to go on what trucks, and when to hire more drivers.

Most cloud vendors have a Kubernetes service so clusters can be implemented quickly and easily.

Cloud Agnostic

📘

AutoQL engine is completely containerized and uses no cloud-specific services.

Typically, clients will deploy the AutoQL containers into a cloud-managed Kubernetes cluster but it can also be deployed onto a client-managed Kubernetes cluster running on bare metal.

Service Account/ Identity and Management (IAM)

A service account allows an application to access data or an API on someone's behalf. Service accounts have roles and access restrictions. Service accounts and IAM are how AutoQL accesses trained models for an organization.

Enterprise Portal

The Enterprise Portal is where clients administer their AutoQL deployment.

Clients can add and upgrade their projects, see what users are asking, and manage details of how the service is running.

Client Portal

The Client Portal is where clients manage billing information, download credentials, and raise tickets to be actioned by the Chata team.

Deployable

The AutoQL engine can be fully-deployed into client (customer) environments. Portability is achieved by deploying on top of Kubernetes. As a result, query processing and client data stay inside the client network.

Deployment will generally be done by a cloud administrator or a devops team.