Presentation: Serverless IoT @iRobot

Track: Going Serverless

Location: Ballroom A

Duration: 2:55pm - 3:45pm

Day of week: Wednesday

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.

Interview

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

Similar Talks

Principal Software Engineer @AppDynamics
Director of Vulnerability Research @Endgame
Technical Program Manager @Questback
Graphics Programmer & Academy Award Winning Computer Graphics Researcher
Senior Software Engineer, Video Games, 3D Graphics, C++, Mobile
Product Management and Marketing @Datacoral

.

Tracks

  • Architectures You've Always Wondered About

    Architectural practices from the world's most well-known properties, featuring startups, massive scale, evolving architectures, and software tools used by nearly all of us.

  • Going Serverless

    Learn about the state of Serverless & how to successfully leverage it! Lessons learned in the track hit on security, scalability, IoT, and offer warnings to watch out for.

  • Microservices: Patterns and Practices

    Stories of success and failure building modern Microservices, including event sourcing, reactive, decomposition, & more.

  • DevOps: You Build It, You Run It

    Pushing DevOps beyond adoption into cultural change. Hear about designing resilience, managing alerting, CI/CD lessons, & security. Features lessons from open source, Linkedin, Netflix, Financial Times, & more. 

  • The Art of Chaos Engineering

    Failure is going to happen - Are you ready? Chaos engineering is an emerging discipline - What is the state of the art?

  • The Whole Engineer

    Success as an engineer is more than writing code. Hear inward looking thoughts on inclusion, attitude, leadership, remote working, and not becoming the brilliant jerk.

  • Evolving Java

    Java continues to evolve & change. Track covers Spring 5, async, Kotlin, serverless, the 6-month cadence plans, & AI/ML use cases.

  • Security: Attacking and Defending

    Offense and defensive security evolution that application developers should know about including SGX Enclaves, effects of AI, software exploitation techniques, & crowd defense

  • The Practice & Frontiers of AI

    Learn about machine learning in practice and on the horizon. Learn about ML at Quora, Uber's Michelangelo, ML workflow with Netflix Meson and topics on Bots, Conversational interfaces, automation, and deployment practices in the space.

  • 21st Century Languages

    Compile to Native, Microservices, Machine learning... tailor-made languages solving modern challenges, featuring use cases around Go, Rust, C#, and Elm.

  • Modern CS in the Real World

    Applied trends in Computer Science that are likely to affect Software Engineers today. Topics include category theory, crypto, CRDT's, logic-based automated reasoning, and more.

  • Stream Processing In The Modern Age

    Compelling applications of stream processing using Flink, Beam, Spark, Strymon & recent advances in the field, including Custom Windowing, Stateful Streaming, SQL over Streams.  

Conference for Professional Software Developers