Giter Club home page Giter Club logo

aperture's Introduction

FluxNinja Aperture
Documentation Reference Slack Community Build Status Go Report Card Codecov Status Godoc Reference

๐Ÿฅท FluxNinja Aperture

Aperture is an observability-driven load management platform designed for classifying, scheduling, and rate-limiting API traffic in cloud applications. Built upon a foundation of observability and a global control plane, it offers a comprehensive suite of load management capabilities that enhance the reliability and performance of cloud applications while also optimizing resource utilization.

Aperture seamlessly integrates with existing control points such as gateways, service meshes, and application middlewares. Moreover, it offers SDKs for developers to establish control points around specific features or code sections inside applications

โš™๏ธ Features

Aperture provides a variety of advanced load management features:

  • Adaptive service protection: Enhance resource utilization and safeguard against abrupt service overloads with an intelligent queue at the entry point of services. This queue dynamically adjusts the rate of requests based on live service health, thereby mitigating potential service disruptions and ensuring optimal performance under all load conditions.
  • Global quota management: Maintain compliance with external API quotas with a global token bucket and smart request queuing. This feature regulates requests aimed at external services, ensuring that the usage remains within prescribed rate limits and avoids penalties or additional costs.
  • Workload prioritization: Safeguard crucial user experience pathways and ensure prioritized access to external APIs even during high-load conditions by strategically prioritizing workloads. This is achieved through the use of declarative policies that label and prioritize workload requests, such as API calls. By employing weighted fair queuing for scheduling, Aperture ensures a fair distribution of resources that aligns with the business value and urgency of requests.
  • Load-based auto-scaling: Eliminate the need for costly over-provisioning and enhance efficiency with Aperture's load-based auto-scaling. Aperture's policies are expressed as circuit graphs that continuously track deviations from service-level objectives and calculate recovery or escalation actions. Auto-scaling can be implemented as an escalation that triggers based on load throttling signal.
  • Distributed rate-limiting: Safeguard APIs from potential abuse with Aperture's high-performance, distributed rate limiter. This feature enforces per-key limits based on fine-grained labels, ensuring precise control and prevention of excessive usage.
  • Automated load ramping: Ensure a safe and gradual increment of load to new features or API endpoints. Aperture continuously monitors for potential performance issues, offering an automatic response mechanism to dial back load in case of a performance regression. This proactive approach minimizes service disruptions and maintains consistent performance, even when rolling out new features.

๐Ÿ—๏ธ Architecture

Aperture Architecture Overview

  • ๐Ÿšฆ Aperture Agents are typically deployed next to the services and provide high-performance load management capabilities. They are responsible for scheduling and rate-limiting incoming requests based on the policies defined in the Aperture Controller. In addition, they also collect service health and flow metrics.

  • ๐Ÿค– Aperture Controller executes observability-driven control policies and configures Aperture Agents. The control policies are expressed as circuit graphs consisting of interconnected signal processing blocks. The Aperture policies provide a programmable way to tailor sophisticated control policies to match any application's needs.

๐Ÿ Getting Started

๐ŸŽฎ Playground

To try Aperture in a local Kubernetes environment, refer to Playground docs.

Service Protection Policy Dashboard

๐ŸŽ๏ธ Installation

To install the Aperture system, please follow the Installation guide.

๐Ÿ“– Use Cases

Learn about various use cases of Aperture in the Use Cases section.

๐ŸŽฅ Videos

๐Ÿ‘ท Contributing

Reporting bugs helps us improve Aperture to be more reliable and user-friendly. Please make sure to include all the required information to reproduce and understand the bug you are reporting. Follow helper questions in the bug report template to make it easier. If you see a way to improve Aperture, use the feature request template to create an issue.

To contribute code, please read the Contribution guide.

aperture's People

Contributors

chiukapoor avatar code-shreyas avatar dariakunoichi avatar dependabot[bot] avatar fossabot avatar github-actions[bot] avatar harjotgill avatar hasit avatar hdkshingala avatar imgbot[bot] avatar iridiumoxide avatar jaidesai-fn avatar jmichalak-fluxninja avatar karansohi avatar kklimonda-fn avatar krdln avatar kwapik avatar ninjacharu avatar sbienkow-ninja avatar seunghyupoh3517 avatar slayer321 avatar sudhanshu456 avatar tanveergill avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.