sokar

command module
v0.0.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2019 License: LGPL-3.0 Imports: 24 Imported by: 0

README

Sokar

CircleCI Go Report Card Maintainability Coverage Status Codacy Badge FOSSA Status

Overview

Purpose

Sokar is a generic alert based auto-scaler for cloud systems.

If you are running your microservices on a container orchestration system like Nomad or kubernetes, then you are probably also need to scale them based on the load varying over time. The same situation applies if your system runs directly on AWS EC2 instances and thus they have to be scaled out with increased and scaled in with a reduction of the load. Usually the decision to scale is made based on metrics like current CPU/ RAM utilization or requests per second. But often you might want to use custom metrics like the length of a job-queue, the number of processed images per second or even a combination of those.

Here comes sokar into play. Sokar is a generic auto-scaler that makes scale up/ down decisions based on scale alerts. He constantly evaluates the incoming scaling alerts, aggregates them and then scales the desired ScaleObject (i.e. microservice or an EC2 instance). Even if multiple metrics shall be taken into account for scaling the ScaleObject, those metrics just have to be expressed as scaling alerts and sokar will use them accordingly for scaling.

doc/overview_coarse.png

Benefit
  1. Possibility to combine multiple metrics to be taken into account for the scaling decisions. The impact of those metrics, expressed as scale alerts, can be easily adjusted by configuring suitable weights.
  2. Use the connectors to scale the actual ScaleObject. No need to implement the communication with the Container Orchestration System in this regard. The supported connectors can be found here.
  3. Configurable and ready to use capacity planning, providing separate cool downs for up and down scaling. Further more it is possible to select the planning mode which fits best for your workload.
State

At the moment sokar is able to scale Nomad jobs and AWS EC2 instances. For details about the changes see the changelog.

Build and Run

  • TODO: Fill this

Features

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
aws
Package mock_main is a generated GoMock package.
Package mock_main is a generated GoMock package.
aws
Package mock_aws is a generated GoMock package.
Package mock_aws is a generated GoMock package.
capacityplanner
Package mock_capacityplanner is a generated GoMock package.
Package mock_capacityplanner is a generated GoMock package.
logging
Package mock_logging is a generated GoMock package.
Package mock_logging is a generated GoMock package.
metrics
Package mock_metrics is a generated GoMock package.
Package mock_metrics is a generated GoMock package.
nomad
Package mock_nomad is a generated GoMock package.
Package mock_nomad is a generated GoMock package.
nomadWorker
Package mock_nomadWorker is a generated GoMock package.
Package mock_nomadWorker is a generated GoMock package.
scaler
Package mock_scaler is a generated GoMock package.
Package mock_scaler is a generated GoMock package.
sokar
Package mock_sokar is a generated GoMock package.
Package mock_sokar is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL