Hi, I'm building a product that attempts to make autoscaling web applications as easy and painless as possible, saving you money and freeing you to focus on building your product.
The product is called Scalar (
http://scalar.sh), and the elevator pitch is that I've found the automatic scaling of services on expensive providers such as Heroku and AWS to be an excellent place to save significant money off your hosting bill. However, while AWS provides build-in autoscaling, and Heroku has third-party plugins, there's no simple to use service that can integrate with multiple sources. For example, at my day job, we host workers on Heroku that process jobs off SQS, and we had to write a bit of code to get that to integrate with HireFire. Alternatively, most of the Heroku plugins or open-source gems that do this require you to write the integration code yourself, and host it somewhere, which just adds dev/ops overhead.
My goal with Scalar is to make a simple, easy-to-use and reliable tool that includes all the integrations you need, so you just fill in some tokens, add your apps, and forget about it. The way it works (currently with just Heroku & AWS SQS) is you just OAuth your Heroku Account, add your AWS keys, and it loads all of your Heroku apps & dynos and SQS queues. Then you match up the worker dynos with the queues they use, configure a few options to set the ratio between jobs and workers, and Scalar starts polling to get the current count. It starts out in "Dry-Run" mode, and provides a chart of the number of messages & a line showing what it would scale the workers to, allowing you to fine-tune the scaling parameters before enabling it. It also provides a variety of advanced options to set delays before scaling up or down, timeouts to keep it from constantly starting and stopping workers, and configurable non-linear scaling ratios, such as logarithmic and exponential.
We've been using it at my day job with just the few integrations we need, and it has proven to be reliable (small sample size, I know). I'm ready to open it up to more users as a private beta, but I need to know which integrations or features I should work on next to make it more widely available.
Thank you very much for your time. If you want to be emailed when beta is available, please leave your email (but its not required).