Skip to main content
If you run your own Chrome — in Docker, on Kubernetes, or as a process on a box — migrating is less about API calls and more about deleting infrastructure.

What you stop operating

The connection change

Whatever you point Playwright or Puppeteer at today becomes a Kernel cdp_ws_url:

Then make these three changes

That gets you running. The benefit is in what comes next, in this order:
  1. Stop connecting over CDP for the hot path. Playwright execution runs your code inside the browser’s VM: no round trip per action, no connection to keep alive, and no CDP fingerprint for anti-bot vendors to read. See how you drive the browser.
  2. Replace your session-state handling with profiles, and your login scripts with managed auth.
  3. Delete your warm-pool code. Browser pools hold pre-configured browsers with a fill rate, and idle pool browsers aren’t billed.

Two things to check before cutting over

  • Region. Browsers default to us-east. If your loop runs elsewhere, either move it or run it on the App Platform — otherwise you trade container start-up latency for network latency.
  • Isolation model. Each Kernel browser is a microVM with its own kernel, so per-browser isolation is stronger than a shared-kernel container. If you were multiplexing tabs across one Chrome to save memory, use more browsers instead.
If you’re moving a large or unusual fleet, talk to us — its shape usually determines whether pools, on-demand browsers, or the App Platform is the right target.