IP Library › Granted Patent US 10,360,025
Granted Patent B2
US 10,360,025 · App. 15/699,207 · Granted Jul 23, 2019

Infrastructure instantiation, collaboration, and validation architecture for serverless execution frameworks

Inventors: Roger Foskett (Middlesex, GB); Thomas W. Myers (LaGrange, IL)
Assignee: Accenture Global Solutions Limited
G06F8/71G06F8/70
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,360,025
App. No.
15/699,207
Filed
Sep 8, 2017
Granted
Jul 23, 2019
Kind
B2
Art Unit
2192
USPC
717/103
Abstract

Successfully deploying resources into the cloud is a constantly increasing technical challenge as more cloud service providers emerge, each offering disparate computing platforms, services, assets, supported technical components, and other features, including serverless execution. An infrastructure build and collaboration architecture for serverless execution environments solves the technically complex challenges around allowing developers to work independently in physically separated locations. To this end, the architecture allows shared object repositories to be brought together when required and provides an object-model for defining resources without requiring the developer to have complete expert knowledge of the target deployment language. The architecture also enforces policy for both software design and infrastructure, and performs deep validation of the infrastructure built for the developer.

Claims (106)

1. A method comprising:

establishing, using a physical communication interface:

a build communication channel to a serverless infrastructure provider; and

a requester communication channel to different resource requesters who collaborate on a predetermined project;

in a hardware data storage, storing:

an object model comprising developer model extensions on a predetermined infrastructure as code (laC) syntax;

a resource request for a project resource, the resource request defined using the object model and received over the physical communication interface from a particular resource requester collaborating on the predetermined project; and

an interdependency specifier received over the requester communication channel, the interdependency specifier identifying a dependency between the project resource and a provisioned resource for a different resource requester; and

the hardware data storage including an assembly area providing storage for resource instantiation staging for the predetermined project; and

at resource instantiation hardware circuitry:

reading the resource request and the interdependency specifier; responding to the interdependency specifier by:

locating and retrieve a state file for the provisioned resource; and

storing the state file in the assembly area;

generating laC instructions from the resource request for instantiating the project resource at the serverless infrastructure provider;

storing the laC instructions in the assembly area;

generating function deployment instructions from the resource request for deploying a serverless function specified in the resource request;

storing the function deployment instructions in the assembly area;

providing access to the state file in the assembly area by the project resource after instantiation at the serverless infrastructure provider;

initiating resource provisioning based on the laC instructions to instantiate the project resource; and

initiating function provisioning based on the function deployment instructions.

2. The method according to claim 1 , further comprising:

at the resource instantiation hardware circuitry:

validating function code for the serverless function against a predefined policy prior to initiating application provisioning.

3. The method according to claim 1 , where:

access to the state file comprises search access to the state file for determining current state of the provisioned resource.

4. The method according to claim 3 , where:

the project resource has a requirement for access to the current state of the provisioned resource, and the dependency noted in the interdependency specifier captures the requirement.

5. The method according to claim 1 , further comprising:

at the resource instantiation hardware circuitry:

initiating a build of the serverless function specified in the resource request.

6. The method of claim 1 , further comprising: at the resource instantiation hardware circuitry:

locating and retrieving the state file for the provisioned resource from the serverless infrastructure provider hosting the provisioned resource.

7. The method of claim 6 , where:

the state file comprises a mapping between the project resource and actual implementation of the project resource with the serverless infrastructure provider.

8. The method of claim 1 , further comprising:

at a resource validation hardware circuitry:

executing a post-provisioning check for the project resource after instantiation against the serverless infrastructure provider.

9. The method of claim 8 , further comprising:

determining when the project resource fails the post-provisioning check, and in response, transmitting an instruction to the serverless infrastructure provider to terminate the project resource.

10. A system comprising:

a physical communication interface configured to implement:

a build communication channel to a serverless infrastructure provider; and

a requester communication channel to different resource requesters who collaborate on a predetermined project;

hardware data storage configured to store:

an object model comprising developer model extensions on a predetermined infrastructure as code (laC) syntax;

a resource request for a project resource, the resource request defined using the object model and received over the physical communication interface from a particular resource requester collaborating on the predetermined project; and

an interdependency specifier received over the requester communication channel, the interdependency specifier identifying a dependency between the project resource and a provisioned resource for a different resource requester; and

the hardware data storage further including an assembly area operable to provide storage for resource instantiation staging for the predetermined project; and

resource instantiation hardware circuitry configured to:

read the resource request and the interdependency specifier;

in response to the interdependency specifier:

locate and retrieve a state file for the provisioned resource; and

