BuzzFeed receives more than 7 billion page views per month, and hosts content in a dozen languages around the world. From fun quizzes and social media‑targeted content, to serious journalism, the demand for pushing content never slows down. The company had always run a single monolithic application to serve all of its content. Now Buzzfeed is transitioning to microservices.
Most enterprises today want to transition their IT services to some form of microservices in order to increase agility, and enhance team autonomy. But for BuzzFeed, the transition was causing some issues between their CDN and AWS.
John Cleveley, Senior Engineering Manager at BuzzFeed, explains: “Over the last year we slowly moved to microservices, which made it more difficult to route URLs to the correct backend application. We started doing that in the CDN but found that the configuration there became more and more complicated. Making a change became quite difficult in terms of making the actual change and in verifying that it was actually going to work and not break anything else.”
Cleveley says that the transition to microservices presented a great opportunity for BuzzFeed to upgrade from NGINX Open Source to NGINX Plus. “As we’ve moved to microservices, we’ve realized that we needed a much smarter way of routing pages to our applications. NGINX Plus allowed us to make that configuration much more easily deployable. When we added it to the system we saw very little latency added to the request, which was great,” says Cleveley.
NGINX Plus also offered a number of benefits that enabled the team to achieve agility and save time and effort. For a start, resolving DNS with NGINX Plus meant that the ever‑changing cloud landscape hosting BuzzFeed’s infrastructure was never jumbled when a server changed.
“We had DNS resolving with NGINX Plus, which meant we were using quite sophisticated upstreams and server zones. When our AWS load balancers changed IP addresses, NGINX Plus allowed us to ensure that those DNS entries were updated,” says Cleveley.
NGINX Plus also offers enhanced metrics, which gave BuzzFeed’s many operational teams better visibility into the inner workings of their services when things went wrong.
“It gave us more metrics than we got in the open source version. This was really important for our operational staff. We could see exactly which upstreams were failing, and which status code was actually being served from the upstream service,” says Cleveley.
“With NGINX Plus – and the extra metrics it provides – it made it super easy for our operational teams to see what is actually going on, and if there was a spike of
500 errors coming through, we knew exactly which stream was causing the problem.”
Finally, the BuzzFeed team also appreciated the top‑notch support that comes with NGINX Plus. “A big benefit of NGINX Plus was the support we got around it. We knew we had someone we could contact and get the individual support we needed. The first time we had support with NGINX Plus, we received a response within the hour. The actual question was fairly complex, and we got a very good response straight away and the conversation was really good,” says Cleveley.
Cleveley puts it best himself: “We started with the open source version. We realized that NGINX Plus – with its better support, with its DNS resolving, the advanced metrics that we get out – was the way forward. NGINX Plus allowed us to get to the final mile.” The BuzzFeed team is now well on its way to a full transition to microservices thanks to NGINX.
BuzzFeed originated in 2006 as a pop culture news and media site. By 2011, the company had grown to become a serious media firm, with major journalistic hires and a new arm dedicated to investigative journalism. Today, the company operates around the globe and reaches as high as number 188 in the Alexa Web traffic rankings, worldwide. BuzzFeed publishes content in numerous languages and has won the National Magazine Award, and been nominated for a Pulitzer Prize.