Microscaling Engine
Go Makefile
Clone or download
Latest commit 55a2d7b Apr 23, 2018
Failed to load latest commit information.
Godeps Add aws-sdk-go dependency to godep for the SQS metric Jan 2, 2017
api Rename appsFromResponse to AppsFromData Apr 19, 2018
config Add env var config type. Apr 19, 2018
demand Add some more tests May 17, 2016
engine Comments to say what these packages do Jun 1, 2016
metric Fix tests Apr 19, 2018
monitor Plugins for “monitors” so that we can send regular updates to places … Jun 1, 2016
scheduler Fix tests Apr 19, 2018
target Only use I factor (in PID) once we’ve hit the target, to prevent mass… May 27, 2016
utils Get image from k8s deployment object so labels can be retrieved from … Jan 16, 2017
vendor Add aws-sdk-go dependency to godep for the SQS metric Jan 2, 2017
.gitignore 0.5.3 Apr 7, 2016
.travis.yml Use string for Go version in travis.yml Apr 19, 2018
CHANGELOG.md Bump version Jan 18, 2017
CONTRIBUTING.md Use godep to manage dependencies so we can run v1.5 of k8s.io/client-go Jan 2, 2017
Dockerfile Use Alpine 3.7 as base image Apr 19, 2018
LICENSE 0.6.0 Apr 18, 2016
Makefile Use godep to manage dependencies so we can run v1.5 of k8s.io/client-go Jan 2, 2017
README.md Better descriptions for the queue algorithms Jan 6, 2017
VERSION Bump version Apr 19, 2018
main.go Don't open a websocket connection when running locally. Apr 21, 2018
run.sh 0.5.3 Apr 7, 2016
settings.go Add env var config type. Apr 19, 2018
settings_test.go Add Kubernetes scheduler that scales pods by calling the deployments API Jan 2, 2017


Microscaling Engine

Our Microscaling Engine provides automation, resilience and efficiency for microservice architectures. You can use our Microscaling-in-a-Box site to experiment with microscaling. Or visit microscaling.com to find out more about our product and Microscaling Systems.

Docker Image


Build Status

Go 1.6 & 1.7

Microscaling Engine is under development, so we're not making any promises about forward compatibility, and we wouldn't advise running it on production machines yet. But if you're keen to get it into production we'd love to hear from you.


Microscaling Engine will integrate with all the popular container schedulers. Currently we support

  • Docker API
  • Marathon
  • Kubernetes

Support for more schedulers is coming soon. Let us know if there is a particular scheduler you wish us to support.


Currently we support scaling a queue to maintain a target length. Support for more metrics is coming soon.

2 queue scaling algorithms are available.

  • SimpleQueue - scales containers up or down by one according to whether the queue is too long or too short.
  • Queue - uses control theory to prevent oscillation.

Queue Types

  • SQS - blog post with more details coming soon.
  • NSQ - see this blog post for more details.
  • Azure storage queues - this blog post describes using the Azure queue as the metric while running microscaled tasks on DC/OS.

Support for more message queues is coming soon. Let us know if there is a particular queue you wish us to integrate with.


The easiest way to run Microscaling-in-a-box is to follow the instructions. The docker run command pulls the latest image of this code from Docker hub.

Running with label-based config

Get scaling parameters from your image metadata by configuring them with the following labels:

  • com.microscaling.is-scalable
  • com.microscaling.priority
  • com.microscaling.max-delta
  • com.microscaling.min-containers
  • com.microscaling.max-containers

Download the compose file and add the following environment variable to the environment settings for the microscaling image:


Building from source

If you want to build and run your own version locally:

  • Clone this repo
  • Build your own version of the Docker image DOCKER_IMAGE=<your-image> make build
  • Specify -it <your-image> instead of -it microscaling/microscaling:latest on docker run so that it picks up your version of the image


Microscaling Engine is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.


We'd love to get contributions from you! Please see CONTRIBUTING.md for more details.

Contact Us

We'd love to hear from you at hello@microscaling.com or on Twitter at @microscaling. And we welcome new issues or pull requests!