Deepfactor portal architecture #
Deepfactor portal consists of multiple microservices written mainly in Golang that are deployed in a K8s cluster. These microservices perform different tasks such as ingestion of telemetry & scan results, processing telemetry to raise alerts etc. Deepfactor portal uses ClickHouse, an OLAP DBMS for storing time series telemetry data and also for processing large volumes of telemetry data to derive insights for users. The portal also uses PostgreSQL, an OLTP DBMS for storing structured data such as user information. The following architecture diagram shows the high level architecture of the portal and its interactions with the user’s applications and the internet.
Deepfactor portal deployment options #
Deepfactor provides flexible deployment options for customers to install the portal/backend services depending on their infrastructure and capacity requirements. Deepfactor portal can be installed in one of the following environments.
- VMWare vSphere using OVA
This option is suited for users who have their own VMs managed using VMWare vSphere and intend to observe a limited number of applications (<150) with Deepfactor. In this deployment mode, Deepfactor microservices run within a single node K8s cluster deployed on the VM. Users can download Deepfactor portal OVA from my.deepfactor.io, verify the checksum and then install it using the instructions provided in the following document.
Deploying Deepfactor On VMware vSphere - AWS EC2 using Cloudformation template
This option is suited for users who prefer AWS cloud and intend to observe a limited number of applications (<150) with Deepfactor. Users can download the AWS Cloudfront template (CFT) from my.deepfactor.io. The CFT creates an EC2 machine, a volume along with some security groups. In this deployment mode, Deepfactor microservices run within a single node K8s cluster deployed on the VM. Users can install the portal using the instructions provided in the following document
Deploying Deepfactor On AWS Using CFT - Kubernetes cluster (self managed or managed cloud)
This option is suited for customers who prefer K8s deployments and/or want to observe a large number of applications with Deepfactor. Users can use helm to install the portal in their K8s cluster. The Deepfactor helm charts expose a number of override options which let users customize their Deepfactor portal deployment to suit their environment and processes. Users can install the portal using the instructions provided in the following document.
Install Deepfactor Portal Using HelmIn this mode of deployment, users can enable horizontal pod autoscaling to enable Deepfactor microservices auto-scale as the number of applications being observed increases/decreases. The following article describes how users who intend to observe large workloads with Deepfactor can customize their portal deployment.
Resource limits and hpa config for larger workloads
Deepfactor portal upgrades #
Deepfactor regularly rolls out updates to the portal software with additional functionality, fixes and improvements. For OVA and AMI based portal deployments, users can simply click on the Software Update button to download and install the latest stable version of Deepfactor portal services. For K8s based portal deployments, users can update the Deepfactor portal fairly easily by using the helm upgrade command as mentioned in the following article.
Updating your Deepfactor portal
#
Summary of Deepfactor portal deployment options #
The following table compares the above deployment options.
Deployment | Installation & Maintenance Effort | Size | Upgrades |
OVA | Low | Small (<50 applications) | Single button click |
AMI | Low | Small (<50 applications) | Single button click |
Kubernetes | Medium | Can auto-scale to observe large workloads | Helm upgrade command |