Huggies is a side project that I started when working for the NAPI team which pronounced as [‘næpɪ], and that is why I named it as Huggies 😉
The team’s environments are mostly on AWS Elastic Beanstalk. In general, Elastic Beanstalk is a good tool as it abstracts the complexicity of managing Elastic Load Balancer, Autoscaling group, Route 53 etc. It allows developers to focus on the codes, instead of worrying much about the running environments. But there were still a few pain points that I observed the team was sufferring:
- Hard to start or stop environments
- Hard to manage the environments scheduled scaling
- Elastic Beanstalk does not support spot instance
Huggies is built on Hubot framework, it is a plug and play tool which solves the above the pain points. Watch the demo if you are interested to know more about Huggies.
The current version has following features:
- Support both Slack and RESTful API
- Role based user management
- Start/stop single Elastic Beanstalk environment
- Start/stop multiple Elastic Beanstalk environments
- Show Elastic Beanstalk environment details
- Use spot instances for Elastic Beanstalk environments
- Report activities in Slack channel
- Monitor spot instance request status, and automatically adjust bid price
- Custom scale up/down schedule
- Support multiple AWS accounts and regions
- Check the monthly/weekly/daily/hourly AWS cost (via CloudHealth)
- Find out the oncall stuff (via OpsGenie)
Hey Jackie, great tool! I’m not clear on exactly what happens if Huggies detects that the spot price exceeds my bid… will it switch back to using on-demand, increase my bid, or let the spot instances be terminated?
Hi Justin, you can set it to what you need. For me, I just simply ask Huggies to add $0.0001 on top of the lowest bid price that AWS returns to it. This the line of the code: https://github.com/jc1518/Huggies/blob/master/lib/bid_monitor.js#L113, or you can ask Huggies to set it back to on-demand.
How do I launch the REST API server (non-Slack)?
Then just hubot without the Slack adapter – ‘./bin/hubot’