Blog Logo
TAGS

Bringing Kestrel + YARP to Azure App Services

In this post, the engineering work required to change a critical platform component with code paths that are exercised billions of times a day while minimizing service disruptions and maintaining SLA for customers is discussed. This involved transitioning the App Service Frontend fleet to Kestrel + YARP with motivations for doing this work, explanations of some of the more interesting challenges, issues, and bugs encountered along the way, and the results and new customer scenarios enabled. Almost 80% improvement in throughput was achieved in performance tests designed to isolate the benefits, greener Azure data centers from significantly decreased per-request CPU usage, and support for modern protocols like HTTP/3. Additionally, support for new customer scenarios such as gRPC applications, per-host cipher suite configuration, custom error pages, and more was provided. Azure App Service in a nutshell and details about the FrontEndRole and its main purposes are also provided.