You are viewing content from a past/completed QCon

Presentation: Serverless IoT @iRobot

Track: Going Serverless

Location: Ballroom A

Day of week: Wednesday

Slides: Download Slides

Level: Intermediate

Persona: Architect, Backend Developer, CTO/CIO/Leadership, Developer, General Software, Mobile Developer

Share this on:

Abstract

iRobot entered the Smart Home market with the launch of our first internet-connected Roomba in 2015. Despite a long history of developing networked robots and selling millions of (unconnected) consumer robots per year, building an elastic, scalable cloud infrastructure for the Internet of Things was outside of our core expertise. Utilizing serverless architecture enabled us to completely bypass that undifferentiated lifting and focus on delivering features.

Question: 

What is the focus of your work today?

Answer: 

I help guide and shape our cloud architecture and how we integrate into the Smart home from a technology perspective—we are just about 100% Amazon.

We are also 100% Serverless for our production customer facing application that supports our connected robots and apps.

Question: 

What technology do you use at iRobot?

Answer: 

Our analytics stack uses Spark, but that's separate from our front-end application.

There's no unmanaged EC2, there's no Docker, no Kubernetes - all the computation is happening and Lambda. Then we stitch that together with about two dozen AWS services, really fronted primarily by AWS IoT to enable the connections for our robots.

Question: 

How did the transition to AWS play out for iRobot?

Answer: 

When we launched our first connected Roomba in 2015, we had a full solution IoT cloud provider, that even before launch we knew didn't really scale the way we needed it to, and didn't really have the extensibility to do the sort of integrations and data platform plays that we had in mind.

We knew that we had to migrate. We looked across a bunch of Cloud providers, and settled on AWS IoT our connection layer and then AWS services behind that. iRobot is an established device manufacturer; we have a history of networked robotics and we've built telepresence robotics, but those were sort of single tenant enterprise systems where when you bought it, there'd be some servers installed in the rack somewhere for you. So we didn't have the background in scalable, elastic cloud infrastructure. Instead of having to go through the pain of learning how to do everything, going Serverless using Lambda and an AWS IoT and all these other services has enabled us to really stay lean and launch.

Question: 

What’s the motivation for this talk?

Answer: 

The goal is to communicate the benefits of how the Internet of Things is right when you're producing connected devices, and that Serverless is a natural fit there - both from a technology perspective that Serverless is often very event driven - and so is IoT. I’ll also talk about organizationally our ability to do all this in a very rapid and lean fashion.

Question: 

How you you describe the persona and level of the target audience?

Answer: 

I think it's a cross between architect and CTO because there's a lot of organizational benefits. The operations become simpler but they also become different - and there's a lot of important expectations to set. So in ingoing Serverless, it's the notion of there's no cloud, there's only somebody else's computer. AWS is operating all of these servers for us and providing a very high level interface to it. It means that we don't have control, and so then operationally it becomes much more opaque. So when there's a provider incident your ability to remedy that is basically zero - and your visibility into when that starts and how the remedy progresses can be very limited - and it's very frustrating in the moment. You have to set expectations around what we're going to be able to know in our organization and also to sort of keep your eye on the ball of as a total cost of ownership if we had built this ourselves not only would it be costing us more but we would be building it worse. We would be having more incidents even though we'd have more control over what was going on.

Question: 

What are some of the pitfalls you’ll talk about when it comes to Serverless?

Answer: 

So we decided that for this product we didn't need to do high availability pieces. High availability can be difficult with existing Serverless offerings - the concept of an availability zone and in Amazon where you're still within the same data center or region essentially but you can fail between these without your cost spiking way up. Lambda doesn't do that. Lambda you have a big lever to pull and then switch everything over to another region, and setting up the data replication and everything that goes along with it is both expensive and complicated.

Another downside is that it may not do exactly what you want it to do. It's a service and it is what it is. I'm never completely satisfied with the lack of control over partitioning, the DynamoDB has to it hot partitions and there's not much you can do about it. But at the same time if I was going to say OK we're going to ditch that for Cassandra, that's a huge amount of overhead that I have to take on. So I'd rather deal with the DynamoDB rough edges: so that's like buying the “hairless yak”, but it may only have three legs.

Question: 

What do you think your persona will walk away from after hearing your talk?

