Hubot in AWS ECS
Hubot deployment in AWS using AWS ECS Fargate. This was prototyped out while I was evaluating ChatOps strategies that could be used to wrap existing web interfaces or require minimal overhead.
A build-harness created with
make is available for the repository. This harness simplifies the commands necessary to build and deploy the project. You can see the available targets by running
Usage: make <target> help This help text. Terraform ecr Deploy the ECR for the Hubot image ecs Deploy the Hubot ECS service destroy Destroys the terraform instructure Hubot launch Launches the hubot application in docker Docker docker Build the hubot image for deployment deploy Deploys the hubot image to ECR
Using docker, you can build and deploy the sample using the following steps:
make docker make ecr make deploy make ecs make launch
At the time I was building this I was trying to figure out a nice way to have a ChatOps style interface for a web service. The reason for ChatOps is that I was after something that would:
- Allow me to execute commands easily while on the go (e.g. slack + phone)
- Offer multiple operations for diagnostic and configuration
- Require minimal knowledge of how the system might work (e.g.
I do enjoy what Hubot offers but it did not exactly fit the target needs I was going for:
- I didn’t need the more advanced input format
- Slash commands were sufficient for the interface
- I didn’t wish to develop the app within the context of the Hubot application
- Additional infrastructure (ECS Service) was worrying, as I was aiming for high reliability