Serverless application architecture and the Internet of Things (IoT) have a lot in common: both are emerging technology choices that are introducing fundamentally new ways of managing networks and, as a result, are requiring new ideas around the design and deployment of applications.
Both technology areas have not yet matured, with much of the tooling — especially around security, logging, and deploying at scale — yet to be solved. Both are seeing massive interest from developer communities and enterprise, eager to implement solutions, and both need to learn how to support developers and systems integrators to adopt a fast moving technology with a rapid pace of innovation that means there are new things to learn every other week.
And there is one other area both have in common, too. It seems almost ubiquitously that at IoT conferences, speakers will end their presentation deck with a slide on “where is the future heading” and include a dot point “serverless.” While at serverless conferences, speakers — like at last week’s Serverlessconf conference in Austin — will have a final slide with future envisioning with a dot point “IoT.”
What IoT Can Learn from Serverless: Design Patterns
Given all of these similarities, there is a lot that IoT can learn from how serverless has been adopted by developer communities, startups and enterprises.
At Serverlessconf, one of the most common presentation slide formats for case studies was to show an architecture map first with how the serverless schema operates before then getting into detail. I have also seen several businesses that are implementing serverless approaches start with an architecture map in order to explain to their internal team what they are building. SaaS tools like LucidChart have integrated AWS icons into their chart and diagram making tools in order to assist with this sort of mapping.
ABOVE: Speakers at Serverlessconf share their design patterns and architecture maps
While at least one Serverlessconf speaker quipped that it seems like everyone needs to show an obligatory architecture map, there is a good reason for this. Serverless is being taken up by developers who are often building and testing solutions while still learning about the technology. So mapping and explaining design patterns is a crucial tool in an early maturity ecosystem. It allows developers to clarify how they believe the system will work, allows them to test hypotheses, and encourages team input.
Ken Owens, a Chief Technology Officer at Cisco, believes that IoT needs to push forward with better sharing of design patterns in order to speed up skills amongst developers.
“What is missing is there are not a lot of examples for developers to look at around how to create these patterns for IoT,” said Owens, who is organizing Cisco DevNet Create, to be held in San Francisco on May 23 and 24. He is hoping presenters there will share the design patterns and architecture maps of their implementations in order to help move the field forward. “As developers share their patterns in a common exchange, then we can leverage each other’s work to advance IoT.”
What Serverless Can Learn from IoT: Portability
While many commentators lament the siloed approach of IoT that is currently causing a huge obstacle to the uptake of scalable solutions, the truth is that the majority of IoT players are recognizing and agreeing that this obstacle has to be overcome. In the last half year, new collaborations are starting to create standardized approaches to connectivity and messaging in IoT systems. Bodies like the Industrial Internet of Things Consortium are scanning the sector and making sure that rapidly rising platforms — like ClearBlade, which is building a strong industrial customer base already — are being invited in to work with other leaders so that common protocols and standards can emerge.
In the recent announcement from IBM’s OpenWhisk about its serverless platform’s new features, Chief technology Officer and V of IBM Cloud Platform, Jason McGee, was quick to point out that, as an Apache open source project, OpenWhisk is proposing “a standard model for events that is agnostic. How a developer connects to an event and gets data from an event should be standard,” McGee said. “There should be some sort of standard taxonomy of events. For each use case, a file change in object storage, for example, there should be a standard data format so there is portability across serverless platforms.”
If cloud providers want to be relevant at the edge, where the event and data processing is being done, then they may need to play nice and work with other systems rather than drive customers into their own ecosystem.
In fact, McGee believes that IoT implementations will drive serverless vendors to create this sort of portability. “IoT will drive this hard. In IoT there is multi-level aggregation. You need a common programming model that will work at the edge all the way to the cloud. That will put pressure on portability and create a more open approach to this,” McGee predicted.
Owens from Cisco is seeing this already happening. “In IoT, I am seeing a maturing around the use of common APIs. There is still a very long ways to go for there to be a common agreement for everyone to develop towards, but I am seeing portability being discussed.”
Up until now, when choosing a cloud provider, businesses needed to go all in with one platform as it is cost-prohibitive to integrate data and services across a range of cloud platforms. DevOps advocates, like Charity Majors of Honeycomb.io caution that this can create dangers in monitoring serverless networks, as tooling may be less likely to be able to surface problems or latency within its own platform.
Owens says that IoT use cases may end up pushing serverless providers to offer greater portability as the architecture is applied to IoT use cases. Part of the drive for this is the need to do so much edge processing in order for data and event processing to be relevant in an IoT implementation. The distributed nature of an IoT network is that not everything is in the cloud, and messaging is often done by telecommunications providers. So IoT gives telcos a way back into the market they lost considerably to cloud providers. If cloud providers want to be relevant at the edge, where the event and data processing is being done, then they may need to play nice and work with other systems rather than drive customers into their own ecosystem.
“They are identifying that the distributed nature of IoT is that they won’t have everything in their cloud, and when I think about the new architectures with fog nodes and distributing this to the edge, then cloud providers will lose their market if a lot more processing is done at that last mile,” Owens said. “In order to make it more viable, they will want to extend their reach into the edge processing space.”
IoT and Serverless: Maturing in Tandem
Big paradigm shifts often occur in tandem and play off each other. Containers began increasingly being used at the same time as microservices architecture principles took off, and the two play well into each other. Now we are seeing that symbiotic knowledge learning being fed between IoT and serverless. Each can be implemented separately, but when used in conjunction, or when learnings from area one are applied to the other, developers have new ways to learn and act faster.
Feature image: Jason McGee from OpenWhisk presenting at Austin Serverlessconf.