Architecture for incremental deployment
First Claim
1. A system for performing incremental deployment of an application on a target machine, the system comprising:
- one or more processors;
a deployment proxy server; and
a deploy service;
wherein the deployment proxy server;
receives, from a client, a request to upload one or more software artifacts of an application to a target machine, the one or more software artifacts comprising at least a partial update to the application;
sends a first set of software artifacts of the one or more software artifacts of the application to a proxy repository based at least in part on the request, the first set of software artifacts being a portion of the application less than the whole application;
determines, based at least in part on the request from the client, a continuation deployment action for a deploy service to perform;
selects, based at least in part on the request from the client, the deploy service from a plurality of deploy services in a distributed system that is capable of performing the continuation deployment action;
forwards, based at least in part on the continuation deployment action, the request to the deploy service, andwherein the deploy service;
receives the continuation deployment action from the deployment proxy server;
receives, from the proxy repository, a complete set of software artifacts, each of the complete set being an up-to-date version of the software artifact;
stores the complete set of software artifacts in a deployment repository; and
enables the target machine to obtain a second set of software artifacts from the deployment repository upon determining that each reference identifier for each of the second set of software artifacts stored in a local repository of the target machine is different from each reference identifier for each of the second set of software artifacts stored in the deployment repository,wherein the first set of software artifacts uploaded from the client is different from the second set of software artifacts downloaded to the target machine.
1 Assignment
0 Petitions
Accused Products
Abstract
A deploy service is provided to determine a set of software artifacts that needs to be transmitted to a target machine upon receiving an application deployment request from a user of a client device. For instance, the deploy service may compare versions of software artifacts on the target machine with the software artifacts of the application that the user desires to deploy to determine the set of software artifacts that needs to be transmitted. Instead of having to transmit the entire application, some embodiments transmit only a small portion that is reflective of what has been changed between the old version of the application and the new version of the application. This enables the transfer of large files across the Internet to be more efficient.
108 Citations
25 Claims
-
1. A system for performing incremental deployment of an application on a target machine, the system comprising:
-
one or more processors; a deployment proxy server; and a deploy service; wherein the deployment proxy server; receives, from a client, a request to upload one or more software artifacts of an application to a target machine, the one or more software artifacts comprising at least a partial update to the application; sends a first set of software artifacts of the one or more software artifacts of the application to a proxy repository based at least in part on the request, the first set of software artifacts being a portion of the application less than the whole application; determines, based at least in part on the request from the client, a continuation deployment action for a deploy service to perform; selects, based at least in part on the request from the client, the deploy service from a plurality of deploy services in a distributed system that is capable of performing the continuation deployment action; forwards, based at least in part on the continuation deployment action, the request to the deploy service, and wherein the deploy service; receives the continuation deployment action from the deployment proxy server; receives, from the proxy repository, a complete set of software artifacts, each of the complete set being an up-to-date version of the software artifact; stores the complete set of software artifacts in a deployment repository; and enables the target machine to obtain a second set of software artifacts from the deployment repository upon determining that each reference identifier for each of the second set of software artifacts stored in a local repository of the target machine is different from each reference identifier for each of the second set of software artifacts stored in the deployment repository, wherein the first set of software artifacts uploaded from the client is different from the second set of software artifacts downloaded to the target machine. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method of enabling incremental deployment of an application on a target machine, the method comprising:
-
under control of one or more computer systems configured with executable instructions, receiving, from a client, a request to upload one or more software artifacts of an application to a target machine; receiving a first set of software artifacts of the one or more software artifacts of the application from the client based at least in part on the request, the first set of software artifacts being a portion of the application; storing the first set of software artifacts to a proxy repository; determining, based at least in part on the request from the client, a continuation deployment action for a deploy service to perform; selecting, based at least in part on the request from the client, the deploy service from a plurality of deploy services in a distributed system that is capable of performing the continuation deployment action; and forwarding the continuation deployment action to the selected deploy service, wherein the deploy service retrieves a complete set of software artifacts from the proxy repository and stores the complete set of software artifacts in a deployment repository that causes the target machine to determine a second set of software artifacts necessary for deployment, the first set of software artifacts being different from the second set. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. An electronic device, comprising:
-
at least one processor; and a memory device including instructions that, when executed by the at least one processor, cause the electronic device to, at least; receive from a client, a request to upload one or more software artifacts of an application to a target machine; receive a set of software artifacts of the one or more software artifacts of the application from the client based at least in part on the request, the set of software artifacts being a portion of the application; store the set of software artifacts to a proxy repository; determine, based at least in part on the request from the client, a continuation deployment action that for a deploy service to perform, the continuation deployment action specifying a target machine on which to deploy the application; locate, based at least in part on the request from the client, the deploy service from a plurality of deploy services in a distributed system that is capable of performing the continuation deployment action; and invoke the located deploy service to perform the continuation deployment action for the application, wherein the deploy service retrieves a complete set of software artifacts from the proxy repository and stores the complete set of software artifacts in a deployment repository that causes the target machine to determine a second set of software artifacts necessary for deployment, the set of software artifacts being different from the second set of software artifacts. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable storage medium including instructions for identifying items, the instructions when executed by at least one processor of at least one computing device causing the at least one computing device to collectively, at least:
-
receive, from a client, a request to upload one or more software artifacts of an application to a target machine; receive a first set of software artifacts of the one or more software artifacts of the application from the client based at least in part on the request, the first set of software artifacts being a portion of the application; store the first set of software artifacts to a proxy repository; determine, based at least in part on the request from the client, a continuation deployment action for a deploy service to perform; select, based at least in part on the request from the client, the deploy service from a plurality of deploy services in a distributed system that is capable of performing the continuation deployment action; and forward the continuation deployment action to the selected deploy service, wherein the deploy service retrieves a complete set of software artifacts from the proxy repository and stores the complete set of software artifacts in a deployment repository that causes the target machine to determine a second set of software artifacts necessary for deployment, the first set of software artifacts being different from the second set. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification