Skip to main content
Version: development

Architecture

There are two main components of Aperture: the Aperture Controller and Aperture Agents.

Aperture Controller

The Aperture Controller is responsible for managing agents, evaluating and synchronizing declarative load management policies. These policies define service-level objectives, telemetry metrics, and make adjustments in response to metric deviations. The controller can be hosted in Aperture Cloud or self-hosted.

Aperture Agents

Agents serve as the workhorses of the platform, providing powerful flow control components. This includes a weighted fair queuing scheduler for workload prioritization and a distributed rate-limiter for abuse prevention.

These agents are deployed adjacent to services requiring load management and control traffic flows based on real-time adjustments from the Aperture Controller. They seamlessly integrate with service meshes, gateways, and HTTP middlewares. For more specific control, developers can use SDKs to manage specific features or code sections within services.

The Agents monitor service and infrastructure health signals using an in-built telemetry system. In addition, a programmable, high-fidelity flow classifier is used to label requests based on attributes such as customer tier or request type. These metrics are then analyzed by the Aperture Controller.

Aperture Agents schedule workloads based on their priorities, helping prioritize critical features over less important workloads during overload scenarios. For example, a video streaming service might prioritize a request to play a movie by a customer over a recommended movies API. A SaaS product might prioritize features used by paid users over those being used by free users.

Aperture Agents can be installed on various infrastructure (such as Kubernetes, VMs, or bare-metal) or Aperture Cloud can manage them for you. In addition to flow control capabilities, Agents work with auto-scaling APIs for platforms such as Kubernetes, to help scale infrastructure when needed.

The diagram below shows the core components of Aperture architecture for different modes of Controller and Agent installation and various integrations.

In this mode, Aperture Cloud hosts the Controller, while the Agents are self-hosted. This is ideal for those who prefer not to maintain their own Prometheus and etcd databases.

Aperture with Local Agents Aperture with Local Agents