Managed multi-container builds
AssigneeAmazon Technologies, Inc.
InventorsSubin Mathew, John Hanks, Clare Emma Liguori, Nitin Gujral, Joseph Silvano Vusich, Sandeep Dhillon
Life of this patent
Estimating the term…
Abstract
Techniques for managing multi-container builds are described herein. A software build task description specifies a build environment and the build environment specifies a set of parameters for building a version of a software object. A container is instantiated that corresponds to the build environment and build commands are sent to the container. As the container completes the build command, it sends a response that is used to determine a second command to send to the container. A status of the software build task is provided based at least in part on the response.
Claims20
A computer-implemented method for managing multi-container builds, comprising:
- receiving, at a software build management service, a software build task description, the software build task description specifying a software object to build, the software build task description including a set of environments, each environment of the set of environments specifying a corresponding set of parameters usable to build a corresponding version of the software object;
- instantiating, for an environment of the set of environments, a corresponding container of a first set of containers on a first build instance of one or more build instances, the first set of containers usable to generate a build state of the corresponding version of the software object, the corresponding container based at least in part on one or more parameters of the set of parameters;
- determining whether instantiating the corresponding container of the set of containers has exceeded usage of resources associated with the first build instance;
- and
- in response to determining that the usage of resources has been exceeded, instantiating, for the environment, a corresponding container of a second set of containers on a second build instance of the one or more build instances, the second set of containers usable to generate a next build state of the corresponding version of the software object.
A system, comprising:
- a computing device configured with:
- one or more processors;
- and
- memory that stores instructions that, as a result of execution by the one or more processors, cause the computing device to:
- instantiate a first container on a virtual instance, the first container provisioned to build a version of a first software object associated with one or more environments;
- send a first build command to the first container, the first build command causing the first container to build the version of the first software object;
- as a result of determining that building of the version of the first software object is complete, instantiate a second container on the virtual instance, the second container provisioned to build a version of a second software object associated with the one or more environments;
- and
- send a second build command to the second container, the second build command based at least in part on a response to the first build command.
A non-transitory computer-readable storage medium comprising executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
- instantiate a first set of containers on a build instance, the first set of containers provisioned to operate together to build a version of a first software object associated with an environment;
- send a first build command to each container of the first set of containers, the first build command usable to cause the first set of containers to build the version of the first software object to a first state;
- before the first set of containers complete the build of the version of the software object to the first state, instantiate a second set of containers on the build instance, the second set of containers provisioned to operate together to build a version of a second software object associated with the environment;
- and
- send a second build command to each container of the second set of containers, the second build command usable to cause the second set of containers to build the version of the second software object to a second state.
Dependencies are inferred from the claim text.