My (Amogh's) dad shared a short anecdote with me about how their team's infrastructure architect was stuck in his hometown due to the current pandemic situation, and that he had no access to a laptop/desktop, only his corporate mobile phone. Due to this, they faced several issues with deploying hardware over a phone call, instead of him being on-site. This inspired me to come up with this idea, which went through many refinements and improvements as I discussed the finer details with Pragati.
What it does
In a sentence, it talks to the user and deploys cloud infrastructure according to their responses. The conversation happens naturally, with the bot asking them a bunch of questions, and is tolerant of typos and grammatical errors.
How we built it
We built it by integrating DialogFlow with the Zulip API. The user talks to a Zulip bot, which forwards the requests to dialogflow and sends the responses from dialogflow back to the user. The reason we chose zulip is because it's a free and open source alternative to Slack, and provides much of the same functionality. After gathering all information about the deployment, the bot invokes Terraform to do the actual deployment, using the details it already gathered from the user. The reason we chose Terraform is because it supports over 100 cloud providers, including AWS, GCP, Azure, DigitalOcean, etc.
Challenges we ran into
Creating custom entities like memory size, Availability Zones for cloud resources, Operating Systems etc was a rather tedious job.
Accomplishments that we're proud of
As far as we know, this is the first time someone has actually done something like this. We're really happy and proud that we're the first ones to think of something like this, and hope that it'll help people out in the long term.
What we learned
Infrastructure as Code is the future of requisitioning cloud resources, and that DialogFlow is not as easy as it might look at first glance :')
What's next for GlobeSpinner
Add more providers, polish the NLP a bit more, perhaps add the ability to monitor cloud resources from the bot itself.