Stephan Jaensch - Building mobile APIs with services at Yelp [EuroPython 2015] [21 July 2015] [Bilbao, Euskadi, Spain]
At Yelp, we ship code multiple times a day and have maintained this pace as our team has grown to 300+ and our codebase to several million lines of Python code. This talk explores the pain points we experienced along the ways, how our service-oriented architecture alleviates them, and the infrastructure we built to develop, test, and deploy in this highly-distributed environment. As a case study, we’ll be looking at the backend powering the new Yelp Business Owner Android and iOS apps.
At the start, most of the development at Yelp occurred in a single, monolithic web application, creatively named “yelp-main” (naming is hard!). As the company grew, our developers were spending increasing amounts of time trying to ship code. After recognizing this pain point, we started experimenting with a service oriented architecture to scale the development process, and so far it’s been a resounding success. Over the course of the last three years, we’ve gone from writing our first service to having over seventy production services. Along the way, we’ve dabbled with Docker containers, Pyramid, SQLAlchemy, uWSGI, gevent, and virtualenv in an effort to build the next-generation service platform for our engineers.