store the state file in the assembly area;

generate laC instructions from the resource request for instantiating the project resource at the serverless infrastructure provider;

store the laC instructions in the assembly area;

generate function deployment instructions from the resource request for deploying a serverless function specified in the resource request;

store the function deployment instructions in the assembly area;

provide access to the state file in the assembly area by the project resource after instantiation at the serverless infrastructure provider;

initiate resource provisioning based on the laC instructions to instantiate the project resource; and

initiate function provisioning based on the function deployment instructions.

11. The system according to claim 10 , where:

the resource instantiation hardware circuitry is further configured to:

validate function code for the serverless function against a predefined policy prior to initiating application provisioning.

12. The system according to claim 10 , where:

access to the state file comprises search access to the state file for determining current state of the provisioned resource.

13. The system according to claim 12 , where:

the project resource has a requirement for access to the current state of the provisioned resource, and the dependency noted in the interdependency specifier captures the requirement.

14. The system according to claim 10 , where:

the resource instantiation hardware circuitry is further configured to: initiate build of the serverless function specified in the resource request.

15. The system of claim 10 , where:

the resource instantiation hardware circuitry engine is further configured to:

locate and retrieve the state file for the provisioned resource from the serverless infrastructure provider hosting the provisioned resource.

16. The system of claim 15 , where:

the state file comprises a mapping between the project resource and actual implementation of the project resource with the serverless infrastructure provider.

17. The system of claim 10 , further comprising:

resource validation hardware circuitry configured to:

execute a post-provisioning check for the project resource after instantiation against the serverless infrastructure provider.

18. The system of claim 17 ,

where the resource validation hardware circuitry is further configured to:

determine when the project resource fails the post-provisioning check, and inn response, transmit an instruction to the serverless infrastructure provider to terminate the project resource.

19. A product including:

machine-readable media not including a transitory signal;

instructions stored on the machine-readable media, the instructions configured to, when executed, cause a machine to:

establish, using a physical communication interface:

a build communication channel to a serverless infrastructure provider; and

a requester communication channel to different resource requesters who collaborate on a predetermined project;

in hardware data storage, store:

an object model including developer model extensions on a predetermined infrastructure as code (laC) syntax;

a resource request for a project resource, the resource request defined using the object model and received over the physical communication interface from a particular resource requester collaborating on the predetermined project; and

an interdependency specifier received over the requester communication channel, the interdependency specifier identifying a dependency between the project resource and a provisioned resource for a different resource requester; and

the hardware data storage including an assembly area operable to provide storage for resource instantiation staging for the predetermined project; and

at resource instantiation hardware circuitry:

read the resource request and the interdependency specifier;

respond to the interdependency specifier by:

locate and retrieve a state file for the provisioned resource; and

store the state file in the assembly area;

generate laC instructions from the resource request for instantiating the project resource at the serverless infrastructure provider;

store the laC instructions in the assembly area;

generate function deployment instructions from the resource request for deploying a serverless function specified in the resource request;

store the function deployment instructions in the assembly area;

provide access to the state file in the assembly area by the project resource after instantiation at the serverless infrastructure provider;

initiate resource provisioning based on the laC instructions to instantiate the project resource; and

initiate function provisioning based on the function deployment instructions.

20. The product according to claim 19 , where:

the instructions are further configured to cause the machine to:

validate function code for the serverless function against a predefined policy prior to initiating application provisioning.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2018
From: FOSKETT, ROGER; MYERS, THOMAS W.
To: ACCENTURE GLOBAL SOLUTIONS LIMITED
Reel/Frame 045120/0124 →
Continuity (1)
Related Publication 20190079751A1 · Mar 14, 2019
Cited By (46)
US 12,189,514 US 12,212,586 US 12,217,079 US 12,219,048 US 12,219,053 US 12,244,627 US 12,244,634 US 12,267,326 US 12,271,485 US 12,277,216 US 12,278,819 US 12,278,825 US 12,278,840 US 12,278,897 US 12,284,220 US 12,287,899 US 12,314,752 US 12,321,766 US 12,327,133 US 12,353,474 US 12,381,878 US 12,393,939 US 12,395,488 US 12,406,071 US 12,411,937 US 12,411,957 US 12,443,720 US 12,443,722 US 12,476,978 US 12,481,990 US 12,489,781 US 12,495,049 US 12,505,200 US 12,506,755 US 12,524,550 US 12,531,881 US 12,547,765 US 12,579,251 US 12,608,484 US 12,645,785 US 12,671,671 US 12,688,277 US 12,724,647 US 12,726,444 US 12,739,106 US 12,750,276