Probabilistic Provisioning for Serverless Performance Guarantees

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud computing platforms face challenges in providing deterministic end-to-end performance guarantees for server-less applications due to heterogeneity of computational resources and traffic, leading to unpredictable application functionality, such as latency, which complicates resource allocation and user experience.

Innovation Solution

The system introduces a probabilistic provisioning mechanism that allows application developers to specify performance-based service level agreements, focusing on intent rather than implementation details, using a declarative language to manage and optimize function placement across distributed cloud environments, ensuring end-to-end performance guarantees without exposing underlying server configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If cloud platforms use probabilistic resource allocation for server-less applications, then resource utilization flexibility is improved, but end-to-end performance predictability deteriorates

Engineering Contradiction:
Improveresource utilization flexibilityVSAvoidend-to-end performance predictability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary actions by provisioning resources in advance based on probabilistic performance models before actual request processing. The orchestrator selects and provisions function instances based on predicted performance characteristics, ensuring that when requests arrive, the necessary computational resources are already allocated and ready, thereby achieving both flexible resource utilization and predictable performance guarantees.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If developers specify detailed resource allocation information for each function instance, then performance control precision is improved, but server-less simplicity deteriorates

Engineering Contradiction:
Improveperformance control precisionVSAvoidserver-less simplicity
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The system introduces an intermediary orchestrator that acts as a mediator between the developer's high-level performance requirements and the underlying complex resource allocation mechanisms. The orchestrator translates simple performance guarantees into detailed resource provisioning decisions, handling the complexity of selecting and provisioning function instances with appropriate resources without requiring developers to specify granular allocation details.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If cloud platforms provide statistical performance information, then transparency is improved, but actionable performance guarantees deteriorate

Engineering Contradiction:
Improveperformance information transparencyVSAvoidactionable performance guarantees
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

The system changes the parameter representation from aggregate statistical information to instance-level performance characteristics. Instead of providing only overall statistical summaries, the system tracks and provides performance information at the level of individual function instances, enabling both transparency about actual performance and actionable guarantees by identifying specific instances that can meet service level objectives.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10686678B2Device for orchestrating distributed application deployment with end-to-end performance guarantee
Publication Date: 2020.06.16 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10686678B2 patent drawing
  • US10686678B2 patent drawing
  • US10686678B2 patent drawing

AI summary

A method for receiving, in an application orchestrator, a request for executing an application. The method includes identifying a function sequence to complete the application, each function in the function sequence is executed in one instance, and identifying an instance chain of the functions to complete the application, wherein the instance chain includes an instance for each function in the function sequence. The method includes tracking a performance of each instance for each function in the chain, and selecting an application execution route based on the performance that includes the instance chain of the functions to complete the application. The method includes allocating a server resource to each instance for each function and modifying the application execution route based on a performance and a performance policy. A system and a computer readable medium storing instructions to perform the above method are also provided.