IP Library Granted Patent US 11,561,805
Granted Patent B2
US 11,561,805 · App. 17/114,382 · Granted Jan 24, 2023

Cloud computing platform that executes third-party code in a distributed cloud computing network

Inventors: Kenton Taylor Varda (Palo Alto, CA); Zachary Aaron Bloom (San Francisco, CA); Marek Przemyslaw Majkowski (Warsaw, PL); Ingvar Stepanyan (London, GB); Kyle Kloepper (Champaign, IL); Dane Orion Knecht (Austin, TX); John Graham-Cumming (London, GB); Dani Grant (Los Altos, CA)
Assignee: CLOUDFLARE, INC.
G06F9/4484G06F9/45558G06F21/53H04L9/40H04L67/02H04L67/10H04L67/34H04L67/53H04L67/63G06F2009/45587
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,561,805
App. No.
17/114,382
Granted
Jan 24, 2023
Kind
B2
Abstract

A compute server receives a request from a client device that triggers execution of a third-party code piece. The compute server is one of multiple compute servers that are part of a distributed cloud computing network. The request may be an HTTP request and directed to a zone. A single process at the compute server executes the third-party code piece in an isolated execution environment. The single process is also executing other third-party code pieces in other isolated execution environments respectively. A response is generated to the request based at least in part on the executed third-party code piece, and the generated response is transmitted to the client device.

Claims (44)

1. A method, comprising:

receiving, at a compute server from a client device, a first request that triggers execution of a first one of a plurality of third-party code pieces, and wherein the first request is directed to a first zone;

executing, by a single process at the compute server, the first one of the plurality of third-party code pieces, wherein the first one of the plurality of third-party code pieces is run in a first one of a plurality of isolated execution environments, wherein each of the other plurality of third-party code pieces are run in the other plurality of isolated execution environments respectively and executed by the single process;

generating, as a result of the executing the first one of the plurality of third-party code pieces, a second request that triggers execution of a second one of the plurality of third-party code pieces, wherein the second one of the plurality of third-party code pieces is run in a second one of the plurality of isolated execution environments, and wherein the second request is directed to a second zone;

executing, by the single process, the second one of the plurality of third-party code pieces;

generating a response to the first request based at least in part on the executed first one of the plurality of third-party code pieces and the executed second one of the plurality of third-party code pieces; and

transmitting the generated response to the client device.

2. The method of claim 1 , wherein executing the first one of the plurality of third-party code pieces causes a third request to be generated and transmitted to an origin server of the first zone.

3. The method of claim 1 , wherein generating the response is performed without transmitting a request to an origin server of the first zone.

4. The method of claim 1 , further comprising:

determining the first request triggers execution of the first one of the plurality of third-party code pieces by matching the first zone to a predetermined matching pattern that associates the first one of the plurality of third-party code pieces to the predetermined matching pattern.

5. The method of claim 1 , wherein the compute server is one of a plurality of compute servers that are each anycasted to a same IP address, and wherein the compute server receives the first request because it is a closest one of the plurality of compute servers to the client device as determined by an anycast implementation.

6. The method of claim 5 , wherein each of the plurality of compute servers include the plurality of third-party code pieces.

7. The method of claim 1 , wherein the first one of the plurality of third-party code pieces is provided by an owner or operator of the first zone.

8. A non-transitory machine-readable storage medium of a compute server that provides instructions that, when executed by a processor, cause the processor to perform operations comprising:

receiving, at the compute server from a client device, a first request that triggers execution of a first one of a plurality of third-party code pieces, and wherein the first request is directed to a first zone;

executing, by a single process at the compute server, the first one of the plurality of third-party code pieces, wherein the first one of the plurality of third-party code pieces is run in a first one of a plurality of isolated execution environments, wherein each of the other plurality of third-party code pieces are run in the other plurality of isolated execution environments respectively and executed by the single process;

generating, as a result of the executing the first one of the plurality of third-party code pieces, a second request that triggers execution of a second one of the plurality of third-party code pieces, wherein the second one of the plurality of third-party code pieces is run in a second one of the plurality of isolated execution environments, and wherein the second request is directed to a second zone;

