SlideShare a Scribd company logo
Serverless Architecture
for the Internet of Things
Ben Kehoe @ben11kehoe
Cloud Robotics Research Scientist
2016-05-26
Transition to the cloud:
“Treat servers like cattle, not pets”
(traces back to Bill Baker at Microsoft)
Transition to serverless:
Treat servers like roaches
Contents
1.  iRobot + me
2.  iRobot’s needs
3.  Cloud architecture
4.  Serverless ops
5.  Looking forward
iRobot + me
•  Consumer robotics
–  Roomba (vacuuming)
–  Braava (hard floor care)
–  Other (Looj, Verra)
–  Create
•  Global
–  Over 100 countries
–  Only 40% North America
–  Antarctica?
•  High volume
–  2.4 million robots last year
•  Me
–  Cloud Robotics Research Scientist
–  R&D, cloud architecture, IoT/smart home
–  Background: UAVs, surgical robots, physics, theater, …
iRobot + me
iRobot’s needs
•  IoT/Smart Home
–  From the consumer’s perspective, the
cloud is sometimes hidden in
(consumer) IoT
•  This is not intuitive
•  Smart Home is a better term
–  The consumer may never interact with
an IoT device from outside their home
–  The cloud may enable functionality that
the consumer only uses through direct
physical interaction
–  This is especially true of robots
•  Enterprise
–  Global
–  Scalable
–  Secure
–  Auditable
iRobot’s needs
•  Cloud infrastructure for our customer-
facing system is undifferentiated heavy
lifting for us
–  On the other hand, big data may be
a key part of our business, so cloud
infrastructure in that area is more
relevant for us
•  This is where serverless architecture
comes in
–  Hurray!
–  Development limited mostly to
business logic
–  Accept inefficiencies in system
design due to available service
functionality in exchange for vastly
reduced ops complexity
iRobot’s needs
Cloud Architecture
•  Users, apps, robots
–  Users to apps: one to many
–  Users to robots: many to many
–  “Accountless apps”
System architecture
•  Users, apps, robots
–  Users to apps: one to many
–  Users to robots: many to many
–  “Accountless apps”
•  Local connections
•  Triangle of trust
•  Two entry points: AWS IoT and API
Gateway
System architecture
•  Robots
–  No AWS credentials
–  Certificates --> can only authenticate with
AWS IoT
•  Not even API Gateway custom auth :-(
•  BYO Cert (mfg-ing logistics)
•  Use presigned URLs for e.g. S3 get/put
–  OTA firmware update
•  Apps
–  Cognito identity --> AWS credentials
–  “Accountless” functionality (UX driven)
–  Uses the triangle of trust
•  Admin console
–  ADFS sign in
–  Served through separate API Gateway
•  Protip: single-page web app, files
served thru API GW using S3 service
proxying, API calls using relative paths

--> client always in sync with backend
Cloud architecture for IoT
•  Computation: Lambda and IoT Rules
•  Lots of SQS queues
•  Storage: DynamoDB, IoT Shadows
•  Security: Rube Goldberg WAF for API Gateway
•  The *: Elasticsearch and RDS
Cloud architecture
•  Enterprise needs
–  Scale
•  No problem!*
•  Lambda limits are the most
worrying, CloudWatch Events
limits are the most annoying
–  Mostly because of SQS
–  Global
•  Actually the biggest downside
to serverless
–  Regional availability
–  Vendor lock-in
–  Security
•  WAF
•  CloudWatch
•  3rd party tools
–  Auditability
•  CloudTrail
Serverless ops
•  Serverless IT and Ops
–  Infrastructure as code
–  Build artifacts
–  Inspectability
–  Deploy from dev machine or test
server
–  Deploy from working dir or git
commit
–  Auditability
•  Security
•  Billing
•  CloudFormation is great for deployment.
Slower is ok for us.
–  Use CloudFormation custom resources
to deploy and manage arbitrary
resources
•  E.g., API Gateway + WAF
–  Give CloudFormation some syntactical
sugar
•  Still need to deploy and manage custom
resource Lambdas
•  Still need to deploy artifacts into S3
–  Lambda source code
–  CloudFormation templates
–  Etc.
Serverless ops
•  Our deployment tool is named “cloudr”
•  “clowder” is the collective noun for cats
•  Builds Lambda source code
•  Deploys artifacts to S3
•  Creates/compiles CloudFormation
templates, injects S3 locations from
previous step
•  Deploys and manages custom resource
Lambdas using hash of source as alias
–  Uses our cfnlambda library
cloudr
Source
•  Creates an application consisting of a set of microservices
–  One stack per microservice
•  CloudFormation template defined by user, with
syntactic sugar
•  DynamoDB table for service discovery added
automagically, name injected into Lambda
functions
•  Required and provided resources defined by the
user
–  One stack for the application as a whole
•  A custom resource for each microservice stack
•  Cross-service policies created based on the
declared dependencies
•  Service discovery tables populated from info
contained in this stack
cloudr
•  How do we actually roll out updates?
•  This is the biggest area where
serverless offerings are lacking
•  With IaaS and lower-level PaaS, you
get lots of control
–  Canary deployments
–  Roll out behind the load balancer,
or set up a new load balancer
with a whole separate fleet
•  What can we do serverless on AWS
today?
Serverless deployment
•  Rolling out a deployment “behind the
load balancer” is impossible
•  Canary deployments are impossible if
we update in place
•  So how do we host multiple versions
simultaneously?
–  For API Gateway, multiple
versions can coexist as separate
stages or separate APIs
–  For IoT, no such luck
•  One MQTT server per
account (in a region)
•  Certificates can only exist in
one account (in a region)
•  (╯°□°) ┻━┻
Serverless deployment
•  Solution for IoT: topic prefix
•  All rules for an instance of an
application listen on prefixed topics
•  What about /$aws/ topics?
–  Robot sets prefix in the shadow
–  Rules on shadow switch on that
field
Serverless deployment
•  How do you switch clients over?
•  A separate global API Gateway for
service discovery
–  Well-known url using custom
domain names
•  Client service discovery returns three
items:
–  API Gateway base url
–  MQTT host
–  MQTT topic prefix
Serverless deployment
•  When an app wants to communicate
with a robot, how do we make sure it
talks to the same instance the robot is
talking to?
–  Separate service discovery for
robots and apps
–  Robot service discovery: where
should I be?
•  Robot updates “where am I”
in the cloud
–  App service discovery: where is
this robot?
–  Quadrilateral of trust
•  A third service discovery for app’s non-
robot-related calls
Serverless deployment
Conclusion
•  The awesome
–  Zero unmanaged EC2 instances
–  Zero Elastic Beanstalk
applications
•  The good
–  Lambda service in isolation
•  Scaling
•  Development
•  Testing
–  API Gateway features
–  AWS IoT
•  BYO Certificates
•  Rules Engine computation
•  Pricing!
Conclusion
•  The bad
–  Deployment gets complicated
–  We could get a lot of mileage of
MQTT “retain”
–  IoT fleet operations
–  WAF for API Gateway
–  VPC support
•  The ugly
–  Lambda SQS integration
–  IoT instances/certificate
limitations
Conclusion
•  IoT is complicated
•  Serverless is the way
–  Development
–  Deployment
–  Operations
•  iRobot’s solution: cloudr
–  (Hopefully) will be open source
Conclusion
•  iRobotCorporation on Github
–  cfnlambda
–  sqslambda*
–  ADFS credentials refreshing*
•  We’re hiring
•  @ben11kehoe on Twitter
Conclusion

More Related Content

What's hot

Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe
Erica Windisch
 
Serverless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj GanapathiServerless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj Ganapathi
CodeOps Technologies LLP
 
Introduction to Azure Functions - Tutorial
Introduction to Azure Functions - TutorialIntroduction to Azure Functions - Tutorial
Introduction to Azure Functions - Tutorial
BizTalk360
 
Kapil Thangavelu - Cloud Custodian
Kapil Thangavelu - Cloud CustodianKapil Thangavelu - Cloud Custodian
Kapil Thangavelu - Cloud Custodian
ServerlessConf
 
Artificial Intelligence & Machine learning foundation topic in AWS
Artificial Intelligence & Machine learning foundation topic in AWS Artificial Intelligence & Machine learning foundation topic in AWS
Artificial Intelligence & Machine learning foundation topic in AWS
Varun Manik
 
Using Azure Functions for Integration
Using Azure Functions for IntegrationUsing Azure Functions for Integration
Using Azure Functions for Integration
BizTalk360
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure Functions
Wagner Silveira
 
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase ProductivityAWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS User Group - Thailand
 
Let's Talk About Serverless - Focusing on AWS Lambda
Let's Talk About Serverless - Focusing on AWS LambdaLet's Talk About Serverless - Focusing on AWS Lambda
Let's Talk About Serverless - Focusing on AWS Lambda
Okis Chuang
 
Design and Develop Serverless Applications as Set-Pieces
Design and Develop Serverless Applications as Set-PiecesDesign and Develop Serverless Applications as Set-Pieces
Design and Develop Serverless Applications as Set-Pieces
SheenBrisals
 
Thinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UGThinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UG
Eric Johnson
 
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
Serverless Architecture Patterns - Manoj Ganapathi - Serverless SummitServerless Architecture Patterns - Manoj Ganapathi - Serverless Summit
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
CodeOps Technologies LLP
 
Serverless Summit - Quiz
Serverless Summit - QuizServerless Summit - Quiz
Serverless Summit - Quiz
CodeOps Technologies LLP
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CodeOps Technologies LLP
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
CodeOps Technologies LLP
 
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless SummitDemocratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
CodeOps Technologies LLP
 
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJSAWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS User Group - Thailand
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS Lambda
Amazon Web Services
 
The Hitchhiker’s Guide to Hybrid Connectivity
The Hitchhiker’s Guide to Hybrid ConnectivityThe Hitchhiker’s Guide to Hybrid Connectivity
The Hitchhiker’s Guide to Hybrid Connectivity
BizTalk360
 
Choosing the right messaging service for your serverless app [with lumigo]
Choosing the right messaging service for your serverless app [with lumigo]Choosing the right messaging service for your serverless app [with lumigo]
Choosing the right messaging service for your serverless app [with lumigo]
Dhaval Nagar
 

What's hot (20)

Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe
 
Serverless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj GanapathiServerless Architecture Patterns - Manoj Ganapathi
Serverless Architecture Patterns - Manoj Ganapathi
 
Introduction to Azure Functions - Tutorial
Introduction to Azure Functions - TutorialIntroduction to Azure Functions - Tutorial
Introduction to Azure Functions - Tutorial
 
Kapil Thangavelu - Cloud Custodian
Kapil Thangavelu - Cloud CustodianKapil Thangavelu - Cloud Custodian
Kapil Thangavelu - Cloud Custodian
 
Artificial Intelligence & Machine learning foundation topic in AWS
Artificial Intelligence & Machine learning foundation topic in AWS Artificial Intelligence & Machine learning foundation topic in AWS
Artificial Intelligence & Machine learning foundation topic in AWS
 
Using Azure Functions for Integration
Using Azure Functions for IntegrationUsing Azure Functions for Integration
Using Azure Functions for Integration
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure Functions
 
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase ProductivityAWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
 
Let's Talk About Serverless - Focusing on AWS Lambda
Let's Talk About Serverless - Focusing on AWS LambdaLet's Talk About Serverless - Focusing on AWS Lambda
Let's Talk About Serverless - Focusing on AWS Lambda
 
Design and Develop Serverless Applications as Set-Pieces
Design and Develop Serverless Applications as Set-PiecesDesign and Develop Serverless Applications as Set-Pieces
Design and Develop Serverless Applications as Set-Pieces
 
Thinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UGThinking Asynchronously Full Vesion - Utah UG
Thinking Asynchronously Full Vesion - Utah UG
 
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
Serverless Architecture Patterns - Manoj Ganapathi - Serverless SummitServerless Architecture Patterns - Manoj Ganapathi - Serverless Summit
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
 
Serverless Summit - Quiz
Serverless Summit - QuizServerless Summit - Quiz
Serverless Summit - Quiz
 
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
CREATING REAL TIME DASHBOARD WITH BLAZOR, AZURE FUNCTION COSMOS DB AN AZURE S...
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
 
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless SummitDemocratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
 
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJSAWS Community Day Bangkok 2019 - Hello ClaudiaJS
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
 
Managing the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS LambdaManaging the Continuous Delivery of Code to AWS Lambda
Managing the Continuous Delivery of Code to AWS Lambda
 
The Hitchhiker’s Guide to Hybrid Connectivity
The Hitchhiker’s Guide to Hybrid ConnectivityThe Hitchhiker’s Guide to Hybrid Connectivity
The Hitchhiker’s Guide to Hybrid Connectivity
 
Choosing the right messaging service for your serverless app [with lumigo]
Choosing the right messaging service for your serverless app [with lumigo]Choosing the right messaging service for your serverless app [with lumigo]
Choosing the right messaging service for your serverless app [with lumigo]
 

Viewers also liked

Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...
Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...
Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...
ServerlessConf
 
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless StartupSam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
ServerlessConf
 
Charity Hound - Serverless, NoOps, The Tooth Fairy
Charity Hound - Serverless, NoOps, The Tooth FairyCharity Hound - Serverless, NoOps, The Tooth Fairy
Charity Hound - Serverless, NoOps, The Tooth Fairy
ServerlessConf
 
Joe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentJoe Emison - 10X Product Development
Joe Emison - 10X Product Development
ServerlessConf
 
Tomasz Janczuk - Webtaskalifragilistexpialidocious
Tomasz Janczuk - WebtaskalifragilistexpialidociousTomasz Janczuk - Webtaskalifragilistexpialidocious
Tomasz Janczuk - Webtaskalifragilistexpialidocious
ServerlessConf
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
真吾 吉田
 
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
Amazon Web Services
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
Michał Kurzeja
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
Amazon Web Services
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
Amazon Web Services
 
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
Hiroyuki Hiki
 
Serverless Architecture at iRobot
Serverless Architecture at iRobotServerless Architecture at iRobot
Serverless Architecture at iRobot
Ben Kehoe
 
サーバーレスアーキテクチャに関する個人的理解と使い所
サーバーレスアーキテクチャに関する個人的理解と使い所サーバーレスアーキテクチャに関する個人的理解と使い所
サーバーレスアーキテクチャに関する個人的理解と使い所
Shoji Shirotori
 
ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話
Kenji Tanaka
 
Serverless microservices in the wild
Serverless microservices in the wildServerless microservices in the wild
Serverless microservices in the wild
Rotem Tamir
 
Top 5 robotics engineer interview questions with answers
Top 5 robotics engineer interview questions with answersTop 5 robotics engineer interview questions with answers
Top 5 robotics engineer interview questions with answersmarkets8212
 
슬로우캠퍼스 - 안드로이드 개발자들이여 Firebase로 날아보자 :)
슬로우캠퍼스 - 안드로이드 개발자들이여  Firebase로 날아보자 :)슬로우캠퍼스 - 안드로이드 개발자들이여  Firebase로 날아보자 :)
슬로우캠퍼스 - 안드로이드 개발자들이여 Firebase로 날아보자 :)
마이캠퍼스
 
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Chris Richardson
 
