You are viewing content from a past/completed QCon

Presentation: Next Generation Client APIs in Envoy Mobile

Track: The Future of the API: REST, gRPC, GraphQL and More

Location: Mountbatten, 6th flr.

Duration: 4:10pm - 5:00pm

Day of week: Tuesday

Slides: Download Slides

Share this on:

This presentation is now available to view on InfoQ.com

Watch video with transcript

What You’ll Learn

  1. Hear about the journey Lyft made with their APIs and how Envoy Mobile helped.
  2. Learn about Envoy Mobile and the networking problems it solves.

Abstract

Relentlessly pursuing a consistent user experience means deploying a server with 100% reliability is ineffective if it’s not matched by our mobile applications. Learn how Lyft’s Client Networking team has evolved Lyft APIs to create consistency between mobile platforms and the server.

The first part of the talk will guide the audience through the journey of Mobile APIs at Lyft. Starting with hand-written JSON and iterating all the way to consistently generated client and server code based on IDL definitions of the APIs. The second part of the talk will focus on how the team has reaped the benefits of API generation to experiment with the network transport layer. This process has culminated in Envoy Mobile which enables teams to build great experiences by deploying Envoy as one networking stack across the server and millions of mobile devices. The talk will close with recent developments the team has made with Envoy Mobile and the exciting roadmap ahead.

Question: 

What is the work that you're doing today?

Answer: 

Michael: We are working on the Envoy mobile project, which is the subject of our talk as well. It's a client networking library. It's the baseline definition of what it is, but it's also a rethinking of how clients can interact with back-end services. I think a lot of us are probably familiar with the service mesh now, and the idea that you can have a distributed set of instances that represent different services that all communicate with each other. And that's becoming a more common paradigm for back-end systems. But traditionally we've thought of mobile clients as outside of that and have a strong delineation between the back-end and the client. Envoy Mobile rethinks that paradigm and works to bring a lot of the benefits we realized from having a back-end service mesh built on common infrastructure and Enjoy being the basis. With Envoy Mobile we have the same technology stack run everywhere. Envoy Mobile works to bring all the benefits that Envoy and similar technologies have realized on the back-end out to mobile clients as well. In addition to also just being a network library.

Michael: This was a brand new project that started at Lyft. We came up with the idea when we were thinking about what would be a good networking solution for our mobile clients. And we considered other possibilities that are out there. There are other mobile networking libraries that are out there in addition to the native stacks. But none of them really met all the needs we wanted. We kept looking back at Envoy and all the benefits we had on the back-end by using Envoy,.and we decided, well, could this be made into a mobile networking library? Today we're getting very close to launching this into production at Lyft, running it on alpha and beta clients. We've been working on it for the past nine months. And it's still crazy to think that it's only been nine months and we've gotten this far, but it's absolutely made work exciting.

Jose: The thing that I would like to highlight here is that from the beginning, the Envoy Mobile project has been open source. So version 0.1 of the library was just some demos of we're able to build this and we're able to use this. But there was no illusion that this was a production ready library and that was a very calculated approach that we took. We wanted to have this project be out in the open from the beginning because we think similar to how Envoy has grown due to a virtuous cycle thanks to its open source community. Building these tools out in the open really allows us to start collaborating as early as possible in building technology that we think really has the power of changing not only how networking is done in mobile clients, but really rethinking how we do networking end to end and how that relates to the evolution of APIs, both internal and public facing APIs.

Question: 

What's the goal of your presentation?

Answer: 

Jose: If I can start for this one, the goal of this talk is two fold. First, we want to talk about what shape of data that we're sending and how this has evolved for client APIs at Lyft. And then after that, we lead into how that evolution led to the culmination of rethinking the transport layer and introducing Envoy Mobile as this new concept of how we are going to transport our APIs. 

Michael: Having spent some time working on mobile networking stacks and solving the same problems, you're trying to solve the same problems repeatedly. It drove us to finally try to look for a solution which could give us something that stopped having to keep reinventing the wheel. There's lots of mobile networking libraries out there already. Part of the talk is seeing the why we embarked on this, the problems we saw, the parallels we saw with the same problems that exist in the back-end that we were seeing with the mobile clients involving visibility into the network stack and network connectivity and facing degenerate conditions or things stop working the way they work when everything's ideal. That pushes into the direction of coming up with a common solution to what we eventually decided it's a common set of problems.

Question: 

What do you think would be the ideal attendee persona?

Answer: 

Michael: This is a technically focused talk so definitely oriented more so towards engineers. We do talk about some of infrastructural operational issues as well. But I'd say the talk is geared both towards mobile engineers as well as back-end engineers.

Jose: I'd like to add that this talk is broadly geared towards people working at companies that are facing challenges around an inconsistent API between their mobile platforms, iOS, Android and the back-end.

Question: 

What are some of the actionable takeaways?

Answer: 

Michael: I guess at a high level, a big one is that we feel that for a while now in the industry, we've been all dealing with a very similar set of problems. API evolution is a big one. Moving from the idea of making HTTP calls to REST to model based APIs, strongly typed APIs that pass standardised data back and forth between services as well as functioning in conditions where things will fail. Expected interactions across API will fail. There is a growing feeling we have that we're continuing to encounter these problems. And there's not a good single solution which works to address them or at least provide a foundation for addressing them. And this project aims to provide a solution.

Speaker: Jose Nino

Software Engineer @lyft and Envoy Maintainer

Jose Nino worked on Lyft’s Networking team for 2+ years building out infrastructure that enabled Lyft to scale technically and socially as it developed and rolled out an Envoy-based service-oriented architecture. He was instrumental in building control plane technologies, and resilience improvements that allowed Lyft to grow to a several 1000 engineer org with 500+ micro-services. Most recently he became part of the founding team behind the Envoy Mobile project, where he is taking his experience in data center networking to the mobile world. Jose has spoken about these topics at several technology conferences.

Find Jose Nino at

Last Year's Tracks