executing, by the single process, the second one of the plurality of third-party code pieces;

generating a response to the first request based at least in part on the executed first one of the plurality of third-party code pieces and the executed second one of the plurality of third-party code pieces; and

transmitting the generated response to the client device.

9. The non-transitory machine-readable storage medium of claim 8 , executing the first one of the plurality of third-party code pieces causes a third request to be generated and transmitted to an origin server of the first zone.

10. The non-transitory machine-readable storage medium of claim 8 , wherein generating the response is performed without transmitting a request to an origin server of the first zone.

11. The non-transitory machine-readable storage medium of claim 8 , wherein the operations further comprise:

determining the first request triggers execution of the first one of the plurality of third-party code pieces by matching the first zone to a predetermined matching pattern that associates the first one of the plurality of third-party code pieces to the predetermined matching pattern.

12. The non-transitory machine-readable storage medium of claim 8 , wherein the compute server is one of a plurality of compute servers that are each anycasted to a same IP address, and wherein the compute server receives the first request because it is a closest one of the plurality of compute servers to the client device as determined by an anycast implementation.

13. The non-transitory machine-readable storage medium of claim 12 , wherein each of the plurality of compute servers include the plurality of third-party code pieces.

14. The non-transitory machine-readable storage medium of claim 8 , wherein the first one of the plurality of third-party code pieces is provided by an owner or operator of the first zone.

15. A compute server, comprising:

a set of one or more processors; and

a non-transitory machine-readable storage medium that provides instructions that, when executed by the set of processors, cause the set of processors to perform the following operations:

receive, at the compute server from a client device, a first request that triggers execution of a first one of a plurality of third-party code pieces, and wherein the first request is directed to a first zone;

execute, by a single process at the compute server, the first one of the plurality of third-party code pieces, wherein the first one of the plurality of third-party code pieces is run in a first one of a plurality of isolated execution environments, wherein each of the other plurality of third-party code pieces are run in the other plurality of isolated execution environments respectively and executed by the single process;

generate, as a result of the executing the first one of the plurality of third-party code pieces, a second request that triggers execution of a second one of the plurality of third-party code pieces, wherein the second one of the plurality of third-party code pieces is run in a second one of the plurality of isolated execution environments, and wherein the second request is directed to a second zone;

execute, by the single process, the second one of the plurality of third-party code pieces;

generate a response to the first request based at least in part on the executed first one of the plurality of third-party code pieces and the executed second one of the plurality of third-party code pieces; and

transmit the generated response to the client device.

16. The compute server of claim 15 , wherein execution of the first one of the plurality of third-party code pieces causes a third request to be generated and transmitted to an origin server of the first zone.

17. The compute server of claim 15 , wherein generation of the response is to be performed without transmitting a request to an origin server of the first zone.

18. The compute server of claim 15 , wherein the operations further include:

determine the first request triggers execution of the first one of the plurality of third-party code pieces by matching the first zone to a predetermined matching pattern that associates the first one of the plurality of third-party code pieces to the predetermined matching pattern.

19. The compute server of claim 15 , wherein the compute server is one of a plurality of compute servers that are each anycasted to a same IP address, and wherein the compute server receives the first request because it is a closest one of the plurality of compute servers to the client device as determined by an anycast implementation.

20. The compute server of claim 19 , wherein each of the plurality of compute servers is to include the plurality of third-party code pieces.

21. The compute server of claim 15 , wherein the first one of the plurality of third-party code pieces is to be provided by an owner or operator of the first zone.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2020
From: VARDA, KENTON TAYLOR; BLOOM, ZACHARY AARON; MAJKOWSKI, MAREK PRZEMYSLAW; STEPANYAN, INGVAR; KLOEPPER, KYLE; KNECHT, DANE ORION; GRAHAM-CUMMING, JOHN; GRANT, DANI
To: CLOUDFLARE, INC.
Reel/Frame 054569/0580 →
Continuity (3)
Continuation 16450585 · Jun 24, 2019
Continuation 16182522 · Nov 6, 2018
Related Publication 20210089328A1 · Mar 25, 2021