Analyzing deployment pipelines used to update production computing services using a live pipeline template process

US9787779B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9787779-B2
Application numberUS-201514977192-A
CountryUS
Kind codeB2
Filing dateDec 21, 2015
Priority dateDec 21, 2015
Publication dateOct 10, 2017
Grant dateOct 10, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques are presented for managing a deployment pipeline using an inheritable and extensible source code template—generally referred to as a live pipeline template (LPT). As described, live pipeline templates may be used to manage deployment pipelines which, in turn, are used to launch, maintain, and update the services and systems used to host and provide computing services.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a processor; and a memory storing one or more applications, which when executed on the processor, perform an operation to determine a current configuration state of a deployment pipeline used to propagate updates to a production computing service, the operation comprising: identifying a plurality of computing services included in the deployment pipeline, for each identified computing service: determining a current configuration state of a respective one of the computing services included in the deployment pipeline, generating a description of the current configuration state of the computing service, and generating, from the generated descriptions, a first application definition, wherein the first application definition provides a fully-specified configuration of the current operational state of the deployment pipeline; determining, from the first application definition, a service type associated with the production computing service deployed using the deployment pipeline; and determining, based on at least the determined service type, a live pipeline template to associate with the deployment pipeline, wherein the live pipeline template comprises source code for one or more base pipeline templates. 2. The system of claim 1 , wherein determining a current configuration state of the respective computing service included in the deployment pipeline comprises, invoking a pipeline analysis driver corresponding to the respective computing service and wherein the pipeline analysis driver inspects the respective computing service by making one or more API calls to determine the current configuration state of the respective computing service. 3. The system of claim 2 , wherein the pipeline analysis drivers includes one or more of a pipeline driver, a deployment driver, a host driver, a network driver, a security driver, an identity and access management (IAM) driver, a performance monitor driver, and an alarm driver. 4. The system of claim 1 , wherein the operation further comprises: determining that the first application definition does not satisfy at least a first rule specifying a requirement for the current configuration state of the deployment pipeline. 5. The system of claim 4 , wherein the operation further comprises: determining a modification to apply to at least a first one of the computing services included in the deployment pipeline needed to satisfy the first rule. 6. The system of claim 5 , wherein the operation further comprises: invoking at least a first synthesis driver to reconfigure the first computing service to conform to the fully-specified configuration of the deployment pipeline provided in the application definition. 7. The system of claim 1 , wherein the one or more base pipeline templates include source code of a first base pipeline template which specifies a set of configuration parameters for one or more deployment stages of the deployment pipeline. 8. The system of claim 7 , wherein the one or more base pipeline templates include source code of a second base pipeline template which extends the first base pipeline and wherein the second base pipeline template specifies a plurality of service type parameters for the deployment pipeline. 9. The system of claim 7 , wherein the operation further comprises: receiving source code specifying instance specific parameters used to specialize the live pipeline template as a live pipeline template (LPT) instance. 10. The system of claim 9 , wherein changes to the deployment pipeline are made by committing, to a version control system, changes to source code of the first base pipeline template, second base pipeline template, or instance specific parameters of the LPT instance. 11. A computer-implemented method for evaluating a deployment pipeline, the method comprising: generating a first application definition by invoking a plurality of analysis drivers, wherein each of the plurality of analysis drivers inspects a configuration of a respective computing service included in a deployment pipeline, wherein the first application definition reflects a current configuration state of the deployment pipeline; receiving source code corresponding to a live pipeline template; generating, from the live pipeline template, a second application definition, wherein the second application definition describes a fully-specified configuration for a plurality of computing services used to provide a second deployment pipeline; and determining a set of differences between the first application definition and the second application definition; and generating a report describing the determined set of differences. 12. The method of claim 11 , wherein the source code corresponding to the live pipeline includes one or more base pipeline templates. 13. The method of claim 11 , wherein the one or more base pipeline templates include a first base pipeline template specifying a set of configuration parameters for one or more deployment stages of the deployment pipeline and a second pipeline template which extends the first base pipeline template with a plurality of instance specific parameters associated with the determined service type. 14. A computer-readable storage medium storing instructions, which, when executed on a processor, perform an operation to determine a current configuration state of a deployment pipeline used to propagate updates to a production computing service, the operation comprising: identifying a plurality of computing services included in the deployment pipeline; for each identified computing service: determining a current configuration state of a respective one of the computing services included in the deployment pipeline, generating a description of the current configuration state of the computing service, and generating, from the generated descriptions, a first application definition, wherein the first application definition provides a fully-specified configuration of the current operational state of the deployment pipeline; determining, from the first application definition, a service type associated with the production computing service deployed using the deployment pipeline; and determining, based on at least the determined service type, a live pipeline template to associate with the deployment pipeline, wherein the live pipeline template comprises source code for one or more base pipeline templates. 15. The computer-readable storage medium of claim 14 , wherein determining a current configuration state of the respective computing service included in the deployment pipeline comprises, invoking a pipeline analysis driver corresponding to the respective computing service and wherein the pipeline analysis driver inspects the respective computing service by making one or more API calls to determine the current configuration state of the respective computing service. 16. The computer-readable storage medium of claim 15 , wherein the pipeline analysis drivers includes one or more of a pipeline driver, a deployment driver, a host driver, a network driver, a security driver, an identity and access management (IAM) driver, a performance monitor driver, and an alarm driver. 17. The computer-readable storage medium of claim 14 , wherein the operation further comprises: determining that the first application definition does not satisfy at least a first rule specifying a requirement for the current configuration state of the deployment pipeline. 18. The computer-readable storage medium of claim 17 , wherein the operation further comprises:

Assignees

Inventors

Classifications

  • Distribution of virtual machine instances; Migration and load balancing · CPC title

  • Methods or tools to render software testable · CPC title

  • where the computing system component is a software system · CPC title

  • Data logging (G06F11/14, G06F11/2205 take precedence) · CPC title

  • involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9787779B2 cover?
Techniques are presented for managing a deployment pipeline using an inheritable and extensible source code template—generally referred to as a live pipeline template (LPT). As described, live pipeline templates may be used to manage deployment pipelines which, in turn, are used to launch, maintain, and update the services and systems used to host and provide computing services.
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/65. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 10 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).