Centralized Application Deployment in Server Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional management of configuration and deployment for software and hardware in distributed systems is time-consuming and error-prone, requiring manual changes across multiple servers and instances, which can lead to compatibility issues and increased costs due to repetitive compilation and deployment processes.

Innovation Solution

A system and method for deploying applications in a domain that involves assembling and compiling source code on a domain administration server, storing it in a central repository, and deploying it to multiple server clusters, allowing for phased deployment and management of different application versions to maintain compatibility and reduce errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual operations are used for compiling and deploying each application instance on each server, then flexibility to make individual changes is achieved, but time consumption and error rate increase significantly

Engineering Contradiction:
Improveflexibility to make individual changesVSAvoidtime consumption
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by compiling the application once on the domain administration server and storing the compiled artifact in a repository. This pre-compilation step eliminates the need for repetitive compilation on each target server, significantly reducing deployment time while maintaining the ability to make changes through version control in the repository.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a centralized copy of the compiled application in a repository that can be efficiently distributed to multiple servers. Instead of compiling separately on each server, the system copies the pre-compiled artifact from the repository to multiple target servers, reducing time consumption while allowing version management through copy operations.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If manual operations are used for modifying configuration files across hundreds of servers, then individual server customization is possible, but error rate and time consumption increase

Engineering Contradiction:
Improveindividual server customizationVSAvoiderror rate
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent implements a universal configuration management system where a single configuration template can be applied across multiple servers. The domain administration server manages configuration files in a repository that can be selectively deployed to different server subsets, providing both consistency across the system and the ability to customize for specific servers when needed.

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

Solution Approach 2:

The patent uses configuration templates that can be copied and deployed to multiple servers simultaneously. This approach maintains precision by using standardized templates while allowing customization through selective modification of specific server configurations in the repository before deployment.

Inventive Principle:
Principle #26Copying

3Stability of the object's composition

If the same application version is deployed to all servers, then consistency is maintained, but ability to perform phased rollouts and A/B testing is limited

Engineering Contradiction:
ImproveconsistencyVSAvoidphased rollout capability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent segments the server infrastructure into different subsets that can receive different application versions. The domain administration server manages multiple versions in the repository and can selectively deploy to specific server subsets, enabling phased rollouts, A/B testing, and gradual migration while maintaining consistency within each subset.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic version management where the system can adaptively deploy different application versions to different server subsets based on operational needs. This allows phased rollouts and testing while maintaining consistency within each deployment subset, and the ability to switch configurations dynamically.

Inventive Principle:
Principle #15Dynamics

4Ease of manufacture

If repetitive compilation is performed on each server, then local optimization is possible, but productivity and deployment speed decrease

Engineering Contradiction:
Improvelocal optimizationVSAvoiddeployment speed
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent performs compilation as a preliminary action on the domain administration server before deployment. The compiled application artifact is then stored in a repository and rapidly distributed to multiple servers, eliminating repetitive compilation and significantly improving deployment speed while maintaining the ability to optimize for specific environments through configuration parameters.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7519964B1System and method for application deployment in a domain for a cluster
Publication Date: 2009.04.14 ORACLE AMERICAN INC
  • US7519964B1 patent drawing
  • US7519964B1 patent drawing
  • US7519964B1 patent drawing

AI summary

A system and method for application deployment in a server cluster from a central domain. The method may include assembling a set of source code and related resource files on an administration server coupled to an application repository. The method may also include compiling the set of source code and related resource files into an application and storing the application in the application repository. The application may then be deployed onto a first subset of servers in a cluster of servers and executed on the subset of servers. In one embodiment, the method may further include storing a different version of the application in the application repository and deploying the different version of the application onto a second subset of servers separate from the first subset of servers. The different version of the application may then be executed on the second subset of servers.