Azure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and moreAzure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and more
BizTalk360
 
Webinar - Mobile Apps: Monolithic to Serverless
Webinar - Mobile Apps: Monolithic to ServerlessWebinar - Mobile Apps: Monolithic to Serverless
Webinar - Mobile Apps: Monolithic to Serverless
OpenXcell Technolabs
 

Viewers also liked (20)

Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...
Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...
Frederic Lavigne and Stephen Fink - Serverless Video Processing with IBM Blue...
 
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless StartupSam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
Sam Kroonenburg and Pete Sbarski - The Story of a Serverless Startup
 
Charity Hound - Serverless, NoOps, The Tooth Fairy
Charity Hound - Serverless, NoOps, The Tooth FairyCharity Hound - Serverless, NoOps, The Tooth Fairy
Charity Hound - Serverless, NoOps, The Tooth Fairy
 
Joe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentJoe Emison - 10X Product Development
Joe Emison - 10X Product Development
 
Tomasz Janczuk - Webtaskalifragilistexpialidocious
Tomasz Janczuk - WebtaskalifragilistexpialidociousTomasz Janczuk - Webtaskalifragilistexpialidocious
Tomasz Janczuk - Webtaskalifragilistexpialidocious
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
(CMP407) Lambda as Cron: Scheduling Invocations in AWS Lambda
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
 
サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事サーバーレスでシステムを開発する時に⼤切な事
サーバーレスでシステムを開発する時に⼤切な事
 
Serverless Architecture at iRobot
Serverless Architecture at iRobotServerless Architecture at iRobot
Serverless Architecture at iRobot
 
サーバーレスアーキテクチャに関する個人的理解と使い所
サーバーレスアーキテクチャに関する個人的理解と使い所サーバーレスアーキテクチャに関する個人的理解と使い所
サーバーレスアーキテクチャに関する個人的理解と使い所
 
ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話ブログをいっぱい書いていたら色々とうまくいった話
ブログをいっぱい書いていたら色々とうまくいった話
 
Serverless microservices in the wild
Serverless microservices in the wildServerless microservices in the wild
Serverless microservices in the wild
 
Top 5 robotics engineer interview questions with answers
Top 5 robotics engineer interview questions with answersTop 5 robotics engineer interview questions with answers
Top 5 robotics engineer interview questions with answers
 
슬로우캠퍼스 - 안드로이드 개발자들이여 Firebase로 날아보자 :)
슬로우캠퍼스 - 안드로이드 개발자들이여  Firebase로 날아보자 :)슬로우캠퍼스 - 안드로이드 개발자들이여  Firebase로 날아보자 :)
슬로우캠퍼스 - 안드로이드 개발자들이여 Firebase로 날아보자 :)
 
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)Developing event-driven microservices with event sourcing and CQRS (Shanghai)
Developing event-driven microservices with event sourcing and CQRS (Shanghai)
 
