Engineering Blog

Kafka on PaaSTA: Running Kafka on Kubernetes at Yelp (Part 2 - Migration)

In a previous post we detailed the architecture and motivation for developing our new PaaSTA-based deployment model. We’d now like to share our strategy for seamlessly migrating our existing Kafka clusters from EC2 to our Kubernetes-based internal compute platform. To help facilitate the migration, we built tooling which interfaced with various components of our cluster architecture to ensure that the process was automated and did not impair clients’ ability to read or write Kafka records. Migrating Kafka on EC2 to Kafka on PaaSTA Background In the status quo implementation, EC2-backed Kafka brokers within a cluster were associated with an auto...

Continue reading

Server Side Rendering at Scale

At Yelp, we use Server Side Rendering (SSR) to improve the performance of our React-based frontend pages. After a string of production incidents in early 2021, we realized our existing SSR system was failing to scale as we migrated more pages from Python-based templates to React. Throughout the rest of the year, we worked to re-architect our SSR system in a way that increased stability, reduced costs, and improved observability for feature teams. Background What Is SSR? Server Side Rendering is a technique used to improve the performance of JavaScript templating systems (such as React). Rather than waiting for the...

Continue reading

Developing a New Native Ads Dashboard Using Server-Driven UI

Updating the ads experience for Yelp Advertisers by creating a new Native Ads Dashboard using Server-Driven UI. What is the Ads Dashboard? The Yelp Ads Dashboard is a tool that advertisers can use to update their ad settings and keep track of how their ad is performing. In 2020, we revamped the Ads Dashboard web experience to provide greater visibility into an ad’s performance and better access to control and customize options from a single page. Ads Dashboard on Desktop Recreating the Experience on Mobile In order to ensure consistency across platforms from both a visual and feature standpoint, we...

Continue reading

Kafka on PaaSTA: Running Kafka on Kubernetes at Yelp (Part 1 - Architecture)

Yelp’s Kafka infrastructure ingests tens of billions of messages each day to facilitate data driven decisions and power business-critical pipelines and services. We have recently made some improvements to our Kafka deployment architecture by running some of our clusters on PaaSTA, Yelp’s own Platform as a Service. Our Kubernetes (k8s) based deployment leverages a custom Kubernetes operator for Kafka, as well as Cruise Control for lifecycle management. Kafka on PaaSTA on Kubernetes Architectural Motivations and Improvements In the past, all of our Kafka clusters ran on dedicated EC2 instances on AWS. Kafka was deployed directly on these hosts and configuration...

Continue reading

Building a unified setup flow to better onboard business users

At Yelp we are always striving to optimize our user experience so we can help guide our customers to success. We aim to streamline the onboarding process for business owners by centralizing customer products into a single page. The Challenge Yelp offers an array of free and paid products that help local businesses connect with consumers. To set up these products on their Yelp page, business owners previously had to navigate through multiple tabs, which negatively impacted product setup rates (roughly 55%) and lowered overall user engagement. Previously, the only way businesses could set up Yelp advertising products was through...

Continue reading

Building a server-driven foundation for mobile app development

Yelp has many teams of mobile developers who collectively maintain two different mobile apps on iOS and Android: Yelp (hereinafter “Consumer App”) and Yelp for Business (hereinafter “Biz App”). We’re always looking for ways to ship features more quickly and consistently on all these platforms! We adopt vendor and open-source libraries when possible, and we develop our own shared libraries when necessary. While many teams were already independently adopting server-driven UI (SDUI) to build their features faster and cheaper, we felt something was missing – a foundation that tied all our libraries together into a shared, server-driven, end-to-end solution for...

Continue reading

Awesome Women in Engineering Hosts its First Virtual Summit

Yelp’s employee resource group for women in engineering, Awesome Women in Engineering (AWE), recently held its first virtual summit! The summit was designed for women and allies at Yelp to learn, network, and have fun. AWE started in 2013 with a mission to build a strong community for women and allies at Yelp by facilitating professional career-building activities, networking, leadership, and mentorship opportunities. As a resource group, we provide support and organize activities targeted towards professional growth for women engineers, helping them to maximize their potential at Yelp and beyond. We are excited to share the different activities that helped...

Continue reading

Nrtsearch: Yelp’s Fast, Scalable and Cost Effective Search Engine

Search and ranking are part of many important features of Yelp - from looking for a plumber to showing relevant photos of the dish you search for. These varied use-cases led to the creation of Yelp’s Elasticsearch-based ranking platform, allowing real-time indexing, learning-to-rank, lesser maintenance overhead, and enabling access to search functionality to more teams at Yelp. We recently built Nrtsearch, a Lucene-based search engine, to replace Elasticsearch. Why Replace Elasticsearch? Our Elasticsearch-based ranking platform had been working well with a wide variety of applications deployed on it. But as we onboarded more use-cases, Elasticsearch costs didn’t scale as well...

Continue reading