IP Library Granted Patent US 9,823,915
Granted Patent B1
US 9,823,915 · App. 15/173,509 · Granted Nov 21, 2017

Software container format

Inventor: Cody Maloney (San Francisco, CA)
Assignee: Mesosphere, Inc.
G06F8/61G06F9/4411
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,823,915
App. No.
15/173,509
Filed
Jun 3, 2016
Granted
Nov 21, 2017
Kind
B1
Art Unit
2191
USPC
717/175
Abstract

A system for building a package with a deterministic identifier for selective software component installation comprises an interface and a processor. The interface is to receive package configuration information. The processor is to retrieve build resources; determine a deterministic package identifier based at least in part on the build resources; build a package based at least in part on the package configuration information using the build resources; and provide the package. The package includes the deterministic package identifier. A selected software component from the package is installed on a target system.

Claims (57)

1. A system for building a package with a deterministic identifier for selective software component installation, comprising:

an interface to:

receive package configuration information; and

a processor to:

retrieve build resources;

determine a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:

determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources,

creating a dictionary of the set of hashes,

determining a serialization by serializing the dictionary in a deterministic way, and

determining the deterministic package identifier by computing a hash of the serialization;

build a package based at least in part on the package configuration information using the build resources; and

provide the package, wherein the package includes the deterministic package identifier, wherein a selected software component from the package is installed on a target system.

2. The system of claim 1 , wherein the package configuration information comprises a build script.

3. The system of claim 1 , wherein the package configuration information comprises a build information file.

4. The system of claim 1 , wherein build resources comprise source code.

5. The system of claim 1 , wherein build resources comprise libraries.

6. The system of claim 1 , wherein the processor is further to:

determine whether build resources are available; and

in the event build resources are not available:

provide an error message and end the process.

7. The system of claim 1 , wherein the processor is further to prepare a build environment for building the package.

8. The system of claim 7 , wherein preparing a build environment comprises creating a new container environment.

9. The system of claim 7 , wherein preparing a build environment comprises removing previous build artifacts and source code from a container environment.

10. The system of claim 7 , wherein preparing a build environment comprises installing libraries and source code into a container environment.

11. The system of claim 7 , wherein package software is built within the build environment.

12. The system of claim 11 , wherein the package is created by copying the package software out of the build environment and packaging the package software.

13. The system of claim 1 , wherein the processor is further to:

determine whether building the package succeeded; and

in the event building the package did not succeed:

provide an error message and end the process.

14. The system of claim 1 , wherein the deterministic package identifier is determined based at least in part on a hash of the build resources.

15. The system of claim 1 , wherein the package is provided to an installation server.

16. The system of claim 1 , wherein the target system is associated with a role.

17. The system of claim 16 , wherein the selected software component is installed based at least in part on the role.

18. The system of claim 1 , wherein installing the selected software component comprises installing selected directory locations from the package.

19. The system of claim 1 , wherein in the event that the software component fails, the software component is reverted to a previous version of the package.

20. The system of claim 1 , wherein installing the selected software component comprises checking the deterministic package identifier to verify that the package comprises the correct package version.

21. A method for building a package with a deterministic identifier for selective software component installation, comprising:

receiving, by a processor, package configuration information;

retrieving, by the processor, build resources;

determining, by the processor, a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:

determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources,

creating a dictionary of the set of hashes,

determining a serialization by serializing the dictionary in a deterministic way, and

determining the deterministic package identifier by computing a hash of the serialization;

building, by the processor, a package based at least in part on the package configuration information using the build resources; and

providing, by the processor, the package and the deterministic package identifier, wherein a selected software component is installed based at least in part on the deterministic package identifier using the package.

22. A computer program product for building a package with a deterministic identifier for selective software component installation, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving package configuration information;

retrieving build resources;

determining a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:

determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources,

creating a dictionary of the set of hashes,

determining a serialization by serializing the dictionary in a deterministic way, and

determining the deterministic package identifier by computing a hash of the serialization;

building a package based at least in part on the package configuration information using the build resources; and

providing the package and the deterministic package identifier, wherein a selected software component is installed based at least in part on the deterministic package identifier using the package.

Assignments (6)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2023
From: D2IQ, INC.
To: D2IQ (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 065909/0748 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE ASSIGNOR. PREVIOUSLY RECORDED ON REEL 065771 FRAME 0424. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 8, 2023
From: D2IQ (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC.
To: NUTANIX, INC.
Reel/Frame 065836/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2023
From: D2IQ, INC.
To: NUTANIX, INC.
Reel/Frame 065771/0424 →
CHANGE OF NAME Recorded May 15, 2020
From: MESOSPHERE, INC.
To: D2IQ, INC.
Reel/Frame 052679/0179 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2016
From: MALONEY, CODY
To: MESOSPHERE, INC.
Reel/Frame 039875/0207 →
Continuity (1)
Provisional Application 62202049 · Aug 6, 2015