Azure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and moreAzure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and more
 
Webinar - Mobile Apps: Monolithic to Serverless
Webinar - Mobile Apps: Monolithic to ServerlessWebinar - Mobile Apps: Monolithic to Serverless
Webinar - Mobile Apps: Monolithic to Serverless
 

Similar to Ben Kehoe - Serverless Architecture for the Internet of Things

Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
cornelia davis
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
VMware Tanzu
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
Lino Telera
 
API Gateways are going through an identity crisis
API Gateways are going through an identity crisisAPI Gateways are going through an identity crisis
API Gateways are going through an identity crisis
Christian Posta
 
IOT15_Unit6.pptx
IOT15_Unit6.pptxIOT15_Unit6.pptx
IOT15_Unit6.pptx
suptel
 
AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)
AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)
AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)
Amazon Web Services
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Boaz Ziniman
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
Amazon Web Services
 
Serverless Meetup - Event Sourcing
Serverless Meetup - Event SourcingServerless Meetup - Event Sourcing
Serverless Meetup - Event Sourcing
Luca Bianchi
 
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Amazon Web Services
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
cornelia davis
 
Operating your Production API
Operating your Production APIOperating your Production API
Operating your Production API
Amazon Web Services
 
Build a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersBuild a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million Users
Amazon Web Services
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
Amazon Web Services
 
