Elastic Cloud Build Service Scaling Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Building binary packages for large-scale software products is computationally intensive and requires efficient distribution across multiple nodes, while maintaining scalability and security, especially when demand is intermittent, necessitating a highly available and dynamically scalable build service.

Innovation Solution

The system utilizes an elastic compute cloud with virtual machines that can be instantiated and destroyed as needed, allowing for efficient distribution of build processes without dedicated hardware, while ensuring secure storage of signing keys on dedicated servers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated build resources are used, then build service reliability is improved, but resource utilization efficiency deteriorates due to idle capacity during low demand periods

Engineering Contradiction:
Improvebuild service availabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system dynamically scales build resources by spinning up virtual machine instances during high demand and terminating them during low demand. The build service controller monitors workload and automatically adjusts the number of active build nodes, transforming static dedicated resources into dynamic cloud-based resources that adapt to demand fluctuations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Cloud-based virtual machine instances serve multiple purposes: they function as build nodes during active periods and can be terminated or repurposed during idle periods. The same cloud infrastructure supports variable workload demands without requiring separate dedicated hardware for peak and off-peak periods.

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

2Loss of energy

If cloud resources are used for build processes, then resource utilization efficiency is improved, but security control deteriorates due to shared hardware environment

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsecurity control
Core Design Contradiction:
Loss of energyVSObject-affected harmful factors

Solution Approach 1:

The system segments the cloud infrastructure into isolated virtual machine instances, each functioning as an independent build node. Virtualization creates logical separation between build processes and the underlying shared hardware, allowing secure execution of build tasks on cloud resources without exposing signing keys or sensitive data to the shared environment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The build service controller acts as an intermediary between the cloud infrastructure and build processes. It manages virtual machine lifecycle, controls resource allocation, and coordinates build tasks without requiring direct access to signing keys stored on secure dedicated servers, thereby maintaining security while enabling efficient cloud-based building.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If virtual machines are used for build processes, then scalability is improved, but system complexity increases due to virtualization management

Engineering Contradiction:
ImprovescalabilityVSAvoidvirtualization management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The build service controller implements self-service automation for virtual machine management, including automatic instance provisioning, configuration, and termination based on workload demand. This eliminates manual intervention requirements and reduces operational complexity despite the sophisticated virtualization infrastructure.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system pre-configures virtual machine templates with necessary build environments and dependencies before deployment. When scaling is needed, pre-configured templates are rapidly instantiated rather than building environments from scratch, reducing management complexity and accelerating scalability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2751663B1Cloud-based build service
Publication Date: 2021.04.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2751663B1 patent drawingFigure 1
  • EP2751663B1 patent drawingFigure 2
  • EP2751663B1 patent drawingFigure 3

AI summary

Building binary packages for software products, particularly large-scale software products, is a highly computation intensive process. Thus, it is desirable to distribute the workload over a large number of computing nodes so as to have the build process complete in an optimal period of time. One environment providing compute resources that can be utilized for a highly available and dynamically scalable distributed build process is an elastic compute cloud. In such an environment, virtual machines can be instantiated and destroyed as the resource requirements of the build process dictate. This has the advantage that dedicated hardware is unneeded, and excess capacity on the hardware employed can be employed for other computation tasks when the build process is idle. Presented herein are systems, methods and computer storage media for distributing a highly available and scalable build service, suitable for use in an elastic compute environment or other distributed environment.