Orchestration of software releases on a cloud platform across stagger groups
AssigneeSalesforce, Inc.
InventorsJeaneth Aguilar Vergara, Kim Ho
Life of this patent
Estimating the term…
Abstract
A multi-tenant system receives a request to build a software artifact for deploying on one or more target datacenter entities of the datacenter configured on the could platform. A software artifact comprises executable instructions associated with a service configured for execution on one or more cloud platforms. The system generates a release configuration that includes reusable release components and is used as a template by the release orchestration system to orchestrate release of the software artifact. The release configuration may specify one or more stagger groups, or a group of target datacenter entities that can be rolled-out in parallel.
Claims19
A computer implemented method for continuous delivery of software artifacts on one or more cloud platforms, the method comprising:
- configuring a datacenter on a cloud platform based on a declarative specification specifying a hierarchy of datacenter entities;
- receiving a request to build a set of software artifacts;
- receiving a release configuration comprising information for deploying the set of software artifacts on the datacenter, wherein a particular software artifact is targeted for deployment on a plurality of datacenter entities, the release configuration including one or more variables representing selectors specifying a plurality of stagger groups, each stagger group representing a subset of the plurality of datacenter entities;
- compiling the release configuration to generate an execution plan for deploying the set of software artifacts, the compiling including determining one or more service instances for each stagger group based on the declarative specification, the one or more service instances corresponding to one or more of the selectors, the execution plan staggering the deployment of the particular software artifact across the plurality of stagger groups by repeating for each stagger group:
- deploying the particular software artifact to a stagger group;
- and
- waiting for a threshold time before deploying the particular software artifact to a next stagger group;
- generating a set of pipelines based on the execution plan, each pipeline being generated from a pipeline template;
- and
- executing the set of pipelines to deploy the set of software artifacts on the datacenter, wherein at least a first stagger group is a canary group and a second stagger group that is the next stagger group is a blast group, and wherein the execution plan further specifies a promotion criteria for the first stagger group allowing a pipeline of the set of pipelines to be executed in the second stagger group if there are less than a threshold number or proportion of failures in executing of the pipeline in the first stagger group.
A non-transitory computer readable storage medium storing thereon computer-readable instructions that when executed by a computer processor cause the computer processor to perform steps comprising:
- configuring a datacenter on a cloud platform based on a declarative specification specifying a hierarchy of datacenter entities;
- receiving a request to build a set of software artifacts;
- receiving a release configuration comprising information for deploying the set of software artifacts on the datacenter, wherein a particular software artifact is targeted for deployment on a plurality of datacenter entities, the release configuration including one or more variables representing selectors specifying a plurality of stagger groups, each stagger group representing a subset of the plurality of datacenter entities;
- compiling the release configuration to generate an execution plan for deploying the set of software artifacts, the compiling including determining one or more service instances for each stagger group based on the declarative specification, the one or more service instances corresponding to one or more of the selectors, the execution plan staggering the deployment of the particular software artifact across the plurality of stagger groups by repeating for each stagger group:
- deploying the particular software artifact to a stagger group;
- and
- waiting for a threshold time before deploying the particular software artifact to a next stagger group;
- generating a set of pipelines based on the execution plan, each pipeline being generated from a pipeline template;
- and
- executing the set of pipelines to deploy the set of software artifacts on the datacenter, wherein at least a first stagger group is a canary group and a second stagger group that is the next stagger group is a blast group, and wherein the execution plan further specifies a promotion criteria for the first stagger group allowing a pipeline of the set of pipelines to be executed in the second stagger group if there are less than a threshold number or proportion of failures in executing of the pipeline in the first stagger group.
A computer system comprising:
- a computer processor;
- and
- a non-transitory computer readable storage medium for storing instructions that when executed by the computer processor, cause the computer processor to perform steps comprising:
- configuring a datacenter on a cloud platform based on a declarative specification specifying a hierarchy of datacenter entities;
- receiving a request to build a set of software artifacts;
- receiving a release configuration comprising information for deploying the set of software artifacts on the datacenter, wherein a particular software artifact is targeted for deployment on a plurality of datacenter entities, the release configuration including one or more variables representing selectors specifying a plurality of stagger groups, each stagger group representing a subset of the plurality of datacenter entities;
- compiling the release configuration to generate an execution plan for deploying the set of software artifacts, the compiling including determining one or more service instances for each stagger group based on the declarative specification, the one or more service instances corresponding to one or more of the selectors, the execution plan staggering the deployment of the particular software artifact across the plurality of stagger groups by repeating for each stagger group:
- deploying the particular software artifact to a stagger group;
- and
- waiting for a threshold time before deploying the particular software artifact to a next stagger group;
- generating a set of pipelines based on the execution plan, each pipeline being generated from a pipeline template;
- and
- executing the set of pipelines to deploy the set of software artifacts on the datacenter, wherein at least a first stagger group is a canary group and a second stagger group that is the next stagger group is a blast group, and wherein the execution plan further specifies a promotion criteria for the first stagger group allowing a pipeline of the set of pipelines to be executed in the second stagger group if there are less than a threshold number or proportion of failures in executing of the pipeline in the first stagger group.
Dependencies are inferred from the claim text.