Demistifying serverless on aws
Demistifying serverless on awsDemistifying serverless on aws
Demistifying serverless on aws
AWS Riyadh User Group
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
Amazon Web Services
 
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Introducing to serverless computing and AWS lambda - Israel Clouds MeetupIntroducing to serverless computing and AWS lambda - Israel Clouds Meetup
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Boaz Ziniman
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
Amazon Web Services
 
2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS
SmartWave
 
Build a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersBuild a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million Users
Amazon Web Services
 

Similar to Ben Kehoe - Serverless Architecture for the Internet of Things (20)

Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
API Gateways are going through an identity crisis
API Gateways are going through an identity crisisAPI Gateways are going through an identity crisis
API Gateways are going through an identity crisis
 
IOT15_Unit6.pptx
IOT15_Unit6.pptxIOT15_Unit6.pptx
IOT15_Unit6.pptx
 
AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)
AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)
AWS re:Invent 2016: Serverless IoT Back Ends (IOT401)
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
 
Serverless Meetup - Event Sourcing
Serverless Meetup - Event SourcingServerless Meetup - Event Sourcing
Serverless Meetup - Event Sourcing
 
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
Get the EDGE to scale: Using Cloudfront along with edge compute to scale your...
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 
Operating your Production API
Operating your Production APIOperating your Production API
Operating your Production API
 
