Architecting a Serverless IoT System
in the Cloud
Eran Stiller
Chief Technology Officer
erans@codevalue.net
@eranstiller
https://stiller.blog
https://codevalue.net
Internet of Things (IoT) & Industry 4.0
2
Agenda
 Background & Challenges
 Solution Architecture
 What Would We Have Done Differently?
3
About Eran
Eran Stiller
 @eranstiller
 CTO & Founder at CodeValue
 Software architect, consultant and instructor
 Microsoft Regional Director & Azure MVP
 Founder of Azure Israel Meetup
4
About CodeValue
 Awesome software company!
 Technology experts
 High quality software development solutions
Cloud Computing
Advanced Mobile
Technologies
UI/UX & Graphic
Design
Cross Platform
Development
Advanced Web
Technologies
ALM & DevOps Software Architecture
IOT & Embedded
Software
Training & Mentoring
Development
Management &
Methodology
5
Background & Challenges
6
Background
7
Requirements
8Icons made by Freepik for www.flaticon.com
Software-as-a-Service (SaaS)
Real-Time Dashboards &
Historical Analysis
Send commands
to the device
Multitenant System
Challenges
9
Challenges
10
Global Scale Privacy & Data
Sovereignty
Security
Icons made by Freepik for www.flaticon.com
Architectural Choices
11
Lambda Architecture
12
New
Data
Batch Layer Serving Layer
Speed Layer
Query
Query
Real-Time
View
Real-Time
View
Batch
View
Batch
View
Master
Database
Platform-as-a-Service (PaaS)
13
Serverless Compute
14
Event-driven
scale
Sub-second
billing
Abstraction
of servers
Solution Architecture
15
Architecture
 Division into multiple subsystems, connected via reliable transports
16Icons made by Freepik for www.flaticon.com
Administration
Data Ingestion &
Processing
Presentation
Administration
17
Client API
Active
Directory
Service Bus
Device
Provisioning
MonitoringDatabaseKey-Vault
Data Ingestion
18
IoT Hub
Raw Storage Data
Warehouse
ETL
Device
Provisioning
Stream
Analytics
Device
Service
Bus
Event
Processor
Presentation
19
API
DB
Data
Warehouse
Auth0
Power BI
Embedded
Portal
Analysis Services
What Would We Have Done Differently?
 Reconsider the usage of COTS analytics solution
 Very problematic for direct customer usage
 Traditional analysis tools too costly for small deployment
 DIY would have been a better choice
 Organizational readiness
 Analysis & coordination across the organization
 DevOps
20
Takeaways
 Many hardware companies now become software companies
 PaaS can take you a long way
 Serverless can alleviate management & implementation overhead
 Division into subsystems can simplify the overall solution
 Beware of COTS analysis tools for direct customer use
21
Eran Stiller
Chief Technology Officer
erans@codevalue.net
@eranstiller
https://stiller.blog
https://codevalue.net

Architecting a Serverless IoT System in the Cloud

Editor's Notes

  • #3 The Internet of Things, or IoT, is not new. It’s been around for a while. It was around way before anyone ever thought about calling it IoT – we just called it differently. What is an IoT system? An IoT system is a system in which you take a device, usually powered by an embedded processor or SoC, connect it up to the cloud and start transmitting data and receiving commands remotely. That’s it. With the reduction in costs in capable processors, along with the maturity and acceptance of cloud-based platforms – these systems are becoming more popular and mainstream. Based on the proliferation of this type of systems, a new buzzword has emerged – “Industry 4.0”. "industry 4.0" factories have machines which are augmented with wireless connectivity and sensors, connected to a system that can visualize the entire production line and make decisions on its own. Industry 4.0 is the trend towards automation and data exchange in manufacturing technologies and processes which include cyber-physical systems (CPS), the internet of things (IoT), industrial internet of things (IIOT), cloud computing, cognitive computing and artificial intelligence. As these concepts emerge, more and more hardware companies suddenly realize that they should be software companies as well, and that they should plan, build and operate such a software system… This can be a massive undertaking for them. In order to help them focus on their unique business logic and not on managing device infrastructure, various cloud platforms and paradigmns have appeared, making the task of building such systems much easier. In today’s session we’ll discuss one of these methods. Free image: https://pixabay.com/photos/industry-industry-4-0-2496192/
  • #8 A company which manufactures devices to be placed in their clients’ manufacturing lines worldwide For the first time ever, they wanted to gather data generated by these devices, upload it to the cloud and start utilizing it for various business opportunities such as customer reports, predictive maintenance, upsell opportunities, and more. Free image: https://pixabay.com/photos/drill-milling-milling-machine-444499/
  • #9 Display mix of analytic and real-time data (Gather data from the devices to the cloud) Send commands to devices Software-as-a-Service (SaaS) Multitenant solution
  • #10 Not a software company. Never used the cloud. Don’t have DevOps. Not used to a SaaS release cycle. Up until now – software versions only come out once every few months, and they are hard to update on existing machines.
  • #11 Global scale Privacy & data sovereignty concerns Security – sensitive customer data, exposing the customers’ premises to the Internet, exposing our own data to the Internet
  • #13 Lambda architecture is a way of processing massive quantities of data (i.e. “Big Data”) that provides access to batch-processing and stream-processing methods with a hybrid approach.
  • #14 Since we wanted a relatively easy to build and maintain solution, we decided to use PaaS services in order to build it. PaaS acts like a Lego in a way, where you take off-the-shelf component and in many cases all you have to do is to configure them to work together. Somebody else has written the infrastructure for, and someone else is responsible for maintaining it so that you won’t have to. Things like infrastructure security, protocol implementation, scaling, etc. – all taken care of. Now, you still have to monitor it and make sure it behaves correctly – but it is still much less of a burden than doing it yourself. Specifically, our solution was based on PaaS service from the Azure platform, Microsoft’s cloud offering. Free Image: https://pixabay.com/illustrations/lego-building-game-toy-drawing-3388163/
  • #15 The most important part is abstraction of servers – no infrastructure to manage at all. Also in regards to sub-second billing – it allows us to scale our usage as we grow.
  • #18 Everything here is serverless and requires minimum implementation