Using containers for update deployment

US9916233B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9916233-B1
Application numberUS-201514671996-A
CountryUS
Kind codeB1
Filing dateMar 27, 2015
Priority dateMar 27, 2015
Publication dateMar 13, 2018
Grant dateMar 13, 2018

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.

A system and method for software deployment, where the system and method include, at a deployment service, obtaining a software package and determining that a client device is ready to receive at least a portion of the software package. If the client device is ready, providing at least the portion of the software package to the client device, launching at least the provided portion of the software package as set of instructions executing in a test container, and performing a set of tests on the executing set of instructions in the test container. Based at least in part on results of performing the set of tests, determining whether to cause at least the provided portion of the software package to execute in an active container on the client device.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: under the control of one or more computer systems configured with executable instructions, obtaining a set of computer-executable instructions configured to launch and execute within a software container; determining a subset of the set of computer-executable instructions that is not currently resident on a client device having a first software container, where the first software container is an active container having one or more applications executing in a user space accessible by a user of the client device; determining that the client device is ready to receive the subset of the set of computer-executable instructions in a second software container running in parallel with, and in a separate user space from, the first software container, the first software container and the second software container being operating system-level virtualization environments; providing the subset of the set of computer-executable instructions to the second software container of the client device; and at a time after determining that the client device has sufficient resources for testing the computer-executable instructions in the second software container: causing the computer-executable instructions to execute in the second software container on the client device; causing the client device to perform a set of tests on the executing computer-executable instructions; receiving results of the performed set of tests from the client device; determining, based at least in part on the results, that the testing was successful; causing the second software container to replace the first software container as the active container; and causing the first software container to become an inactive container. 2. The computer-implemented method of claim 1 , wherein the method further includes: retaining the inactive container on the client device for a minimum retention period; and after the minimum retention period has passed, deprovisioning the inactive container. 3. The computer-implemented method of claim 1 , wherein the inactive container is a first inactive container and: the client device has a third software container running in parallel with, and in a separate user space from, the first software container and the second software container; and upon selection by a user of the client device for the third software container to be the active container of the client device: causing the third software container to be the active container; and causing the second software container to be a second inactive container. 4. The computer-implemented method of claim 1 , wherein the inactive container is a first inactive container and: the client device has a third software container running in parallel with, and in a separate user space from, the first software container and the second software container; and upon instruction from a provider of the set of computer-executable instructions to cause the third software container to be the active container of the client device: causing the third software container to be the active container; and causing the second software container to be a second inactive container. 5. The computer-implemented method of claim 1 , wherein the set of computer-executable instructions include instructions configured to execute an operating system different from an operating system executing in the first software container. 6. The computer-implemented method of claim 1 , wherein the method further includes: determining to reactivate the first software container; and based at least in part on the determination: causing the first software container to be the active container; and causing the second software container to be an inactive container. 7. The computer-implemented method of claim 1 , wherein: the user space of the first container is a first portion of memory allocated to a first set of applications executing in the first container; the user space of the second container is a second portion of memory allocated to a second set of applications executing in the second container; the first set of applications are unable to access the second portion of memory; and and the second set of applications are unable to access the first portion of memory. 8. A client device, comprising: one or more processors; and memory including instructions that, as a result of execution by the one or more processors, cause the client device to: receive a notification from a deployment service indicating that a software package is available for the client device; respond to the deployment service that the client device is ready to receive at least a portion of the software package; obtain at least the portion of the software package from the deployment service and launch at least the portion of the software package as a first set of instructions executing in a first software container; perform a set of tests on the first executing set of instructions and provide a first set of results of the performed set of tests to the deployment service; perform the set of tests on a second executing set of instructions, executing in a second software container currently set to be an active container, to yield a second set of results; provide the second set of results to the deployment service; and upon receiving a notification from the deployment service to activate the first software container, the notification based at least in part on a comparison of the first set of results with the second set of results, cause the active container to be an inactive container, and cause the first software container to be an active container. 9. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to determine usage patterns based at least in part on previous usage of the client device by a user and the instructions that cause the client device to perform the set of tests, further include instructions that cause the client device to implement a testing strategy based at least in part on the usage patterns. 10. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to: receive a rollback notification from the deployment service that the software package is to be rolled back to a previous version of the software; and in response to receiving the rollback notification: cause the software container to be an inactive container; and cause the previously active container to be the active container. 11. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to: retain a previously active container on the device for a minimum retention period; and after the minimum retention period has passed, deprovision the previously active container. 12. The client device of claim 8 , wherein the instructions further include instructions that cause the client device to, upon receiving a notification from the deployment service to deprovision the software container, cause the software container to be deprovisioned. 13. The client device of claim 8 , wherein the deployment service communicates to the client device through a deployment agent running under a container encapsulation engine on the client device. 14. The client device of claim 8 , wherein the software container is a first software container, the set of instructions are a first set of instructions, the set of tests are a first set of tests, and the instructions further include instructions that cause the client device to: launch the at least the

Assignees

Inventors

Classifications

  • for test execution, e.g. scheduling of test suites · CPC title

  • Updates (security arrangements therefor G06F21/57) · CPC title

  • Software maintenance or management · CPC title

  • for test results analysis · CPC title

  • Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · 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 US9916233B1 cover?
A system and method for software deployment, where the system and method include, at a deployment service, obtaining a software package and determining that a client device is ready to receive at least a portion of the software package. If the client device is ready, providing at least the portion of the software package to the client device, launching at least the provided portion of the softw…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3688. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 13 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).