Build a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersBuild a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million Users
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
 
Demistifying serverless on aws
Demistifying serverless on awsDemistifying serverless on aws
Demistifying serverless on aws
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
Introducing to serverless computing and AWS lambda - Israel Clouds MeetupIntroducing to serverless computing and AWS lambda - Israel Clouds Meetup
Introducing to serverless computing and AWS lambda - Israel Clouds Meetup
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
 
2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS2016-06 - Design your api management strategy - AWS - Microservices on AWS
2016-06 - Design your api management strategy - AWS - Microservices on AWS
 
Build a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersBuild a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million Users
 

More from ServerlessConf

Paul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last YearPaul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last Year
ServerlessConf
 
Paul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last YearPaul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last Year
ServerlessConf
 
Patrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to ServicefullPatrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to Servicefull
ServerlessConf
 
Noelle La Charite - Building Voice Experiences
Noelle La Charite - Building Voice ExperiencesNoelle La Charite - Building Voice Experiences
Noelle La Charite - Building Voice Experiences
ServerlessConf
 
Lars Trierloff - Serverless Adventures with AWS Lambda and Clojure
Lars Trierloff - Serverless Adventures with AWS Lambda and ClojureLars Trierloff - Serverless Adventures with AWS Lambda and Clojure
Lars Trierloff - Serverless Adventures with AWS Lambda and Clojure
ServerlessConf
 
Eric Windisch - Building Composable Serverless Apps
Eric Windisch - Building Composable Serverless AppsEric Windisch - Building Composable Serverless Apps
Eric Windisch - Building Composable Serverless Apps
ServerlessConf
 
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
ServerlessConf
 

More from ServerlessConf (7)

Paul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last YearPaul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last Year
 
Paul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last YearPaul Johnston - What I Wish I'd Known Last Year
Paul Johnston - What I Wish I'd Known Last Year
 
Patrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to ServicefullPatrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to Servicefull
 
Noelle La Charite - Building Voice Experiences
Noelle La Charite - Building Voice ExperiencesNoelle La Charite - Building Voice Experiences
Noelle La Charite - Building Voice Experiences
 
Lars Trierloff - Serverless Adventures with AWS Lambda and Clojure
Lars Trierloff - Serverless Adventures with AWS Lambda and ClojureLars Trierloff - Serverless Adventures with AWS Lambda and Clojure
Lars Trierloff - Serverless Adventures with AWS Lambda and Clojure
 
