IP Library › Granted Patent US 10,439,925
Granted Patent B2
US 10,439,925 · App. 15/907,881 · Granted Oct 8, 2019

Sandbox environment for testing integration between a content provider origin and a content delivery network

Inventors: Bradford A. Jones (Natick, MA); Manish Gupta (Melrose, MA)
Assignee: Akamai Technologies, Inc.
H04L43/50H04L41/08H04L63/02H04L67/32
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 10,439,925
App. No.
15/907,881
Granted
Oct 8, 2019
Kind
B2
Abstract

This document describes systems, devices, and methods for testing the integration of a content provider's origin infrastructure with a content delivery network (CDN). In embodiments, the teachings hereof enable a content provider's developer to rapidly and flexibly create test environments that send test traffic through the same CDN hardware and software that handle (or at least have the ability to handle) production traffic, but in isolation from that production traffic and from each other. Furthermore, in embodiments, the teachings hereof enable the content provider to specify an arbitrary test origin behind its corporate firewall with which the CDN should communicate.

Claims (82)

1. A system for testing integration of a content provider's origin infrastructure with a content delivery network (CDN), the CDN having a plurality of CDN servers, the CDN delivering content on behalf of the content provider, the system comprising:

A. one or more computers associated with a content provider and located on an enterprise network behind an enterprise firewall from the Internet, the one or more computers comprising circuitry forming one or more processors and memory holding instructions for execution on the one or more processors to run a client application, an intermediary application, and an origin server application on the one or more computers;

B. a first CDN server deployed on the Internet and outside the enterprise firewall;

C. a second CDN server deployed on the Internet and outside the enterprise firewall;

D. the memory of the one or more computers associated with the content provider further holding instructions for execution on the one or more processors to operate the one or more computers to:

a. with the client application, generate a request for content as part of a test;

b. with the intermediary application:

i. receive the request for content from the client application;

ii. establish a secure connection to the first CDN server;

iii. label the request for content with a token corresponding to a test configuration associated with the content provider, the token corresponding to a distinct test configuration of the content provider;

iv. send the labeled request for content to the first CDN server in the secure connection and through the enterprise firewall;

E. the first CDN server comprising circuitry forming one or more processors and memory holding instructions for execution on the one or more processors to operate the first CDN server to:

a. receive the labeled request for content from the intermediary application, via the secure connection;

b. determine to send the labeled request for content to the second CDN server;

c. send the labeled request for content to the second CDN server;

F. the second CDN server comprising circuitry forming one or more processors and memory holding instructions for execution on the one or more processors to operate the second CDN server to:

a. receive the labeled request for content from the first CDN server;

b. select a configuration to apply to the labeled request for content, the selection being between at least between a production configuration and a test configuration of the content provider, wherein the second CDN has access to at least one production configuration for the content provider and at least one test configuration for the content provider, the selection being based at least in part on the token;

c. wherein the production configuration and the test configuration each comprise a distinct set of directives for processing the labeled request for content;

d. select the test configuration;

e. upon application of the test configuration, determine to send a forward request to an origin associated with the content provider;

f. in response to the determination to send the forward request to the origin, generate the forward request;

g. send the forward request to any of: the first CDN server and a third CDN server acting a cache parent to the second CDN server, the third CDN server then sending the forward request to the first CDN server;

G. the memory of the first CDN server further holding instructions for execution on the one or more processors to operate the first CDN server to:

a. receive the forward request;

b. select the secure connection and send the forward request to the intermediary application via the secure connection and through the enterprise firewall;

H. the memory of the one or more computers associated with the content provider further holding instructions for execution on the one or more processors to operate the one or more computers to:

a. with the intermediary application, send the forward request to the origin server application.

2. The system of claim 1 , the memory of the first CDN server further holding instructions for execution on the one or more processors to operate the first CDN server to: locate an address of the second CDN server via a DNS lookup for a test network hostname, wherein the test network hostname is different than the content provider hostname accompanying the request for content.

3. The system of claim 1 , wherein the intermediary application uses a local configuration, distinct from the forward request, to identify the origin server application.

4. The system of claim 1 , wherein the one or more computers associated with the content provider comprise a first computer hosting the intermediary application and a second computer hosting the origin server application.

5. The system of claim 1 , wherein at least one of the test configuration and the production configuration is available locally at the second CDN server.

6. The system of claim 1 , wherein the content provider obtains the token and the intermediary application from a user interface provided by the CDN.

7. The system of claim 1 , wherein the second CDN server's determination to send the forward request is a result of a cache miss at the second CDN server.

8. The system of claim 1 , wherein the second CDN server selecting the test configuration comprises selecting one of a plurality of test configurations, at least in part because the selected test configuration corresponds to information in the token.

9. The system of claim 1 , the memory of the first CDN server further holding instructions for execution on the one or more processors to operate the first CDN server as a tunnel gateway.

10. The system of claim 1 , wherein the secure connection comprises a TLS connection.