Answer: 

I think it's a couple of things. One is that Serverless is really powerful in accelerating the pace of innovation, being a full force multiplier for your organization - that we've been able to do all of this with very few people, and that it requires a mindset change it's a paradigm shift in a way, that comes with pluses and minuses that really require a big picture view to make sure that you know that what you're doing is the right thing. Because it's different enough that the individual pieces can sometimes seem like a jarring transition.

Question: 

What technology problem keeps you up at night?

Answer: 

All of the all the rough edges of Serverless. How it goes from being each of these services doesn't necessarily have everything you need. And we're still not to feature parity so there's a number of things we're missing in the security space in the operational space, and in the application space. Sort of service discovery for service components is not really a solved problem. Security monitoring is not a solved problem. People are working on it, but there's a lot of these pieces that just aren't all quite there. And so the technology problem that keeps me up is how quick do we get to maturity in all those spaces?

Speaker: Ben Kehoe

Cloud Robotics Research Scientist @iRobot

Ben Kehoe is a Cloud Robotics Research Scientist at iRobot, and uses the internet to enable robots to do more and better things. He completed his PhD in December 2014 at UC Berkeley, with a dissertation on cloud-based robot grasping. His interests include the Internet of Things, the Connected Home, scalable, developer-friendly cloud architecture, and stamping out the scourge of servers.

Find Ben Kehoe at

2020 Tracks

  • Architecting for Confidence: Building Resilient Systems

    Your system will fail. Build systems with the confidence to know when they do and you won’t.

  • Remotely Productive: Remote Teams & Software

    More and more companies are moving to remote work. How do you build, work on, and lead teams remotely?

  • Operating Microservices

    Building and operating distributed systems is hard, and microservices are no different. Learn strategies for not just building a service but operating them at scale.

  • Distributed Systems for Developers

    Computer science in practice. An applied track that fuses together the human side of computer science with the technical choices that are made along the way

  • The Future of APIs

    Web-based API continue to evolve. The track provides the what, how, and why of future APIs, including GraphQL, Backend for Frontend, gRPC, & ReST

  • Resurgence of Functional Programming

    What was once a paradigm shift in how we thought of programming languages is now main stream in nearly all modern languages. Hear how software shops are infusing concepts like pure functions and immutablity into their architectures and design choices.

  • Social Responsibility: Implications of Building Modern Software

    Software has an ever increasing impact on individuals and society. Understanding these implications helps build software that works for all users

  • Non-Technical Skills for Technical Folks

    To be an effective engineer, requires more than great coding skills. Learn the subtle arts of the tech lead, including empathy, communication, and organization.

  • Clientside: From WASM to Browser Applications

    Dive into some of the technologies that can be leveraged to ultimately deliver a more impactful interaction between the user and client.

  • Languages of Infra

    More than just Infrastructure as a Service, today we have libraries, languages, and platforms that help us define our infra. Languages of Infra explore languages and libraries being used today to build modern cloud native architectures.

  • Mechanical Sympathy: The Software/Hardware Divide

    Understanding the Hardware Makes You a Better Developer

  • Paths to Production: Deployment Pipelines as a Competitive Advantage

    Deployment pipelines allow us to push to production at ever increasing volume. Paths to production looks at how some of software's most well known shops continuous deliver code.

  • Java, The Platform

    Mobile, Micro, Modular: The platform continues to evolve and change. Discover how the platform continues to drive us forward.

  • Security for Engineers

    How to build secure, yet usable, systems from the engineer's perspective.

  • Modern Data Engineering

    The innovations necessary to build towards a fully automated decentralized data warehouse.

  • Machine Learning for the Software Engineer

    AI and machine learning are more approachable than ever. Discover how ML, deep learning, and other modern approaches are being used in practice by Software Engineers.

  • Inclusion & Diversity in Tech

    The road map to an inclusive and diverse tech organization. *Diversity & Inclusion defined as the inclusion of all individuals in an within tech, regardless of gender, religion, ethnicity, race, age, sexual orientation, and physical or mental fitness.

  • Architectures You've Always Wondered About

    How do they do it? In QCon's marquee Architectures track, we learn what it takes to operate at large scale from well-known names in our industry. You will take away hard-earned architectural lessons on scalability, reliability, throughput, and performance.