Skip to main content
Version: 2.16.0

Architecture of Self-Hosted Aperture

The architecture of the self-hosted Aperture solution differs slightly from the regular Aperture Cloud + Aperture combination. The main difference is that the Aperture Controller is deployed separately. The Aperture Controller also needs its supporting databases.

Aperture uses two databases to store configuration, telemetry, and flow control information: Prometheus and etcd. Prometheus enables Aperture to monitor the system and detect deviations from the service-level objectives (SLOs) defined in the declarative policies. Aperture Controller uses etcd (distributed key-value store) to persist the declarative policies that define the control circuits and their components, as well as the adjustments synchronized between the Controller and Agents.

Existing etcd and scalable Prometheus installations can be reused to integrate into existing monitoring infrastructure.

flowchart TD blueprints[/"Blueprints"/] policies[/"Policies"/] subgraph controller["Aperture Controller"] circuit["Control Circuit"] end subgraph databases["Aperture Databases"] prometheus[("Prometheus")] etcd[("etcd")] end subgraph discoverydb["Discovery Databases"] k8sdiscovery["Kubernetes"] consul["Consul"] end subgraph orchestrators["Orchestrators"] k8s["Kubernetes"] end subgraph worker["Worker Node (Kubernetes/VM/Bare-metal)"] subgraph agent["Aperture Agent"] discovery["Discovery"] telemetry["Telemetry Collector"] flowcontrol["Flow Controller"] autoscaler["Auto Scaler"] end subgraph serviceinstance["Service Instance"] servicelogic["Service Logic"] servicemesh["Service Mesh"] end subgraph gateways["Gateways"] Kong["Kong"] Nginx["Nginx"] end end blueprints --> |aperturectl| policies policies --> |Kubernetes Custom Resource| controller controller<--> |Configuration/Telemetry/Flow Control| databases databases<-->|Configuration/Telemetry/Flow Control|agent agent <--->|SDK: Telemetry/Flow Control| servicelogic agent <--->|Telemetry/Flow Control| servicemesh agent <--->|Telemetry/Flow Control| gateways orchestrators <-->|Auto Scale| agent discoverydb <-->|Discovery| agent

The roles of Aperture Agent and Aperture Controller are described on the Architecture page.