Skip to content

Getting Started

Welcome to Kedify!

Kedify helps you autoscale your cluster workloads, optimize performance, and reduce costs. This documentation introduces and describes the core concepts that make up Kedify’s service. This includes details about the Kedify agent and related configuration settings. The Kedify service is proudly powered by open source technologies including KEDA.

What is Kedify?

Kedify is a managed online service, powered by the KEDA open source project and Kubernetes’ built-in Horizontal Pod Autoscaler, that scales cluster resources up or down (including down to zero resources) based on pre-defined external events. This allows cluster workload administrators with the flexibility to reduce the cost and optimize the performance of any type of workload.

You can use Kedify to:
— Securely install KEDA with no CVEs in less than 90 seconds
— Manage KEDA across multiple clusters and types of workloads
— Monitor and visualize your workload autoscaling
— Get resource and configuration recommendations
— Dynamically autoscale policies based on the cron schedule

Getting Started

The Kedify service is made up of 3 separate but interrelated components which will be discussed in greater detail below:
Kedify Agent: a secure gRPC-based agent service that manages KEDA, provides telemetry and maintains security settings.
Kedify Custom Resource Definitions: YAML-based custom resource definitions that provide the foundation for how and when to scale deployments as well as defining event sources.
Kedify Dashboard: an intuitive user interface to monitor resources and autoscaling activities as well as managing KEDA installations across clusters.

Prerequisites for using Kedify:
— A Kubernetes cluster with the appropriate permissions (for local environments this can be a kind, k3d or minikube cluster.)
kubectl command installed and accessible

Kedify Agent

The Kedify Agent is responsible for establishing a secure connection between your Kubernetes cluster and the Kedify platform. It also handles the installation of KEDA on your clusters. It can manage a large number of installations across multiple clusters. The Kedify Agent uses secure gRPC connections to communicate with the Kedify Dashboard in order to provide and display telemetry data. The Kedify Agent relies on the Helm package manager to manage and install versioned KEDA images.

The Kedify Agent is installed and configured using a single, unique kubectl apply command generated and provided by Kedify via the dashboard.

Kedify Custom Resource Definitions

Kedify utilizes YAML-based custom resource definition (CRDs) for configuring ScaledJobs, ScaledObjects and other autoscaling parameters. These custom resources allow users to leverage all existing functionalities of KEDA as well as extend them according to their needs. Kedify and KEDA both use YAML-based customer resource definition to define and implement configuration changes.

Types of Definitions and Examples

At it’s core, Kedify and KEDA define and map event sources, with or without authentication as necessary, to cluster resources for scaling purposes. Depending on the type and source requirements, custom configuration definitions may include customer authentication references.

ScaledObjects

A ScaledObject configuration definition maps an event source target (see also Scalers) to a specific resource in order to define autoscaling behavior.

Example ScaledObject

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: kedify-sample-so
namespace: default
spec:
scaleTargetRef:
name: kedify-sample-app
pollingInterval: 10
cooldownPeriod: 5
minReplicaCount: 0
maxReplicaCount: 10
advanced:
horizontalPodAutoscalerConfig:
behavior:
scaleUp:
stabilizationWindowSeconds: 15
scaleDown:
stabilizationWindowSeconds: 15
triggers:
- type: metrics-api
metadata:
url: 'http://kedify-sample-minute-metrics.default.svc.cluster.local/api/v1/minutemetrics'
valueLocation: 'value'
targetValue: '1'
ScaledJobs

A ScaledJob configuration definition maps an event source target (see also Scalers) to a Kubernetes Job.

Example ScaledJob

apiVersion: keda.sh/v1alpha1
kind: ScaledJob
metadata:
name: compliance-log-processing-job
namespace: default
spec:
jobTargetRef:
template:
spec:
containers:
- name: log-compliance-processor
image: compliance-processor:latest
restartPolicy: Never
pollingInterval: 600 # Every 10 minutes
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 3
maxReplicaCount: 5
triggers:
- type: kafka
metadata:
bootstrapServers: kafka.svc:9092
consumerGroup: compliance-log-group
topic: compliance-log-topic
lagThreshold: '50'

Kedify Dashboard

The Kedify dashboard is an intuitive user interface that helps manage and maintain KEDA installations across clusters as well as provide telemetry visualizations like resource utlization. The dashboard securely gathers and displays cluster data from the Kedify Agent’s secure gRPC connections.

Kedify Dashboard