Software Package Installation Across Heterogeneous Computing Instances

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing software package installations, uninstallations, and updates across a fleet of computing instances with diverse characteristics, such as different operating systems and architectures, is challenging due to the complexity of tracking version releases and requiring specialized knowledge and access.

Innovation Solution

A system that allows customers to issue a single request for software package operations across multiple computing instances, using agent components to select and install appropriate versions based on instance characteristics, with features for uninstallation, constraint enforcement, and monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software package installation is performed manually on each computing instance, then installation precision and control can be maintained, but time consumption and operational complexity increase significantly

Engineering Contradiction:
Improvesoftware package installation efficiencyVSAvoidtime for tracking version releases and performing installations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines multiple computing instances into a single manageable group or fleet, allowing software package operations to be performed centrally on the group rather than individually on each instance. This merging approach enables simultaneous management of diverse instances through unified interfaces, dramatically improving installation efficiency while reducing the time required for version tracking and deployment.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system provides a universal software package management interface that can operate across multiple computing instances with different operating systems and architectures. A single management interface performs multiple functions including installation, uninstallation, updating, and version tracking across heterogeneous instances, eliminating the need for separate manual processes for each instance type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If diverse package types are used to match different operating systems and architectures, then adaptability improves, but device complexity and difficulty of management increase

Engineering Contradiction:
Improvecompatibility with different operating systems and architecturesVSAvoidcomplexity of managing different package types and versions
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary software package management system that sits between the user and the diverse computing instances. This intermediary automatically selects and manages the appropriate package types for different operating systems and architectures, shielding users from the complexity of diverse package formats while maintaining full adaptability to various instance types.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes parameters such as package type, version, and installation method based on the characteristics of each computing instance. By automatically detecting instance properties like operating system and architecture, the system adjusts the software package parameters accordingly, maintaining adaptability while reducing management complexity through automated parameter selection.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If centralized management system is implemented, then ease of operation improves, but system complexity and resource requirements increase

Engineering Contradiction:
Improvesimplicity of software package management for customersVSAvoidcomplexity of centralized management system infrastructure
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The centralized management system incorporates self-service capabilities where the system automatically performs tasks such as version detection, package selection, and installation without requiring extensive user intervention. This self-service approach simplifies operation for customers while the system handles the underlying complexity automatically, reducing the perceived system complexity for users.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary actions such as pre-configuring package manifests, pre-selecting appropriate package types, and pre-validating instance compatibility before actual installation. This preliminary preparation work reduces the complexity of the main installation operation and simplifies the user experience by handling complex setup tasks automatically before the user needs to act.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10466991B1Computing instance software package installation
Publication Date: 2019.11.05 AMAZON TECH INC
  • US10466991B1 patent drawing
  • US10466991B1 patent drawing
  • US10466991B1 patent drawing

AI summary

Software packages may be installed, uninstalled and/or updated across a group of computing instances by way of a single issuance of a user request. The request may include information such as a software package name, a software package version, an action (e.g., install or uninstall), and one or more operating constraints for the software package. For an installation request, an agent on a given computing instance may process the request by accessing a manifest that indicates various computing instance characteristics (e.g., operating system types, architecture types, etc.) and various respective available versions of the software package. The agent may then select, based on characteristics of the computing instance, a package type for the computing instance. An installation request may also allow operating constraints (e.g. regarding usage of processing, memory, I/O and other resources) to be set and enforced for the software package.