Richard Boulton

Author Archives: Richard Boulton

Building Cloudflare on Cloudflare

Building Cloudflare on Cloudflare
Building Cloudflare on Cloudflare

Cloudflare’s website, application security and performance products handle upwards of 46 million HTTP requests per second, every second. These products were originally built as a set of native Linux services, but we’re increasingly building parts of the system using our Cloudflare Workers developer platform to make these products faster, more robust, and easier to develop. This blog post digs into how and why we’re doing this.

System architecture

Our architecture can best be thought of as a chain of proxies, each communicating over HTTP. At first, these proxies were all implemented based on NGINX and Lua, but in recent years many of them have been replaced - often by new services built in Rust, such as Pingora.

The proxies each have distinct purposes - some obvious, some less so. One which we’ll be discussing in more detail is the FL service, which performs “Front Line” processing of requests, applying customer configuration to decide how to handle and route the request.

Building Cloudflare on Cloudflare

This architecture has worked well for more than a decade. It allows parts of the system to be developed and deployed independently, parts of the system to be scaled independently, and traffic to be routed to different nodes in Continue reading

Starting as an Engineering Manager

Starting as an Engineering Manager

I joined Cloudflare last week as an Engineering Manager, having previously spent 4 years working as the head of the software engineering community in the UK Government’s Digital Service (GDS). You only get one chance to be a new starter at each new place, so it’s important to make the most of the experience. Also, the job of Engineering Manager is different in every organisation, so it’s important to understand what the expectations and need for the role is in Cloudflare.

To help with this, I started by sketching out some objectives for my first week.

  • Meet all my team members in a 1 to 1 meeting
  • Know the skills and motivations of each team member
  • Write down the expectations of my manager and team
  • Write down the scope of the job
  • Write a list of technologies to get an understanding of
  • Be mentored by one of the team in one of these technologies
  • Review what I can do to help with diversity and inclusion
  • Understand the management structure - draw a diagram of it
  • Spend 30 minutes with the most senior person I can to understand their aims
  • Play with the product myself

Some of these are a bit Continue reading