Craig Chan

Speak, And Alexa Automates

Blog Post created by Craig Chan Employee on Sep 27, 2017

Did you see it?  Did you stop by the Automation Director booth last week at Hitachi Next 2017 and ask Alexa to provision you some storage? If you did, I hope you enjoyed the show!


For those of you not able to attend, let me tell you what happened.  I’ve been working on a project to bring voice control to day-to-day provisioning as a demonstration of how powerful and open our APIs are.  This was inspired by some internal hack-a-thons we’ve been having to brainstorm some new ideas and new solutions. During one of these hack-a-thons, the leader, Roguen Keller, told us we need to collect data and we can use any of the IoT devices sitting there to create that data, including an Amazon Echo.  That inspired a thought, why couldn’t I use the Amazon Echo to provision my storage? Is learning how to create an Alexa Skill difficult?  It didn’t seem so.  And I have a few of these in my home already controlling my lights, TV, and thermostat so why couldn’t it control my storage as well?  So, I took some free time during the hack-a-thon to build a new type of interaction model:


“Alexa, open VSP-G storage.  Create a volume of 20 gigabytes.”


Simple, but effective. I was able to create this interaction model with Alexa in just 2 days.  Was it really creating volumes on my storage? No, Alexa was just saying it was but nothing was executing in the background.  However, being able to have that dialog with Alexa was pretty cool. From here imaginations were inspired and new ideas were coming from everywhere I showed this.  Can it show up in the GUI?  Can it say something witty back? Can it configure the Pools and Ports too? Can it tell me the real health of my array?  Can it tell me all 700+ metrics that Hitachi Data Center Analytics collects today?  Sheesh, a lot to ask for from a guy whose job doesn’t even involve coding anymore.  But why not make a few enhancements?  Let’s get something working to show the power of our APIs.


So I took Hitachi Automation Director because while I wanted Alexa to do more than just create a volume, I didn’t want to have a detailed dialog with Alexa to explain all the host mode option settings, port settings, raid levels, and so many other details. I wanted something simple.


“Alexa, open VSP-G storage. Provision a volume of 20 gigabytes to Riley.”


Yes, just give a host a capacity amount I tell you.  Simple. Or so I thought.  The next steps took an additional 2 weeks and include a weekend where I coded and debugged on my own time.  Why 2 weeks?  Well, I did most of this myself which meant installing Hitachi Command Suite, installing and integrating Hitachi Automation Director, and finding and customizing a service in HAD to only require two pieces of information, the host and capacity to allocate.  All this was built on a simulator that we have for internal testing and training that I’m hoping to get out to the public for integration testing.  So I created my virtual machine and was prepared to have my Echo Dot talk to my virtual machine running on my LAN, but wait! It doesn’t work that way!  You see Alexa is in the Cloud which means it needs a Cloud counterpart to communicate with. My virtual machine is isolated on my laptop, which is protected from the outside world by our firewalls. Let me diagram it for you.




So, what you see here is the Echo Dot sitting next to you, wherever you may be with access to the internet. It communicates to Alexa which is hosted on Amazon Web Services cloud and that in turn communicates to HAD which I created a special instance to sit on our Hitachi cloud. What we really did is just prove that our products like HAD can run in a cloud model.


Now the dialog with Alexa goes like this:



“Alexa, open VSP-G storage”



“Hi. Your storage is running properly. How can I help you manage your storage today? You can say, provision a volume of 100 gigabytes.”



“Provision a volume of 30 gigabytes.”

(note: I could say any number from 10 to 100 in increments of 10 here)



“Okay. I can provision a volume of 30 gigabytes.  Which host would you like to provision to? You can say, please provision to Riley.”



“Provision to Max.”



“Okay. I can provision a volume of 30 gigabytes to Max. If you are ready, I can submit the service for you. Just say, please submit the service.”



“Submit service.”


(this takes a few seconds and you see the Echo’s rings swirl)



“I just finished submitting your request to provision 30 gigabytes to Max.  Please check the task console in Automation Director.  Thank you for using Alexa to manage your storage.”


So, get your own dialog script ready because next time, I’ll show you how I took this script and created the dialog with Alexa in Lambda and AWS.


Go to Part II to see Intelligent Automation!