11. The system of claim 1 , wherein, in response to the determination to send the forward request, the second CDN server sends the forward request to the first CDN server.

12. The system of claim 1 , wherein the second CDN server determines how to address the forward request based at least in part on any of: the presence of the token, the content of the token.

13. The system of claim 1 , wherein the secure connection comprises a tunnel.

14. The system of claim 1 , wherein the token is one of a plurality of tokens issued by the CDN to the content provider, each of the plurality of tokens corresponding to a distinct test configuration of the content provider.

15. A method for testing integration of a content provider's origin infrastructure with a content delivery network (CDN), the CDN delivering content on behalf of the content provider, the content provider's origin infrastructure comprising one or more computers associated with a content provider and located on an enterprise network behind an enterprise firewall from the Internet, the one or more computers comprising circuitry forming one or more processors and memory holding instructions for execution on the one or more processors to run a client application, an intermediary application, and an origin server application on the one or more computers, the CDN comprising one or more servers deployed on the Internet and outside the enterprise firewall, the method comprising:

A. with the client application, generate a request for content as part of a test;

B. with the intermediary application:

a. receive the request for content from the client application;

b. establish a secure connection to the CDN;

c. label the request for content with a token corresponding to a test configuration associated with the content provider, the token corresponding to a distinct test configuration of the content provider;

d. send the labeled request for content to the CDN in the secure connection and through the enterprise firewall;

C. with the CDN,

a. receive the labeled request for content from the intermediary application, via the secure connection;

b. select a configuration to apply to the labeled request for content, the selection being between at least between a production configuration and a test configuration of the content provider, wherein the CDN has access to at least one production configuration for the content provider and at least one test configuration for the content provider, the selection being based at least in part on the token;

c. wherein the production configuration and the test configuration each comprise a distinct set of directives for processing the labeled request for content;

d. select the test configuration;

e. upon application of the test configuration, determine to send a forward request to an origin associated with the content provider;

f. in response to the determination to send the forward request to the origin, generate the forward request;

g. send the forward request to the intermediary application in the secure connection through the enterprise firewall;

D. with the intermediary application, send the forward request to the origin server application.

16. The method of claim 15 , further comprising: the CDN locating a particular CDN server to handle the labeled request for content via a DNS lookup for a test network hostname, wherein the test network hostname is different than the content provider hostname.

17. The method of claim 15 , wherein the intermediary application uses a local configuration, distinct from the forward request, to identify the origin server application.

18. The method of claim 15 , wherein the content provider obtains the token and the intermediary application from a user interface provided by the CDN.

19. The method of claim 15 , wherein the secure connection comprises a tunnel.

20. The method of claim 15 , wherein the token is one of a plurality of tokens issued by the CDN to the content provider, each of the plurality of tokens corresponding to a distinct test configuration of the content provider.

21. A system for testing integration of a content provider's origin infrastructure with a content delivery network (CDN), the CDN having a plurality of CDN servers, the CDN delivering content on behalf of the content provider, the system comprising:

A. one or more computers associated with a content provider and located on an enterprise network behind an enterprise firewall from the Internet, the one or more computers comprising circuitry forming one or more processors and memory holding instructions for execution on the one or more processors to run a client application, an intermediary application, and an origin server application on the one or more computers;

B. a CDN comprising one or more servers deployed on the Internet and outside the enterprise firewall;

C. the memory of the one or more computers associated with the content provider further holding instructions for execution on the one or more processors to operate the one or more computers to:

a. with the client application, generate a request for content as part of a test;

b. with the intermediary application:

i. receive the request for content from the client application;

ii. establish a secure connection to the CDN;

iii. label the request for content with a token corresponding to a test configuration associated with the content provider, the token corresponding to a distinct test configuration of the content provider;

iv. send the labeled request for content to the CDN in the secure connection and through the enterprise firewall;

D. the one or more servers of the CDN comprising circuitry forming one or more processors and memory holding instructions for execution on the one or more processors to:

a. receive the labeled request for content from the intermediary application, via the secure connection;

b. select a configuration to apply to the labeled request for content, the selection being between at least between a production configuration and a test configuration of the content provider, wherein the CDN has access to at least one production configuration for the content provider and at least one test configuration for the content provider, the selection being based at least in part on the token;

c. wherein the production configuration and the test configuration each comprise a distinct set of directives for processing the labeled request for content;

d. select the test configuration;

e. upon application of the test configuration, determine to send a forward request to an origin associated with the content provider;

f. in response to the determination to send the forward request to the origin, generate the forward request;

g. send the forward request to the intermediary application via the secure connection and through the enterprise firewall;

E. the memory of the one or more computers associated with the content provider further holding instructions for execution on the one or more processors to operate the one or more computers to:

a. with the intermediary application, send the forward request to the origin server application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: JONES, BRADFORD A.; GUPTA, MANISH
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 045232/0241 →
Continuity (3)
Provisional Application 62629848 · Feb 13, 2018
Provisional Application 62608907 · Dec 21, 2017
Related Publication 20190199616A1 · Jun 27, 2019