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.
This project is no longer being developed. As an alternative we recommend you take a look at Keda.
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.
- 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.
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:
MSS_CONFIG=LABEL
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
ondocker 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.
We'd love to hear from you at hello@microscaling.com or on Twitter at @microscaling. And we welcome new issues or pull 683E requests!