Addteq has done it again. By using Docker, Addteq, Atlassian and Amazon products, Addteq team members were able to connect an Amazon Echo to an active JIRA instance to query for Issue information. Then, the team connected the Echo to their Docker clusters with four Docker instances running on Codefactori to increase / decrease the size of the cluster. Codefactori is Addteq's very own platform as a service for Atlassian tools. By doing this, Addteq was able to achieve Codefactori automation.
Amazon Echo is a hands-free speaker you control with your voice. Echo connects to the Alexa Voice Service to play music, provide information, news, sports or any custom user defined functionalities. Alexa provides a set of built-in capabilities, referred to as "skills". For example, Alexa’s abilities include playing music from multiple providers, answering questions, providing weather forecasts, and querying Wikipedia.The Alexa Skills Kit allows you to teach Alexa "new skills". We wrote custom skills that will query the JIRA server using the REST API for information regarding a particular issue. The response is formatted so that Alexa can read the information to the user.
User says Alexa to wake up the Echo. Then calls Asks Codefactori to invoke our custom skill and mentions the JIRA issue to query for status, summary, comments, etc.
The functionality is not limited to only query for the JIRA issue. We can also extend it to create, transition and assign issues. We are planning to make Echo part of our daily standup meetings to make our calls even more effective!
We also wanted to experiment with the integration between Echo and Codefactori to automate the creation, monitoring and destruction of nodes within a cluster. We created a Docker cluster, which can have a maximum of 4 nodes and a minimum of 1 node. The idea was to make the cluster elastic so that it can operate based on the load the server receives. When the node drops/fails, the monitoring system automatically creates a JIRA issue for support with the priority based on the number of nodes affected. We created a skill for Alexa that can query a python based REST endpoint, to get the status, add, remove and count of nodes.
The interaction is similar to the interaction with JIRA:
Whatever Alexa responds back with, the JIRA issue associated with affected nodes will count the number of nodes, list the docker container id when you add a node, etc.
Now the fun begins, simply ask Alexa the command in which you want to perform, using a set of preset commands. For example, by using the command associated with "Add node to Docker Cluster", Alexa will go ahead and add the node. With another command, she can also drop a node.