Eric Windisch - Building Composable Serverless Apps
Eric Windisch - Building Composable Serverless AppsEric Windisch - Building Composable Serverless Apps
Eric Windisch - Building Composable Serverless Apps
 
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
Andreas Nauerz and Michael Behrendt - Event Driven and Serverless Programming...
 

Recently uploaded

1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
ShahulHameed54211
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
TristanJasperRamos
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
Himani415946
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 

Recently uploaded (16)

1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 

Ben Kehoe - Serverless Architecture for the Internet of Things

  • 1. Serverless Architecture for the Internet of Things Ben Kehoe @ben11kehoe Cloud Robotics Research Scientist 2016-05-26
  • 2. Transition to the cloud: “Treat servers like cattle, not pets” (traces back to Bill Baker at Microsoft) Transition to serverless: Treat servers like roaches
  • 3. Contents 1.  iRobot + me 2.  iRobot’s needs 3.  Cloud architecture 4.  Serverless ops 5.  Looking forward
  • 5. •  Consumer robotics –  Roomba (vacuuming) –  Braava (hard floor care) –  Other (Looj, Verra) –  Create •  Global –  Over 100 countries –  Only 40% North America –  Antarctica? •  High volume –  2.4 million robots last year •  Me –  Cloud Robotics Research Scientist –  R&D, cloud architecture, IoT/smart home –  Background: UAVs, surgical robots, physics, theater, … iRobot + me
  • 7. •  IoT/Smart Home –  From the consumer’s perspective, the cloud is sometimes hidden in (consumer) IoT •  This is not intuitive •  Smart Home is a better term –  The consumer may never interact with an IoT device from outside their home –  The cloud may enable functionality that the consumer only uses through direct physical interaction –  This is especially true of robots •  Enterprise –  Global –  Scalable –  Secure –  Auditable iRobot’s needs
  • 8. •  Cloud infrastructure for our customer- facing system is undifferentiated heavy lifting for us –  On the other hand, big data may be a key part of our business, so cloud infrastructure in that area is more relevant for us •  This is where serverless architecture comes in –  Hurray! –  Development limited mostly to business logic –  Accept inefficiencies in system design due to available service functionality in exchange for vastly reduced ops complexity iRobot’s needs
  • 10. •  Users, apps, robots –  Users to apps: one to many –  Users to robots: many to many –  “Accountless apps” System architecture
  • 11. •  Users, apps, robots –  Users to apps: one to many –  Users to robots: many to many –  “Accountless apps” •  Local connections •  Triangle of trust •  Two entry points: AWS IoT and API Gateway System architecture
  • 12. •  Robots –  No AWS credentials –  Certificates --> can only authenticate with AWS IoT •  Not even API Gateway custom auth :-( •  BYO Cert (mfg-ing logistics) •  Use presigned URLs for e.g. S3 get/put –  OTA firmware update •  Apps –  Cognito identity --> AWS credentials –  “Accountless” functionality (UX driven) –  Uses the triangle of trust •  Admin console –  ADFS sign in –  Served through separate API Gateway •  Protip: single-page web app, files served thru API GW using S3 service proxying, API calls using relative paths
 --> client always in sync with backend Cloud architecture for IoT
  • 13. •  Computation: Lambda and IoT Rules •  Lots of SQS queues •  Storage: DynamoDB, IoT Shadows •  Security: Rube Goldberg WAF for API Gateway •  The *: Elasticsearch and RDS Cloud architecture
  • 14. •  Enterprise needs –  Scale •  No problem!* •  Lambda limits are the most worrying, CloudWatch Events limits are the most annoying –  Mostly because of SQS –  Global •  Actually the biggest downside to serverless –  Regional availability –  Vendor lock-in –  Security •  WAF •  CloudWatch •  3rd party tools –  Auditability •  CloudTrail
  • 16. •  Serverless IT and Ops –  Infrastructure as code –  Build artifacts –  Inspectability –  Deploy from dev machine or test server –  Deploy from working dir or git commit –  Auditability •  Security •  Billing
  • 17. •  CloudFormation is great for deployment. Slower is ok for us. –  Use CloudFormation custom resources to deploy and manage arbitrary resources •  E.g., API Gateway + WAF –  Give CloudFormation some syntactical sugar •  Still need to deploy and manage custom resource Lambdas •  Still need to deploy artifacts into S3 –  Lambda source code –  CloudFormation templates –  Etc. Serverless ops
  • 18. •  Our deployment tool is named “cloudr” •  “clowder” is the collective noun for cats •  Builds Lambda source code •  Deploys artifacts to S3 •  Creates/compiles CloudFormation templates, injects S3 locations from previous step •  Deploys and manages custom resource Lambdas using hash of source as alias –  Uses our cfnlambda library cloudr Source
  • 19. •  Creates an application consisting of a set of microservices –  One stack per microservice •  CloudFormation template defined by user, with syntactic sugar •  DynamoDB table for service discovery added automagically, name injected into Lambda functions •  Required and provided resources defined by the user –  One stack for the application as a whole •  A custom resource for each microservice stack •  Cross-service policies created based on the declared dependencies •  Service discovery tables populated from info contained in this stack cloudr
  • 20. •  How do we actually roll out updates? •  This is the biggest area where serverless offerings are lacking •  With IaaS and lower-level PaaS, you get lots of control –  Canary deployments –  Roll out behind the load balancer, or set up a new load balancer with a whole separate fleet •  What can we do serverless on AWS today? Serverless deployment
  • 21. •  Rolling out a deployment “behind the load balancer” is impossible •  Canary deployments are impossible if we update in place •  So how do we host multiple versions simultaneously? –  For API Gateway, multiple versions can coexist as separate stages or separate APIs –  For IoT, no such luck •  One MQTT server per account (in a region) •  Certificates can only exist in one account (in a region) •  (╯°□°) ┻━┻ Serverless deployment
  • 22. •  Solution for IoT: topic prefix •  All rules for an instance of an application listen on prefixed topics •  What about /$aws/ topics? –  Robot sets prefix in the shadow –  Rules on shadow switch on that field Serverless deployment
  • 23. •  How do you switch clients over? •  A separate global API Gateway for service discovery –  Well-known url using custom domain names •  Client service discovery returns three items: –  API Gateway base url –  MQTT host –  MQTT topic prefix Serverless deployment
  • 24. •  When an app wants to communicate with a robot, how do we make sure it talks to the same instance the robot is talking to? –  Separate service discovery for robots and apps –  Robot service discovery: where should I be? •  Robot updates “where am I” in the cloud –  App service discovery: where is this robot? –  Quadrilateral of trust •  A third service discovery for app’s non- robot-related calls Serverless deployment
  • 26. •  The awesome –  Zero unmanaged EC2 instances –  Zero Elastic Beanstalk applications •  The good –  Lambda service in isolation •  Scaling •  Development •  Testing –  API Gateway features –  AWS IoT •  BYO Certificates •  Rules Engine computation •  Pricing! Conclusion
  • 27. •  The bad –  Deployment gets complicated –  We could get a lot of mileage of MQTT “retain” –  IoT fleet operations –  WAF for API Gateway –  VPC support •  The ugly –  Lambda SQS integration –  IoT instances/certificate limitations Conclusion
  • 28. •  IoT is complicated •  Serverless is the way –  Development –  Deployment –  Operations •  iRobot’s solution: cloudr –  (Hopefully) will be open source Conclusion
  • 29. •  iRobotCorporation on Github –  cfnlambda –  sqslambda* –  ADFS credentials refreshing* •  We’re hiring •  @ben11kehoe on Twitter Conclusion