How Cloudflare Migrated Browser Run to Containers for Faster, More Scalable Performance

By

Introduction

Browser Run, Cloudflare's platform for programmatic headless browser automation, has undergone a major upgrade by rebuilding on Cloudflare Containers. This migration has unlocked significant improvements: 4x higher concurrency limits (up to 120 concurrent browsers), 60 browsers per minute via Workers binding, and over 50% faster Quick Action response times. What's more, these enhancements are live now—no code changes required on your end. In this guide, we'll walk through the step-by-step process Cloudflare used to achieve this transformation, from identifying infrastructure bottlenecks to rolling out Container-powered browsers globally. Whether you're a platform engineer curious about migration strategies or a Browser Run user wanting to understand the underlying improvements, this article provides a transparent look at how we made Browser Run faster, more reliable, and easier to scale.

How Cloudflare Migrated Browser Run to Containers for Faster, More Scalable Performance
Source: blog.cloudflare.com

What You Need

  • Familiarity with Cloudflare Workers – understanding how Workers intercept and route requests is key.
  • Basic knowledge of Durable Objects and Containers – the new architecture relies on DO-enabled Containers.
  • Access to Browser Run – a Cloudflare account with Browser Run enabled (free accounts qualify).
  • Optional: A test script or application to compare performance before and after the migration (though no action is needed from you).

Step-by-Step Migration Guide

Step 1: Assess Shared Infrastructure Limitations

Before the migration, Browser Run shared infrastructure with Browser Isolation (BISO). While the two services are technically similar, BISO's larger container images caused slower startup times and hindered development velocity. More critically, BISO browsers weren't optimally distributed globally, leading to higher latency and less resilience. Additionally, BISO users typically maintain long, steady sessions, while Browser Run usage is short and spiky—creating scaling bottlenecks and availability delays. Document these pain points to justify the need for a dedicated, isolated platform.

Step 2: Plan a Gradual Migration with a Dual-Support Worker

Cloudflare inserted a Worker into the incoming request path. This Worker acted as a router, sending a subset of requests to Container-based browsers while the rest continued using BISO. This dual-support approach allowed side-by-side comparison of performance, bug isolation, and confidence building before full rollout. Start by defining metrics (e.g., startup time, response latency, error rates) to measure success.

Step 3: Validate with Controlled Pilot Groups

First, route all Quick Actions endpoints (e.g., screenshots, PDF rendering, content extraction) to Container browsers. Monitor performance and compare with BISO baselines. This step—the smallest, most focused use case—helps catch implementation bugs early. After Quick Actions are stable, expand to include Workers browser binding connections for free accounts. Free-tier usage is lower volume, making it safe to test at scale.

How Cloudflare Migrated Browser Run to Containers for Faster, More Scalable Performance
Source: blog.cloudflare.com

Step 4: Expand to Pay-As-You-Go Accounts

Once free account traffic proves stable, enable Container browsers for pay-as-you-go (PAYG) accounts. PAYG users generate more varied and higher-volume requests, providing a robust test for scalability and reliability. Use this phase to fine-tune load balancing, resource allocation, and error handling. Throughout, ensure that existing Workers and bindings continue to work without any re-deployment from customers.

Step 5: Full Rollout to Contract Customers

After validating stability with PAYG accounts, migrate the remaining contract customers. Because the previous steps required no user action, the transition to full Container support is seamless. Post-migration, confirm that the new limits (60 browsers/min per binding, 120 concurrent) are active and that Quick Action response times have dropped more than 50%.

Tips for a Successful Migration

  • Test early, test often. The dual-support Worker is invaluable—keep it in place until you have high confidence in the new infrastructure.
  • Monitor metrics relentlessly. Compare baseline performance (from BISO phase) against each new step. Pay special attention to p95 latency and error rates.
  • Communicate with users. Cloudflare ensured customers needed zero changes. You should too—avoid breaking existing APIs or requiring redeployment.
  • Leverage your own platform. By building on Cloudflare Containers and Durable Objects, the team could fix pain points before external customers encountered them. If you run a platform, dogfood your own products.
  • Plan for short, spiky usage. Browser Run’s pattern is different from long-lived sessions. Ensure your container startup times are fast and your scaling policies handle bursts efficiently.

By following these steps, you can achieve a similar transformation: faster performance, higher scalability, and a smoother developer experience. Browser Run is now more powerful than ever—and the best part is, you don't have to lift a finger to take advantage of it.

Tags:

Related Articles

Recommended

Discover More

Exploring the Studio Violin: A Physically Modeled Bowed-String Instrument in InstrudioYour Step-by-Step Guide to Flutter & Dart's 2026 Roadmap: Prepare for the FutureGitHub Overhauls Status Page with New Incident Classification and Per-Service Uptime MetricsLatest Linux Stable Kernels Address Critical AEAD Socket VulnerabilityFrom Digital Chaos to Clarity: How Gemini Organizes Your Research Folders