IP Library Granted Patent US 12,056,503
Granted Patent B2
US 12,056,503 · App. 18/352,920 · Granted Aug 6, 2024

Isolating applications at the edge

Inventors: Tyler McMullen (San Francisco, CA); Jonathan Foote (San Francisco, CA); Patrick Hickey (San Francisco, CA); Jason Cook (San Francisco, CA)
Assignee: Fastly, Inc.
G06F9/445G06F8/41H04L67/02
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 12,056,503
App. No.
18/352,920
Granted
Aug 6, 2024
Kind
B2
Abstract

Disclosed herein are enhancements for deploying application in an edge system of a communication network. In one implementation, a runtime environment identifies a request from a Hypertext Transfer Protocol (HTTP) accelerator service to be processed by an application. In response to the request, the runtime environment may identify an isolation resource to support the request, initiate execution of code for the application, and pass context to the code. Once initiated, the runtime environment may copy data from the artifact to the isolation resource using the context and return control to the HTTP accelerator service upon executing the code.

Claims (63)

1. A method comprising:

identifying an application in a first language;

identifying isolation runtime parameters;

compiling the application into an assembly code;

operating the application in a simulated environment to determine whether the application complies with the isolation runtime parameters;

determining that the application does comply with the isolation runtime parameters;

generating a machine language version of the application;

producing an artifact, wherein the artifact comprises the machine language version of the application and metadata; and

deploying the artifact to one or more nodes of an edge network.

2. The method of claim 1 , wherein the metadata comprises global variables used by the application.

3. The method of claim 1 , wherein the metadata comprises configuration requirements of the application.

4. The method of claim 1 , wherein the metadata comprises execution constraints of the application.

5. The method of claim 1 , wherein the machine language version of the application corresponds to a programming language native to the one or mode nodes of the edge network.

6. The method of claim 1 further comprising, in a node of the one or more nodes:

identifying, in an isolation runtime environment for the node, a request from a Hypertext Transfer Protocol (HTTP) accelerator service to be processed by the application;

identifying an isolation resource from a plurality of isolation resources reserved in advance of the request;

initiating execution of the machine-language version of the application and passing context to the machine-language version of the application;

after initiating execution of the machine-language version of the application, copying data from the artifact to the isolation resource using the context; and

returning control to the HTTP accelerator service upon executing the code.

7. The method of claim 6 , wherein the data comprises at least one variable.

8. The method of claim 6 , wherein the isolation resource comprises a memory space, wherein the context comprises an addressing pointer to a memory location in the memory space.

9. An apparatus comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled to the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media that, when executed by the processing system, direct the processing system to:

identify an application in a first language;

identify isolation runtime parameters;

compile the application into an assembly code;

operate the application in a simulated environment to determine whether the application complies with the isolation runtime parameters;

determine that the application does comply with the isolation runtime parameters;

generate a machine language version of the application;

produce an artifact, wherein the artifact comprises the machine language version of the application and metadata; and

deploy the artifact to one or more nodes of an edge network.

10. The apparatus of claim 9 , wherein the metadata comprises global variables used by the application.

11. The apparatus of claim 9 , wherein the metadata comprises configuration requirements of the application.

12. The apparatus of claim 9 , wherein the metadata comprises execution constraints of the application.

13. The apparatus of claim 9 , wherein the machine language version of the application corresponds to a programming language native to the one or mode nodes of the edge network.

14. The apparatus of claim 9 , wherein the program instructions stored on the one or more non-transitory computer readable storage media that, when executed by the processing system, further direct the processing system to, in one of the nodes of the edge network in which the artifact is deployed:

identify, in an isolation runtime environment, a request from a Hypertext Transfer Protocol (HTTP) accelerator service to be processed by the application;

identify an isolation resource from a plurality of isolation resources reserved in advance of the request;

initiate execution of the machine-language version of the application and pass context to the machine-language version of the application;

after initiating execution of the machine-language version of the application, copy data from the artifact to the isolation resource using the context; and

return control to the HTTP accelerator service upon executing the code.

15. The apparatus of claim 14 , wherein the data comprises at least one variable.

16. The apparatus of claim 14 , wherein the isolation resource comprises a memory space, wherein the context comprises an addressing pointer to a memory location in the memory space.

17. A method comprising:

identifying an application in a first language;

identifying isolation runtime parameters;

compiling the application into an assembly code;

operating the application in a simulated environment to determine whether the application complies with the isolation runtime parameters;

determining that the application does not comply with the isolation runtime parameters; and

providing a notification to an administrator that the application in its current state cannot be deployed.

18. The method of claim 17 , further comprising:

receiving an updated application from the administrator;

identifying updated isolation runtime parameters;

compiling the updated application into an updated assembly code;

operating the updated application in a simulated environment to determine whether the updated application complies with the isolation runtime parameters;

determining that the updated application does comply with the isolation runtime parameters;

generating a machine language version of the updated application;

producing an artifact, wherein the artifact comprises the machine language version of the updated application and metadata; and

deploying the artifact to one or more nodes of an edge network.

19. The method of claim 18 , wherein the metadata comprises global variables used by the updated application.

20. The method of claim 17 , wherein the isolation runtime parameters correspond to resources available in the one or more nodes of the edge network.

Assignments (2)
SECURITY INTEREST Recorded May 1, 2024
From: FASTLY, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS ADMINISTRATIVE AGENT
Reel/Frame 067281/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2024
From: MCMULLEN, TYLER; FOOTE, JONATHAN; HICKEY, PATRICK; COOK, JASON
To: FASTLY, INC.
Reel/Frame 067020/0986 →
Continuity (5)
Continuation 17378963 · Jul 19, 2021
Continuation 16292100 · Mar 4, 2019
Provisional Application 62637910 · Mar 2, 2018
Provisional Application 62637935 · Mar 2, 2018
Related Publication 20240020131A1 · Jan 18, 2024