Upgrading bundled applications in a distributed computing system
First Claim
1. A method comprising:
- providing a first container executing on a first host computing device in a distributed computing system, the first container controlling execution of a first application instance;
providing a remote storage volume on a second host computing device in the distributed storage system, the remote storage volume being mounted to the first container;
(a) receiving, by the first host computing device, a second application instance that is an upgrade of the first application instance; and
in response to (a), performing, by the first computing device, (b), (c), (d), (e), and (f), wherein (b), (c), (d), (e), and (f) include;
(b) creating, by the first host computing device, a second container on the first host computing device;
(c) loading, by the first host computing device, the second application instance into the second container;
(d) stopping, by the first host computing device, execution of the first container;
(e) mounting, by the first host computing device, the remote storage volume to the second container; and
(f) starting, by the first host computing device, execution of the second application instance in the second container;
wherein the first container is one of a plurality of current containers executing on a plurality of computing devices of the distributed computing system and the remote storage volume is one of a plurality of remote storage volumes mounted to the plurality of current containers, the method further comprising;
receiving an application upgrade;
(g) for each container of the plurality of current containers;
evaluating a current version number of an application instance executing in the each container with respect to the application upgrade; and
when the application upgrade includes a later version number than the current version number and the current version number meets a version constraint of the application upgrade for the application instance executing in the each container;
replacing the each container with an upgraded container including an upgraded application instance corresponding to the application instance executing in the each container; and
wherein the first container has a first container identifier and is addressable by other computing devices in the distributed computing system by the first container identifier, the method further comprising assigning the first container identifier to the second container.
2 Assignments
0 Petitions
Accused Products
Abstract
A new snapshot of a storage volume is created by instructing computing nodes to suppress write requests. Once pending write requests from the computing nodes are completed, storage nodes create a new snapshot for the storage volume by allocating a new segment to the new snapshot and finalizes and performs garbage collection with respect to segments allocated to the previous snapshot. Subsequent write requests to the storage volume are then performed on the segments allocated to the new snapshot. An orchestration layer implements a multi-role application that is provisioned with virtualized storage and computation resources. A snapshot of the application may be created and used to rollback or clone the application. Clones snapshots of storage volumes may be gradually populated with data from prior snapshots to reduce loading on a primary snapshot. Upgrades for bundled applications may be defined and executed for containers and roles of the bundled application.
-
Citations
16 Claims
-
1. A method comprising:
-
providing a first container executing on a first host computing device in a distributed computing system, the first container controlling execution of a first application instance; providing a remote storage volume on a second host computing device in the distributed storage system, the remote storage volume being mounted to the first container; (a) receiving, by the first host computing device, a second application instance that is an upgrade of the first application instance; and in response to (a), performing, by the first computing device, (b), (c), (d), (e), and (f), wherein (b), (c), (d), (e), and (f) include; (b) creating, by the first host computing device, a second container on the first host computing device; (c) loading, by the first host computing device, the second application instance into the second container; (d) stopping, by the first host computing device, execution of the first container; (e) mounting, by the first host computing device, the remote storage volume to the second container; and (f) starting, by the first host computing device, execution of the second application instance in the second container; wherein the first container is one of a plurality of current containers executing on a plurality of computing devices of the distributed computing system and the remote storage volume is one of a plurality of remote storage volumes mounted to the plurality of current containers, the method further comprising;
receiving an application upgrade;(g) for each container of the plurality of current containers; evaluating a current version number of an application instance executing in the each container with respect to the application upgrade; and when the application upgrade includes a later version number than the current version number and the current version number meets a version constraint of the application upgrade for the application instance executing in the each container; replacing the each container with an upgraded container including an upgraded application instance corresponding to the application instance executing in the each container; and wherein the first container has a first container identifier and is addressable by other computing devices in the distributed computing system by the first container identifier, the method further comprising assigning the first container identifier to the second container. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a first computing device including one or more processing devices and one or more memory devices operably coupled to the one or more processing devices, the one or more memory devices storing executable code effective to cause the one or more processing devices to; execute a first container executing, the first container controlling execution of a first application instance; mount a remote storage volume to the first container, the remote storage volume being on a second host computing device in a distributed storage system; (a) receive a second application instance that is an upgrade of the first application instance; in response to (a), perform (b), (c), (e), (e), and (f), wherein (b), (c), (d), (e), and (f) include; (b) create a second container; (c) load the second application instance into the second container; (d) stop execution of the first container; (e) following performing (b), (c), and (d) mount the remote storage volume to the second container; (f) following performing (f), start execution of the second application instance in the second container wherein the first container is one of a plurality of current containers executing on a plurality of computing devices of a distributed computing system and the remote storage volume is one of a plurality of remote storage volumes mounted to the plurality of current containers, the system including a second computing device programmed to;
receive an application upgrade;(g) for each container of the plurality of current containers executing on the first device;
evaluate a current version number of an application instance executing in the each container with respect to the application upgrade; andwhen the application upgrade includes a later version number than the current version number and the current version number meets a version constraint of the application upgrade for the application instance executing in the each container, invoke replacing of the each container with an upgraded container including an upgraded application instance corresponding to the application instance executing in the each container; and wherein the first container has a first container identifier and is addressable by other computing devices in the distributed computing system by the first container identifier, the executable code being further effective to cause the one or more processing devices to assign the first container identifier to the second container. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification