While working in the industry for long, I experienced lot of problems setting up my cloud infrastructure. It was time consuming, was difficult to track resources across multiple providers, and most importantly I had to put manual efforts for all those mundane tasks of spinning up virtual machines for development use, destroying them. This gave me the idea to come up with AutoBot.
What it does
AutoBot provides a command based interface for providing common development setup tasks like creating virtual machines, setting up development workspaces, maintaining the provisioned VMs which includes updating the libraries or editing the VM configuration. With the help of AutoBot, developers can focus and spend their valuable time on more value generating work rather than spending time on configuring the work environment.
How I built it
I used api.ai to train the bot so that it can understand user intent and users can have a more human-like conversation. For the core bot platform, I used Zoho Cliq platform and wrote message handlers to handle all the commands user might issue. Once a developer issues a command to create virtual machine, bot will invoke digital ocean api to spin up a droplet (virtual machine), and will return back the public IP of the newly created VM. Reservations details will get stored in the database, and I have used Firebase for storing data in key value pairs. Developers can later on see all the reservations they have made, and perform actions like delete or update configurations for a specific virtual machine.
Challenges I ran into
Mostly, I faced the issues with integration of all third party services (api.ai, digital ocean, firebase) with the core bot platform. It took some time to understand the cliq and creator platform provided by Zoho, but once understood, it worked like a charm.
Accomplishments that I'm proud of
Created a working prototype of a text based bot which can spin virtual machines and manage them for developers, thus saving the previous time.
What I learned
Zoho platform cliq and creator were very interesting to dive into. I learned a new way to go towards chat based bots.
What's next for AutoBots
I am planning to add additional functionalities to AutoBot, for example adding more service providers apart from Digital Ocean and AWS. In addition, I am also planning to have an OTP based system for confirming some critical tasks like deleting a virtual machine. One more functionality which I have planned is to let AutoBot create machine image for a developer, which they can download and import in their local virtual machine manager like VirtualBox.
One last feature, which AutoBot will have is to provide features to add flavors on top of virtual machine, like adding jenkins or eclipse setup on top of the machine user has requested.