Over the last couple of months, the three biggest Cloud Computing platform companies — Amazon, Google, and Microsoft — have all made some very interesting moves outside of the cloud (wait, what’s the cloud again?). They’re pushing hard with “fog” or edge computing to draw Internet of Things product builders into their ecosystems.
First, Microsoft announced support for Azure Functions within its IoT Gateway SDK. Azure Functions were originally introduced within the Azure family of cloud products as Microsoft’s version of the Serverless Architecture.
A Serverless Architecture allows users (in this case, software engineers) to write application code that will run within an environment without the engineers needing to worry about how to make that application logic work “at scale.” On the internet, and with IoT, “working at scale” can mean “work correctly thousands or even millions of times per minute.” “At scale” can become very, very difficult in a more traditional environment as engineers need to worry about memory management, thread pools, latency, and other very technical sounding things.
In a Serverless Architecture, the platform provider basically says, “Give me the code, and I’ll just run it whenever it needs to be run and make sure it runs correctly”. This leaves the engineers to do what they really want to do: build cool things that their non-engineering friends will appreciate.
Next, Amazon announced their new AWS Greengrass product, which provides support for their Lambda Functions on IoT devices. Lambda Functions is Amazon’s own form of Serverless Architecture support within the AWS platform.
Greengrass basically acts as a wrapper environment that can be run on a device. Like Azure Functions, Greengrass lets engineers create application logic in the form of Lambda Functions without much concern for the actual implementation details of the code running on the device itself.
Greengrass also provides some other really cool features, not the least of which is inherent support for encrypted device-to-device messaging. So whether the overall internet is up or down, a network of devices all running Greengrass could theoretically all communicate with one another via a local router “out of the box.”
And finally, Google recently launched a developer preview for Android Things. Rather than introducing Serverless Architecture to devices via their platform, Google is offering to help solve another very hard engineering problem for device builders: security.
Essentially, Android Things provides an Operating System for devices which Google promises to keep up-to-date with security updates. Imagine another Mirai Botnet scenario where once again the IoT is being blamed for ruining everyone’s Snapchat binges. According to Google’s plans, any devices running Android Things could be immediately updated by Google with the latest security patch to mitigate the issue — a huge headache reducer for IoT makers.
Android Things also offers tight integration with Google Play Services and the Android ecosystem that currently runs almost 90% of the world’s smart phones. Basically, with this launch, Google seems to be telling every Android app developer that they can build IoT services too.
All three of these moves have one core concept in common:
If you’re offering a platform for developers to build upon, you need to find ways to make the developers love you. And there are few better ways to get developers to love you than to make the things that aren’t unique to their personal creations much easier to handle.