Skip to content

watsh-rajneesh/amigo-chatbot

Repository files navigation

Run Status Code Climate Test Coverage Issue Count Build Status Documentation Status

amigo-chatbot

A chatbot for cloud operations management.

Amigo Image Image clipart of Amigo is courtsey free image published on this site.

Read the workbook - Amigo Project Report

Features

  1. Chatbot service with adapters for:
    • Slack messenger (a slackbot),
    • a web UI,
    • Raspberry Pi Intelligent Agent (RIA) and
    • mobile app.
  2. Highly scalable, designed as set of dockerized microservices deployed in Docker Swarm mode cluster.
  3. Production deployment in AWS
  4. Can support operations management for various cloud providers. AWS is supported for now.
  5. Demo use case of cloud ops on AWS public cloud - enable user to use the chatbot service to perform devops in a
    collaborative environment of enterprise messenger - DevOps Functional Specification.

Amigo chatbot enables user to be able to type in any aws-cli command within Slack that user can execute in terminal.

When user receives an event from Amazon Cloud Watch that a node has high CPU usage (beyond a certain thresold) then this event can be seen within Slack messenger via the AWS Cloud Watch bot. But in order to remedy the situation user can add another node or scale out the node. To do any of this user will need to either use AWS console or AWS CLI from a terminal and leave the Slack messenger for that. That is where Amigo chatbot comes in. It enables user to execute any command that is supported by aws-cli from within slack. For some commands like show me my ec2 zones, the intent of the message is inferred from the message and the corresponding awscli command is executed (aws ec2 describe-availability-zones). But user can always type in the actual command instead and Amigo chatbot will execute that and show the result.

A demo video for the bot is availabe on youtube

We also participated in AWS Chatbot Hackathon