The beauty of virtual devices: Where less is more
How to improve IoT... and airport security lines
This is the first in a several part series on Virtual Devices. What I’d like to share in this post, is when I first felt the pain that led to the creation of my startup, KnowThings.io.
A few years ago, I went on my 1st cruise with my wife and family. I took a few weeks off from my job – at the time I was a solutions architect for CA’s Continuous Delivery products and solutions, with a focus on CA Service Virtualization. While the time off was a needed break, I couldn’t help but make some progress on my side project – working on the code for my motion sensor array event engine for my house.
Now, since I’m the sort of person who brings code on vacation, packing for a cruise in this instance was lots of fun. I made up a little kit, with a couple of raspberry pi’s, a breadboard, associated jumper wires, resistors, motion sensors and a small portable router/gateway. Everything I’d need to work on the problem.
First I had to get through airport security – an interesting experience. TSA was quite wary of a bag full of faintly intimidating copper and PCB. Eventually they let me through with my dev kit intact.
That evening I found myself on the top deck, having a couple of beers with my wife on one of the little rattan tables… surrounded by three more tables covered in sensors, breadboards and hideously re-purposed cat 6e cable. It was fun coding among the vacationers but – as fun as that hour or so was, I spent about the same amount of time setting up and breaking down the hardware as I did coding.
For the control and server side of this little project, I had already built out a virtual service to handle the control and data aggregation side of the solution. When I was working on that code I needed nothing more than my dev laptop. The virtual service let me get work done, when and where I wanted, without the risk of an angry spouse when test cases for the motion sensor would turn on the panic lights at 2 am.
Virtual Devices are pretty common in the world of Unix/Linux style systems. In that world, virtual devices appear as actual devices at the user software level, but do not actually reference physical devices. I realized this was what I needed.
This would eliminate worries about getting through TSA, or finding room in my bag, or a one hour setup and tear down time.
At the time, my day job focused on architecture for continuous delivery and virtual services. My customers had all the security and setup/tear-down issues I experienced on the cruise, only on a much larger scale in their data centers. I was visiting one of our large customers who had implemented CA Service Virtualization for continuous delivery on their back-end systems and were very pleased with the results.
They gave me the grand tour, proudly showing off the 100,000+ devices they had sitting on racks. Incorporating CA Service Virtualization had allowed them to speed up and automate most of their development and QA for the enterprise side of the house. Those racks were now the slow point on the critical path. The solution as they saw it, more racks, more synchronization between automated processes and people processes. Just because IoT has lots of hardware doesn’t mean we can’t virtualize and simulate it.
That experience gave me the insight that the solution was not in the physical world or orchestrated people processes. It was automation and software. What CA Service Virtualization had done for continuous delivery and continuous testing for apps had to be brought to IoT.
I saw a world where I don’t have to bring actual hardware with me to tinker with on vacation and where businesses didn’t require thousands of physical devices to do their work. I saw a world of no things… or KnowThings.
In Part Two, I’ll take a closer look at how Adaptive Virtual devices accelerate development and QA, and why they are the most effective and efficient way to meet the needs of development and QA in a rapidly changing software and hardware environment.