Efficient placement of server-less workloads on transient infrastructure based on policy-driven relocation

By implementing temporary infrastructure on multiple geographically distributed computing nodes, the problem of loss of intermediate results during transient VM termination is solved, and efficient execution and stability of serverless workloads are achieved.

CN119907966APending Publication Date: 2025-04-29INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202380067769.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-22
Filing Date
2023-09-18
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

There is a problem that intermediate results can be completely lost when performing serverless workloads on transient infrastructure, especially when the transient VM terminates suddenly.

Method used

By implementing temporary infrastructure on multiple geographically distributed compute nodes, receiving workloads and policy definitions, selecting appropriate compute nodes to execute workloads, and freezing execution when interference events are detected, storing intermediate results and states, terminating execution, and continuing workloads under policy constraints.

Benefits of technology

It realizes efficient execution of serverless workloads on transient infrastructure, ensures that intermediate results are not lost, and can continue workloads on transit infrastructure in different regions, improving system stability and flexibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119907966A_ABST
    Figure CN119907966A_ABST
Patent Text Reader

Abstract

A computer-implemented method for executing a server-less workload on a transient infrastructure is disclosed. The method includes receiving a request to execute a workload and at least one policy, selecting an infrastructure component of a transient infrastructure for executing the workload, where the transient infrastructure is implemented using a plurality of geographically distributed computing nodes, and executing the workload on the transient infrastructure. Further, the method includes freezing execution of the workload upon receiving an interference event that causes execution of the workload to stop during execution of the workload, storing intermediate results and status of the execution of the workload in the cross-domain storage system, terminating execution of the workload, and storing the intermediate results and status of the execution of the workload in the cross-domain storage system. And continuing the workload execution using the intermediate result and under constraints defined by the at least one policy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to executing serverless workloads, and more particularly to a computer-implemented method for executing serverless workloads on a transient infrastructure. The present invention also relates to a deployment system for executing serverless workloads on a transient infrastructure, and a computer program product. Background Art

[0002] For some time now, the use of cloud computing infrastructure (public or private, or a hybrid model combining both approaches) has become the norm for providing computing resources and services to end users in enterprises and other organizations. Instead of large in-house computing centers, enterprises use more flexible IT (information technology) infrastructure components provided by cloud computing providers. Many of the services used may only have a temporal characteristic, i.e., they may not be used permanently, but only when needed. Such temporary resources (e.g., virtual machines) may be used under different service conditions (i.e., technical and contractual frameworks, i.e., service level agreements (SLAs)).

[0003] Cloud computing providers or cloud providers that provide computing power for any workload are faced with the challenge of operating data centers cost-effectively and efficiently. In the "classic" VM (virtual machine) supply world, customers will purchase VMs that are guaranteed to exist for a certain length of time that may be considerable. In the "classic" VM supply world, customers will purchase VMs that are guaranteed to exist for a certain length of time that may be considerable. From the perspective of the cloud provider, this has the disadvantage that planning capacity and cost can be derived from the number of customers in the requested VM and their lifespan. However, today's cloud-based computing models tend to be more flexible because customers only pay for the capacity they really need, and use a "pay-as-you-go" type of operating model in trade. For cloud providers, this means that planning capacity becomes more difficult because the amount of required capacity may vary in a much wider range. Therefore, cloud providers tend to have more available capacity than the actual required capacity to be able to serve peak demand. In order to cover low demand periods, cloud providers have introduced the concept of transient workloads or transient VMs. Unlike traditional VMs, transient VMs are not guaranteed to stay with the customer after they are "lent" or "borrowed", i.e., the cloud provider reserves the right to interrupt their operation at any time, sometimes without any warning. From the user's perspective, this disadvantage is offset by a much lower price, i.e., transient VMs offer a discount compared to traditional VMs, while they still provide the same set of technical features. To meet high capacity demands, the cloud provider reserves the right to take back capacity from those transient VMs to be able to support requests for traditional VMs operating under a higher level of SLA.

[0004] From the customer's perspective, the concept of transient VMs introduces even more flexibility, as it provides relatively cheap computing power, but for workloads that do not require uninterrupted execution, such as batch processing. On the other hand, customers use guarantees to keep their workloads running within a specific time frame, which can complicate their planning and may require additional recovery or remediation work.

[0005] There are some disclosures related to computer-implemented methods for executing serverless workloads on transient infrastructures. For example, document US2019 / 0028552A1 discloses systems and methods for managing a distributed network of function execution environments. In some examples, a function router registers multiple execution endpoints on a directory of execution endpoints and functions. Thus, each of the multiple execution endpoints includes a corresponding runtime environment capable of executing one or more functions. The function router receives a request from a client to execute a specific function, and based on the request, may be released to a directory for a specific function and an execution endpoint associated with the specific function. Such functions can serve as the basis for predefined SLAs.

[0006] In addition, document US11082333B1 describes various methods for allocating resources to an application having multiple application components, wherein one or more functions are executed at least once, and a serverless service architecture that allows identification of multiple routing paths, whereby each routing path is associated with the same functional service provided by one or more containers or serverless execution entities.

[0007] A disadvantage of the known solutions may be that none of them reflects the special conditions in which transient VMs are operated and the disadvantages caused by the transient nature of the VMs of customers and / or users.

[0008] Therefore, it may be necessary to overcome these limitations, in particular to ensure that intermediate results from a transient VM are not completely lost when the transient VM is terminated abruptly. Summary of the invention

[0009] According to one aspect of the present invention, there is a method, computer program product and / or system for use with a first workload and a temporary infrastructure, wherein the temporary infrastructure includes multiple infrastructure components that perform the following operations (not necessarily in the following order): (i) implementing the temporary infrastructure by multiple geographically distributed computing nodes that respectively represent the multiple infrastructure components; (ii) receiving a request for executing a first workload; (iii) receiving a policy definition including a set (multiple) policies; (iv) selecting a first computing node from the multiple geographically distributed computing nodes for executing the first workload, wherein the selecting the temporary infrastructure includes applying the set of policies to determine the identity of the first computing node; (v) executing the workload on a first temporary infrastructure component corresponding to the first computing node; (vi) during the execution of the first workload, detecting the occurrence of an interference event that causes the execution of the first workload to stop; and (vii) in response to detecting the occurrence of the interference event, freezing the execution of the workload.

[0010] According to one aspect of the invention, a computer-implemented method for executing a serverless workload on a transient infrastructure may be provided. The method may include receiving a request to execute a workload and at least one policy, selecting infrastructure components of a transient infrastructure for executing the workload, wherein the transient infrastructure is implemented using a plurality of geographically distributed computing nodes, and executing the workload on the transient infrastructure.

[0011] In addition, the method may include freezing the execution of the workload when a stop interference event causing the workload execution is received during the execution of the workload, storing intermediate results and status of the workload execution in a cross-domain storage system, terminating the execution of the workload, and using the intermediate results and continuing the workload execution under constraints defined by at least one policy.

[0012] According to another aspect of the present invention, a deployment system for executing serverless workloads on a transient infrastructure may be provided. The system may include a processor and a memory operably coupled to the processor, wherein the memory stores a program code portion that, when executed, enables the processor to receive a request for executing a workload and at least one policy, select an infrastructure component of a transient infrastructure for executing the workload, wherein the transient infrastructure is implemented using a plurality of geographically distributed computing nodes, and execute the workload on the transient infrastructure.

[0013] In addition, when an interference event is received during the execution of the workload that causes the execution of the workload to stop, the processor can also be enabled to freeze the execution of the workload, store the intermediate results and status of the workload execution in a cross-domain storage system, terminate the execution of the workload, and continue the execution of the workload using the intermediate results under the constraints defined by the at least one policy.

[0014] The proposed computer-implemented method for executing serverless workloads on transient infrastructure may provide several advantages, technical effects, contributions and / or improvements:

[0015] The benefits can be at least twofold: The cloud computing provider can make resources available as transient infrastructure components that are not currently used and are not subject to specific SLAs under special conditions. Thus, the available resources can be used in a more efficient manner.

[0016] On the other hand, those users who have non-time-sensitive workloads to run can utilize this additional capacity at attractive rates. Thus, a win-win condition can be created for both the provider and the user.

[0017] Even though the provider may terminate the availability of the transient infrastructure, users may still benefit from its temporary existence because the workload may be executed on subsequent transit infrastructure from the same or a different cloud computing provider in the same or different region, depending on the underlying policy or policies.

[0018] Furthermore, parallel executions of the same workload with different start parameter values ​​can be initiated without excessive SLAs. In addition, an optimization routine for determining the "best" transit infrastructure can be used by analyzing historical trend data collected from previous executions of the workload executed on different transient infrastructures.

[0019] Thus, the storage of intermediate results and states as a byproduct of executing the workload on or in the transit infrastructure may facilitate not restarting the workload on a different transient infrastructure if the current infrastructure has terminated. Instead, the workload may be continued using a snapshot stored during certain points in time during the actual workload execution.

[0020] It is worth mentioning the stability of the system. Since the intermediate results and states are stored, this is also very useful in case of any disaster recovery that may be required; for example, if a data center fails, the application / workload can be triggered to any other data center, thereby reducing costs and making the system more efficient.

[0021] In the following, additional embodiments of the inventive concept applicable to the method and to the system will be described.

[0022] According to a preferred embodiment of the method, the transient infrastructure may be specifically temporarily implemented as part of a cloud computing environment; it may be added that it is operated by a cloud computing provider. Due to the temporary nature of the transient infrastructure, it may be stopped, i.e. terminated or disturbed, at any point in time. Such transient infrastructure is provided by different public cloud computing providers under different names, such as "live instances" or "transient instances". User organizations may use such virtual transient infrastructure components for those workloads that do not need to deliver results within a predefined amount of time. Subsequently, the provisioning conditions may be favorable for the user organization, such as a relatively low price. The disadvantage for the end-user organization is that there are no performance guarantees or other good SLA conditions. The advantage of cloud computing providers may be that they can generate available on-site capacity and still achieve a certain margin on it.

[0023] According to an interesting embodiment, the method may further include receiving a plurality of sets of job run parameter values ​​and receiving a request to execute the workload; and executing the workload multiple times, wherein each execution instance is executed using another set of the plurality of sets of job run parameter values. Thus, the job run parameter values ​​represent a set of values ​​required as input for a particular job. Thus, for example, simulations with many different start parameters (i.e., different job run parameter values) may be executed in parallel. As an alternative example, a monthly payment application should be mentioned. Each instance of the transient infrastructure may receive a subset of employee data to determine monthly payment and tax data in parallel using different transient infrastructure components.

[0024] According to a preferred embodiment of the method, a disturbance event (i.e., an event that causes a transient VM to be stopped) may be caused by at least one or more policies. For example, a new re-attracted transient VM may appear elsewhere due to idle capacity elsewhere. This may be combined with a policy that defines that the cheapest transient VM should always be used.

[0025] According to another preferred embodiment of the method, one or more resources required for executing a workload in a transient infrastructure may be removed by an unforeseen event. This may be the case, for example, if the provider may decide, for example by an automated system, to provide resources to a client (i.e., customer) because of his contract conditions (he simply pays more) or due to technical reasons, for example because the required resources become unavailable in another area (e.g., system or network error) and the provider has to satisfy other customers' requests due to previously agreed SLA definitions. In case of such unexpected or unforeseen events, or in case of policy conditions (as exemplified in the previous paragraph), the state and intermediate results of the actual execution of the transient VM would usually be lost. But due to the special provisions of the concept proposed in this article, namely the storage of intermediate results and states, this will not be the case.

[0026] According to another advantageous embodiment of the method, another transient infrastructure that requests the stored intermediate results and states of the workload execution from the cross-domain storage system can be used to continue the execution of the workload. Therefore, for users working with transient VMs, the process can be transparent, i.e. invisible. The execution will simply be moved to another transient infrastructure (transient VM) and continue its operation using the stored intermediate results and states. This may result in some delays in executing the complete task. However, the advantages are readily available.

[0027] According to an enhanced embodiment of the method, “freezing the execution of workload” and “storing intermediate results and states” may be performed after receiving a “recycling scheduling message.” The “recycling scheduling message” may be initiated by a provider before terminating a transient VM being used by another user.

[0028] According to a useful embodiment, the method may further include determining a plurality of execution environments that are compatible with the technical requirements of the workload and at least one policy, and when only one execution environment that is compatible with the technical requirements of the workload and at least one policy is determined, placing the workload in the determined one execution environment. Thus, a decision between different execution options may be avoided, i.e., a direct deployment may be initiated. In addition, the requirements for the workload may be received with the request or from a registry storing requirements for specific workload requests.

[0029] According to another or alternative useful embodiment, the method may further comprise:

[0030] When several execution environments satisfy the technical requirements of the workload and at least one policy, determine a score value for each satisfied execution environment using the workload and the technical requirements of the at least one policy, especially from the perspective of different geographical regions, and place the workload in the execution environment with the best score value. The meaning of "best" can be predefined. Optionally, this can be determined dynamically, for example, based on the workload type, or statically determined before starting the system, or periodically determined.

[0031] According to another developed embodiment, the method may further include using historical trends of the life cycle of the transient VM, for example based on timing (e.g., hour of the day, day of the week, day of the month, ...) for determining the score value. Thus, the analysis may determine what percentage of transient VMs are likely to succeed to the end before being terminated and forced to another transient VM.

[0032] Furthermore, embodiments may take the form of an associated computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in conjunction with a computer or any instruction execution system. For the purposes of this specification, a computer-usable or computer-readable medium may be any means, including means for storing, communicating, propagating, or transmitting a program for use by or in conjunction with an instruction execution system, apparatus, or device. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] It should be noted that embodiments of the present invention are described with reference to different subject matters. In particular, some embodiments are described with reference to method type claims, while other embodiments are described with reference to apparatus type claims. However, a person skilled in the art will appreciate from the above and following description that, unless otherwise indicated, any combination of features relating to different subject matters, in addition to any combination of features belonging to one type of subject matter, in particular any combination of features of a method type claim with features of an apparatus type claim, is also considered to be disclosed within this document.

[0034] The aspects defined above and further aspects of the invention are apparent from the examples of embodiment described hereinafter and are explained with reference to the examples of embodiment, to which the invention is not limited.

[0035] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings:

[0036] Figure 1 A block diagram illustrating an embodiment of a computer-implemented method of the present invention for executing serverless workloads on a transient infrastructure.

[0037] Figures 2 to 4 A block diagram showing how traditional VMs and transient VMs relate to each other.

[0038] Figure 5 A block diagram illustrating an embodiment of a resource manager controlling VMs, particularly transient VMs.

[0039] Figure 6 An embodiment closer to implementation and its components are shown.

[0040] Figure 7 A block diagram illustrating a flow diagram of an embodiment of a deployment process.

[0041] Figure 8 A block diagram of an embodiment for policy scoring is shown.

[0042] Fig. 9A block diagram of an embodiment of the inventive deployment system for executing serverless workloads on a transient infrastructure is shown.

[0043] Fig.10 Shown including according to Fig. 9 An embodiment of a computing system of the system.

[0044] Fig.11 A cloud computing environment is shown in which at least a portion of the inventive concepts may be deployed.

[0045] Fig.12 Components of an example of a cloud computing environment are shown. DETAILED DESCRIPTION

[0046] In the context of this specification, the following technical idioms, terms and / or expressions may be used:

[0047] The term "serverless workload" may refer to computer operations where the user does not need to care for, operate, or maintain the required technical infrastructure when processing the workload. The user can focus entirely on the workload and "forget about the infrastructure."

[0048] The term "transient infrastructure" may primarily refer to virtual machines of a virtual infrastructure that becomes available on an available basis from a cloud computing provider. Thus, transient infrastructure components may be terminated by the provider with or without any warning and / or delay. This may represent a risk to the user. However, according to the concepts proposed herein, this characteristic may be balanced by storing intermediate results and states during the execution of a workload on a transient infrastructure. Since the stored intermediate results and states may be used as a starting point for the execution of resources on a different transit infrastructure, the workload may continue without major disadvantages.

[0049] The term "request to execute a workload" may refer to a message requesting a particular type of workload with an accompanying set of workload parameters and starting values ​​or job parameter values. In addition, a workload may be accompanied by one or more policies according to which the workload should be executed.

[0050] The term "policy" may refer to a framework or framework conditions under which a particular workload should be executed. As an example, the geographic region where the data center providing the transit infrastructure component is located should be in a region where the GDPR (General Data Protection Regulation of the European Union) may have to apply. Other regions may have other government regulations or other regulations.

[0051] The term "infrastructure component" may primarily refer to a virtual machine or a virtual machine / application pair. In addition, a computing container ("an incomplete virtual machine") may also be referred to as an infrastructure component in the context of this article. However, it may be required that the accompanying virtual machine may also be part of the infrastructure component in question.

[0052] The term "interference event" may denote any type of disruption that may cause the transit infrastructure to stop, sleep or terminate. As a result, it will no longer be available to execute the customer's requested workload. An interference event may have different root causes. On the one hand, it may be initiated by the provider. For example, a customer with a higher value SLA may have requested resources. On the other hand, it may be user-side driven, for example, based on a policy that defines that always the most attractive (this may be definable or configurable) transient infrastructure will be used for a specific workload.

[0053] The term "intermediate results and states" may refer to a "snapshot" of the state of a workload during execution. These intermediate results and states may be used as a starting point for the continuation of a workload (or a copy thereof) in a different infrastructure environment. Intermediate results and states may be captured at trigger points during the execution of a workload or at equally spaced points in time.

[0054] The term "cross-domain storage system" may refer to a persistent storage system that provides the ability to store intermediate results and states of a workload and make them available upon request at a later point in time. A cross-domain storage system may be operated "on-premises" by a user, or may be provided as part of a cloud computing environment.

[0055] The term "job run parameter value" may refer to a value required as input for a particular workload or job to be executed.

[0056] The term "unforeseen event" may refer to any event that causes a transient infrastructure to stop because the underlying physical resources may be needed for other purposes.

[0057] The term "cloud computing" and the equivalently more specific term "cloud computing environment" in this context may be interpreted as a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services, collectively referred to as an execution environment) that can be quickly provisioned and released with minimal management effort or service provider interaction. The cloud model promotes availability and consists of at least five basic characteristics, three service models, and four deployment models.

[0058] The basic characteristics of cloud computing include:

[0059] (i) On-demand self-service: Consumers can unilaterally and automatically provision computing capacity (e.g., server time and network storage) when needed, without the need for manual interaction with each service provider.

[0060] (ii) Broad Network Access. Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs (Personal Digital Assistants)).

[0061] (iii) Resource pooling. Computing resources of a provider are pooled to serve multiple consumers using a multi-tenant model with different physical and virtual resources, dynamically allocated and reallocated based on consumer demand. There is a sense of location independence because the customer usually does not control or know the exact location of the provided resources, but is able to specify the location at a higher level of abstraction (such as country, state, or data center). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.

[0062] (iv) Rapid elasticity. In some cases, the ability to scale out quickly and scale in quickly can be provided quickly and elastically. To the consumer, the capacity available for provisioning often appears to be unlimited and can be purchased in any quantity at any time.

[0063] (v) Measured services. Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.

[0064] Service models used for cloud computing purposes include:

[0065] (i) Cloud Software as a Service (SaaS). The capability provided to the consumer is to use the provider's applications running on the cloud infrastructure. The applications are accessible from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0066] (ii) Cloud Platform as a Service (PaaS). The capability provided to consumers is to deploy consumer-created or acquired applications onto the cloud infrastructure. The consumer-created or acquired applications are created using programming languages ​​and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems or storage, but has control over the deployed applications and possible configuration of the application hosting environment.

[0067] (iii) Cloud Infrastructure as a Service (IaaS). The capabilities provided to consumers are processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0068] Deployment models for cloud computing include:

[0069] (i) Private cloud. The cloud infrastructure is operated only by the organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0070] (ii) Community Cloud. The cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-site.

[0071] (iii) Public Cloud. Cloud infrastructure is available to the general public or large industrial groups and is owned by an organization that sells cloud services.

[0072] (iv) Hybrid Cloud. A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0073] It can be noted that cloud software can fully exploit the cloud paradigm through service orientation with a focus on statelessness (with exceptions), low coupling, modularity, and semantic interoperability.

[0074] Below, a detailed description of the drawings will be given. All descriptions in the figures are schematic. First, a block diagram of an embodiment of a computer-implemented method of the present invention for executing a serverless workload on a transient infrastructure is given. Then, other embodiments and embodiments of a placement system for executing a serverless workload on a transient infrastructure will be described.

[0075] Figure 1A block diagram of a preferred embodiment of a computer-implemented method 100 for executing a serverless workload (i.e., a virtual machine (VM) or also a computing container with surrounding VMs) on, in, or by a transient infrastructure is shown. The method 100 receives 102 a request to execute a workload and at least one policy, and selects 104 infrastructure components of a transient infrastructure for executing the workload, wherein the transient infrastructure is implemented utilizing a plurality of geographically distributed computing nodes or more generally utilizing a cloud computing center.

[0076] The method 100 may also include executing 106 the workload on the transient infrastructure. Then, when an interference event is received 108 during the workload execution (the interference event causes a stop, i.e., suspension, pause, termination) of the non-recoverable mode of workload execution, freezing 110 the execution of the workload, storing 112 intermediate results and states of the workload execution in a cross-domain (or cross-region) storage system, terminating 114 the execution of the workload, and continuing 116 the workload execution using the intermediate results and under the constraints defined by the at least one policy.

[0077] Thus, the cross-domain storage system should be available for access by all nodes of all infrastructure providers that provide transient infrastructure components. Furthermore, at least one policy for continuing workload execution may be the same or a different policy, since the workload may be executed in a different geographic region where different technical and legal conditions may apply. Thus, policies may be made time-dependent and geographic-dependent.

[0078] Figures 2 to 4 Block diagrams 200, 300, 400 illustrate how traditional VMs and transient VMs relate to each other. Figure 2 The case of a conventional VM is shown, where the execution of the workload has been processed correctly between t0 and t1.

[0079] Figure 3 (a) shows a "good case" of executing a workload in a transient infrastructure environment between t1 and t2. It may not be necessary for the workload to have started at the initial availability time of the transient infrastructure components (ie, t0).

[0080] Figure 3 The corresponding "bad case" is shown in (b). Here, the workload will not be executed until its natural end, but will be interrupted by an unforeseen event at t2. Therefore, those instructions between t2 and t3 will not be executed.

[0081] This brings us to Figure 4(a) shows the inventive concept. This figure again shows a bad case for the execution of a workload for a transient infrastructure environment. Due to unforeseen events, the execution of statements between t2 and t3 is not possible. Therefore, the execution of the workload is interrupted because, for example, the provider has reclaimed the required resources. However, the execution of the workload can continue on the new transient VM between t4 and t5. Figure 4 (b), requests for stored intermediate result states of previously executed transient VMs are also used. Thus, the customer workload has been correctly processed even though "only" transient infrastructure components have been used.

[0082] Figure 5 Block diagram 500 of an embodiment of a resource manager controlling VMs, particularly transient VMs, is shown. Multiple VMs, such as VM1, VM2, VM3, VM4, are controlled by a VM resource manager 502. This may also include a notification interface 504. VMs may come in different "flavors," such as public (e.g., available to everyone), reserved (e.g., for a special purpose), transient (as defined above), and dedicated (e.g., for a customer). Thus, the VM resource manager 502 manages or controls the execution of jobs on different VMs as indicated via the notification interface 504.

[0083] Figure 6 An embodiment 600 and its components that are closer to implementation are shown. The control element of the concept proposed here is a global transient VM controller 602. It includes at least an agent 604, a historical data analyzer 606, and a policy controller 608. The last component interfaces with a policy database 610 to define under which conditions a certain job for a workload must be executed. Here, various different conditions can be defined, for example, a job should be run when the unit price of a transient VM is within a predefined range (e.g., $1-$2 per hour for CPU (central processing unit) usage) or within a predefined completion time (e.g., before 2022-11-20 14:00 UTC (Coordinated Universal Time)), or when the job must be executed in the EU (European Union) region / compliant data center; just to name a few examples.

[0084] It should also be mentioned that the global transient VM controller 602 includes decision logic for pausing, resuming, relocating and / or creating jobs and determining the execution of job instances in an efficient (cost / performance) manner by taking into account the requirements given by the policy and the system state (e.g., based on the distribution of the job policy across the various regions). Thus, the agent component 604 of the global transient VM controller 602 can access a global catalog 612 of service or workload definitions, from which it can select the one for which the global transient VM controller 602 has received a service request.

[0085] The proxy component 604 also receives in-flight data from an in-flight data store 614 of current executions of the workload, which data may also be stored, at least in part, in a historical data system 616. The historical data analyzer 606 may access the historical data store 616 to determine where requests to the transient infrastructure for a predetermined workload are best placed based on predetermined conditions (e.g., time, location, geography, and other interdependencies).

[0086] also, Figure 6 Components available in a geographic region (e.g., region A 618) are shown. Here, VM resource manager 620 (from Figure 5 5 (known as 502 in FIG. 1 ) is active, controlling different VMs, namely, for example, VM1, VM2, VM3, VM4 and VM5, having different characteristics (p=public, r=reserved, t=transient, d=dedicated).

[0087] As a new component, if compared with the traditional environment, the transient VM CRUD (Create-Read-Update-Delete) controller 622 becomes active. It is an information exchange with the VM resource manager 620, and receives requests from the global transient VM controller 602 and the related agent 604. Although the VM resource manager 620 manages the transient VMs (VM3 and VM5), there is also an information exchange between the transient VM CRUD controller 622 and the transient VM. This is required to store intermediate results and states.

[0088] To this end, the transient VMs push their states into the regional state data store 624; and upon request, the states are read and delivered to a new transient VM, such as transient VM5, for continuation of the unexpectedly interrupted workload (e.g., VM3). For this scenario, an agent 604 under the control of the global transient VM controller 602 triggers the relocation of the workload on the new transient VM based on, for example, individual metadata changes and other conditions such as the same or adopted policy (e.g., due to the different region executing the new transient VM).

[0089] In addition, transient VM CRUD controller 622 makes regional metadata available to regional metadata storage 626, from which corresponding data can be transferred to in-transit data storage 614. In addition, in-transit data storage 614 can also receive corresponding data from regional state storage 624. Thus, in-transit data storage 614 should be accessible across different regions or domains. This can be facilitated by a request from global transient VM controller 602 to in-transit data storage 614.

[0090] To distinguish the traditional environment from the new concepts proposed here, the new required components to achieve the advantages are at least as follows: a global transient VM controller 602 with its corresponding subcomponents, a policy DB 610, a transient VM CRUD controller 622, a regional state data store 624, a regional metadata store 626, an in-transit data store 614, and stored historical data 616.

[0091] The following sequence with distinguishing features as shown by the dashed lines will briefly illustrate the sequence of activities compared to the traditional control flow:

[0092] (1) After receiving the recall notification 628,

[0093] (2) The transient VM CRUD controller 622 alerts the corresponding transient VM3 and triggers the state saving process for

[0094] (3) storing (i.e., pushing) intermediate results and states, 630;

[0095] (4) once the new transient VM (here VM5) has been identified, it pulls 632 the state, i.e., the stored intermediate results and states, from the regional state store 624; and

[0096] (5) Therefore, transient VM CRUD controller 622 is concerned with the additional transient VM settings, namely VM5.

[0097] In other words, the concept proposed here introduces a system and method that uses transient infrastructure as a fundamental concept to allow for a more dynamic redistribution of running workloads to regions in order to react to infrastructure constraints, power outages, peak demand, etc., while being subject to user-defined requirements such as GDPR compliant data processing. Figure 6 ) to achieve this. To present the proposed concepts more comprehensively, the following use case can be considered:

[0098] (1) The client requires that the computing job be completed within, for example, 24 hours. The controller of the concept proposed here is aware of performance degradation, ongoing power outages, ongoing failures, or shortages of regular capacity in a selected region, and decides to pause / stop, maintain its state, and resume execution and one or more different regions. Thus, a region can be a geographical area where the relevant cloud computing center is located.

[0099] (2) A cloud computing provider operating a transient infrastructure decides to introduce larger discounts on infrastructure resources (e.g., VMs) in a region or during a given time period (usually to boost utilization in a given region). The proposed global transient VM controller (see Figure 6, 602) reacts to dynamic pricing models and ensures that computing jobs are placed in a cost-effective manner based on customer-defined rules or policies (e.g., if the unit price is lower than x$ or if the reliability of the computing center is higher than y%, or if the probability of getting the computer to complete without interruption is higher than z%, then my job must run). This also includes cloud computing providers deciding to run parts of the workload in different regions to overcome capacity shortages or optimize their cross-regional resource utilization.

[0100] (3) An external environment leaving the EU (European Union) (e.g., the UK) gives in to an embargo on a region (workloads are no longer "EU compliant"). This is a policy update that will be recognized by the controller and will automatically trigger the correct workload to move to another region or data center at short notice.

[0101] (4) The customer wants to process the workload in the most cost-effective way, and he expects the duration or performance to be much longer than it would take on a non-transient infrastructure. The global transient VM controller will automatically move the workload around according to customer-specific policies.

[0102] (5) The controller can analyze historical data to detect specific workload patterns (e.g., a large number of systems are occupied at 3 a.m. every night) and take action to prevent overload capacity shortages by proactively placing compute jobs in other areas.

[0103] Technically, all of the above have in common a system that has the following characteristics:

[0104] (i) monitor the capacity in a cloud computing data center at any point in time;

[0105] (ii) a notification system that triggers an event when there is not much “free capacity” left for cloud data to be sent in a region, and initiates a special proposal for freeing up capacity;

[0106] (iii) management systems for batch processing operations, especially for managing regional scheduling operations, freezing operations, relocation operations, unfreezing operations, etc.;

[0107] (iv) cross-region (or cross-domain) data storage to allow workloads to be moved if jobs need to be moved to different regions;

[0108] (v) manage and maintain the log or storage of policies that may define constraints for the execution of any workload; and

[0109] (vi) Data storage for maintaining historical data and an analyzer in execution mode.

[0110] To continue with the above use case, the scenario would continue as follows:

[0111] According to the policy of the exemplary running job, as an example, it must be completed within the next 24 hours, for example. The global transient VM controller is aware of performance degradation, ongoing power outage, or lack of regular capacity in the selected region, and decides to suspend and resume execution of the workload in another region.

[0112] Next, the cloud provider (or related automated system) decides to introduce bigger discounts for VMs in areas (or timeframes) where the idea is not as high as others (at the same time). The controller then reacts to the dynamic pricing model and ensures that jobs are placed in a cost-effective manner (according to e.g. if the unit price is below x$, then my job must run).

[0113] New policy updates (e.g., embargoes in specific regions) require running workloads to be moved to other regions or data centers in a short period of time. As a user, you want to process non-critical workloads in the most cost-effective way, and it is acceptable for the duration (or performance) to take longer than using regular VMs.

[0114] Historical data may reveal that certain workload patterns (e.g., 3 a.m. every night in Dallas) are consuming a large number of available systems, causing the global transient VM controller to take action to prevent overload capacity shortages by proactively placing jobs in other regions. Thus, instances of large jobs (equivalent to many instances) are processed across several regions to overcome capacity and cost constraints using forward-looking insights extracted from historical data.

[0115] An exemplary flow 700 of activities can be described as follows, and in Figure 7 In the context of , a block diagram of a flowchart of an embodiment of a placement process is shown.

[0116] - Receive a request for a job and possibly N associated job runs from the global transient VM controller.

[0117] - The global transient VM controller checks the policy associated with the submitted job and the associated job run completion status, 702 .

[0118] - The global transient VM controller "LOOP OVER" 704 on each zone to find out whether one or more resources available in each zone can satisfy the required policy, 706.

[0119] - For each policy listed in the collection of mandatory and optional policies (e.g., GDPR [Mandatory], Rewards [Optional], Completion Time [Optional]), the region will return a Boolean value of whether it can satisfy the individual policy.

[0120] - The global transient VM controller checks if at least one of the mandatory policies is not true. If so, the zone is removed from the list of potential zone targets.

[0121] -If exactly one region is found, the job is placed into that region, 708 .

[0122] If more than one region is found, mandatory and / or optional policies are evaluated to determine a score, 710. Each policy constraint is evaluated by determining a score based on a given target value, the distance that the cloud provider can guarantee, and a weight, which is then used to rank the regions and find the best fit for a particular workload request, 712.

[0123] - If no policy compliant region is found, the process is paused and re-entered after a certain waiting time (e.g., five minutes), 714, 716.

[0124] -(the remainder of) the job is now running in the specific region.

[0125] -If the job is completed without interference or interruption, the process ends, 718.

[0126] - Otherwise (otherwise), a disruption event occurs, 720 (e.g., capacity in a region is removed, incentives for resources in a region are changed, etc.), resulting in a policy violation or improvement (e.g., if prices in another region become much cheaper).

[0127] - The job is stopped / frozen and the intermediate residency and status is stored in the regional state data store (and copied to the in-transit data store, as described above), 722.

[0128] -The process then loops back to receive requests for jobs and evaluate enforcement policies, 702.

[0129] Note also that after the rules engine attempts to find / determine the best match 712, it may determine whether the job should be split into chunks that are processed in parallel and independently in different regions 724. The related quasi-parallel jobs are then executed in each region 726.

[0130] Figure 8 A block diagram of an example of a policy scoring 800 is shown. The figure is more or less self-explanatory, but some comments should be made. Block 802 shows an example of a constraint that may be defined in the upper portion, while the lower portion of block 802 shows an example, e.g., "GDPR: true".

[0131] On the lower right side of the figure, the actual settings for different regions A, B, C, D are shown as 804, 806, 808 and 810. It is easy to understand that the conditions in different regions are different as shown by different variables, for example, regions A, B and C work according to GDPR regulations, while region D is not ("GDPR: No"). It is also shown that the pricing of available CPU resources (all set to "1000") is different: $30 vs. $20 vs. $120 vs. $100.

[0132] Thus, for regions A and B, the suitability of the region is shown as "yes", with determined score values ​​of 0.56 and 0.64. Regions C and D are shown as unsuitable ("no"). In this case, the score values ​​of 0.16 and zero are actually insignificant.

[0133] Fig. 9 A block diagram of an embodiment of a system for deploying a serverless workload on a transient infrastructure is shown. The system includes a processor 902 and a memory 904 operatively coupled to the processor, wherein the memory 904 stores a program code portion that, when executed, enables the processor 902 to receive a request for executing a workload and at least one policy, for example, via a receiver 906, select an infrastructure component of a transient infrastructure for executing the workload, for example, via a selector unit 908, wherein the transient infrastructure is implemented using a plurality of geographically distributed computing nodes, and execute the workload on the transient infrastructure, for example, via an execution unit 910.

[0134] After receiving an interference event that causes the workload execution to be stopped during the execution of the workload, the processor can also freeze the execution of the workload, for example, through the freezing module 912, for example, through the intermediate storage system 914 (e.g., the local state memory, see Figure 6 624) stores intermediate results and states of workload execution in a cross-domain storage system, terminates the execution of the workload, and, for example, uses the intermediate results by reactivating unit 916 and continues the workload execution under constraints defined by at least one policy.

[0135] It should also be mentioned that all functional units, modules and functional blocks, in particular the receiver 906, the selector unit 908, the execution unit 910, the freezing module 912, the intermediate storage system 914, the reactivation unit 916, can be communicatively coupled to each other in a selected 1:1 manner for signal or message exchange. Alternatively, the functional units, modules and functional blocks can be linked to a system internal bus system 918 for selective signal or message exchange.

[0136] Embodiments of the invention may be implemented with virtually any type of computer, regardless of whether the platform is suitable for storing and / or executing program code. Fig.10 As an example, a computing system 1000 suitable for executing program code associated with the proposed method is shown.

[0137] The computing system 1000 is only one example of a suitable computer system, and is not intended to impose any limitations on the scope of use or functionality of the embodiments of the present invention described herein, regardless of whether the computer system 1000 can be implemented and / or perform any of the functions set forth above. In the computer system 1000, there are components that can operate with numerous other general or special computing system environments or configurations. Examples of known computing systems, environments, and / or configurations suitable for use with the computer system / server 1000 include, but are not limited to, personal computer systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs (personal computers), minicomputer systems, large computer systems, and distributed cloud computing environments including any of the above systems or devices, etc. The computer system / server 1000 can be described in the general context of computer system executable instructions, such as program modules executed by the computer system 1000. Typically, a program module can include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Computer system / server 1000 may be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0138] As shown in the figure, computer system / server 1000 is shown in the form of a general computing device. The components of computer system / server 1000 may include, but are not limited to, one or more processors or processing units 1002, system memory 1004, and various system components including system memory 1004 are coupled to a bus 1006 of processor 1002. Bus 1006 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of various bus architectures. As an example and not limitation, these architectures include industrial standard architecture (ISA) bus, microchannel architecture (MCA) bus, enhanced ISA (EISA) bus, video electronics technology standard association (VESA) local bus and peripheral component interconnect (PCI) bus. Computer system / server 1000 generally includes various computer system readable media. Such a medium can be any available medium that can be accessed by computer system / server 1000, and it includes both volatile and non-volatile media, removable and non-removable media.

[0139] System memory 1004 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 1008 and / or cache 1010. Computer system / server 1000 may also include other removable / non-removable, volatile / non-volatile computer system storage media. As an example only, storage system 1012 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium (not shown, and commonly referred to as a "hard drive"). Although not shown, a disk drive for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk") may be provided, as well as an optical disk drive for reading from or writing to a removable, non-volatile optical disk, such as a CD-ROM (compressed disk, read-only memory), a DVD-ROM (digital versatile disk-read-only memory) or other optical media. In this case, each may be connected to bus 1006 via one or more data medium interfaces. As will be further depicted and described below, memory 1004 may include at least one program product having a set (eg, at least one) of program modules configured to perform the functions of embodiments of the present invention.

[0140] By way of example and not limitation, a program / utility having a set (at least one) of program modules 1016, as well as an operating system, one or more application programs, other program modules, and program data, may be stored in memory 1004. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. Program modules 1016 generally perform the functions and / or methods of embodiments of the present invention as described herein.

[0141] The computer system / server 1000 may also communicate with one or more external devices 1018, such as a keyboard, a pointing device, a display 1020, etc.; one or more devices that enable a user to interact with the computer system / server 1000; and / or any device that enables the computer system / server 1000 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an input / output (I / O) interface 1014. In addition, the computer system / server 1000 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 1022. As depicted, the network adapter 1022 may communicate with other components of the computer system / server 1000 via a bus 1006. It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with the computer system / server 1000. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID (Redundant Array of Independent Disks) systems, tape drives, and data archival storage systems.

[0142] Additionally, the deployment system 900 for executing serverless workloads on a transient infrastructure may be connected to a bus system 1006 .

[0143] Fig.11 A cloud computing environment 1100 is shown in which at least a portion of the inventive concept may be deployed. A set of functional abstraction layers provided by the cloud computing environment is shown. It should be understood in advance that Fig.11 The components, layers, and functions shown in are intended to be illustrative only, and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided: Hardware and software layer 1102 includes hardware and software components. Examples of hardware components include: host 1104; server 1106; server 1108 based on RISC (reduced instruction set computer) architecture; blade server 1110; storage device 1112; network 1114 and network component 1114. In some embodiments, software components include network application server software 1116 and / or database software 1118.

[0144] The virtualization layer 1120 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 1122; virtual storage 1124; virtual networks 1126, including virtual private networks; virtual applications and operating systems 1128; and virtual clients 1130. In one example, the management layer 1132 can provide the functions described below. Resource provisioning 1134 provides dynamic procurement of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing 1136 provides cost tracking when resources are utilized in the cloud computing environment, as well as accounting or invoicing for the consumption of these resources. In one example, these resources can include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 1138 provides access to the cloud computing environment for consumers and system administrators. Service level management 1140 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and implementation 1142 provides pre-arrangement and procurement of cloud computing resources, where future demand for resources is anticipated according to the SLA.

[0145] The workload layer 1144 provides examples of functionality that can take advantage of a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include: mapping and navigation 1146; software development and lifecycle management 1148; virtual classroom education delivery 1150; data analytics processing 1152; transaction processing 1154; and a deployment system 1156 for executing serverless workloads on transient infrastructure (see also Fig. 9 of 900).

[0146] Fig.12 Components 1200 of a cloud computing environment 1202 are shown. As shown, the cloud computing environment 1202 includes one or more cloud computing nodes 1204 with which a local computing device used by a cloud consumer can communicate, such as a personal digital assistant (PDA) or cellular phone 1206, a desktop computer 1208, a laptop computer 1210, and / or an automobile computer system 1212. The nodes 1204 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above. This allows the cloud computing environment 1202 to provide infrastructure, platform, and / or software as a service for which the cloud consumer does not need to maintain resources on a local computing device. It should be understood that Fig.12 The types of computing devices 1204 shown in are intended to be illustrative only, and computing nodes 1204 of cloud computing environment 1202 may communicate with any type of computerized device over any type of network and / or network-addressable connection (eg, using a web browser).

[0147] The description of various embodiments of the present invention has been given for the purpose of illustration, but it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

[0148] The present invention may be implemented as a system, method, and / or computer program product. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.

[0149] The medium can be an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system for propagating the medium. Examples of computer readable media may include semiconductor or solid-state memory, magnetic tape, removable computer disk, random access memory (RAM), read-only memory (ROM), hard disk and optical disk. Current examples of optical disks include compact disk read-only memory (CD-ROM), compact disk read / write (CD R / W), DVD and Blu-ray disk.

[0150] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber (optical cable)), or an electrical signal transmitted by a wire.

[0151] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.

[0152] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and conventional procedural programming languages ​​(such as C programming language or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider through the Internet). In certain embodiments, for example, an electronic circuit including a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can utilize the state information of the computer-readable program instructions to personalize the electronic circuit, thereby executing the computer-readable program instructions, to realize various aspects of the present invention.

[0153] Various aspects of the present invention are described herein with reference to the flow chart and / or block diagram of the method, device (system) and computer program product according to embodiments of the present invention. It will be understood that each frame of the flow chart and / or block diagram and the combination of frames in the flow chart and / or block diagram can be implemented by computer-readable program instructions.

[0154] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0155] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or another device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or another device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0156] The flowcharts and / or block diagrams in the accompanying drawings illustrate possible implementations of the system, method, and computer program product according to various embodiments of the present invention, The architecture, functions, and operations. In some alternative implementations, the functions annotated in the blocks may not occur in the order annotated in the figure. For example, two boxes shown in succession may actually be executed substantially simultaneously, or the boxes may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each box illustrated in the block diagram and / or flowchart and the combination of boxes in the block diagram and / or flowchart can be implemented by a dedicated hardware-based system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.

[0157] The terms used herein are only for the purpose of describing specific embodiments, and are not intended to limit the present invention. As used herein, the singular form is one, and they are also intended to include the plural form, unless the context clearly indicates otherwise. It will also be understood that the terms "comprise" and / or "comprising" when used in this specification specify the presence of stated features, integers, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.

[0158] The corresponding structures, materials, actions and equivalents of all means or step-plus-function elements in the following claims are intended to include any structure, material or action for performing functions in combination with other claimed elements as specifically claimed. A description of the present invention has been given for the purpose of illustration and description, but the description is not exhaustive or limits the present invention to the disclosed form. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the present invention. The embodiments are selected and described in order to best explain the principles and practical applications of the present invention, and to enable other persons of ordinary skill in the art to understand the various embodiments of the present invention with various modifications, such as suitable for the intended specific use.

[0159] definition

[0160] Transient Infrastructure / Temporary Infrastructure: Transient infrastructure and temporary infrastructure should be considered to mean the same thing; note that the transient infrastructure discussed and claimed herein is not a transient signal, but rather a set of data and / or code, such as a virtual machine (VM) that is typically stored and run from a set of volatile memories.

[0161] The present invention: should not be taken as an absolute indication that the subject matter described by the term "the present invention" is covered by the claims as filed, or by claims that may ultimately issue after patent examination; while the term "the present invention" is used to help the reader gain a general sense for which the disclosure herein is believed to be potentially new, as indicated by the use of the term "the present invention", that understanding is tentative and provisional, and is subject to change during the course of patent prosecution as relevant information develops and the claims are potentially amended. Examples: See above for the definition of "the present invention", and similar caveats apply to the term "examples".

[0162] And / or: inclusive; for example, A, B, and / or C means at least one of A or B or C is true and applicable.

[0163] Include / Contains: Means "including but not necessarily limited to", unless expressly stated otherwise.

[0164] Module / Sub-module: Any collection of hardware, firmware, and / or software that works operatively to perform a function, regardless of whether the module is: (i) in a single local proximity; (ii) distributed over a wide area; (iii) in a single proximity within a larger software code segment; (iv) located within a single software code segment; (v) located in a single storage device, memory, or medium; (vi) mechanically connected; (vii) electrically connected; and / or (viii) connected in a data communication manner.

[0165] Computer: Any device with significant data processing and / or machine-readable instruction reading capabilities, including but not limited to: desktop computers, mainframe computers, laptop computers, Field Programmable Gate Array (FPGA) based devices, smart phones, personal digital assistants (PDAs), body mounted or plugged in computers, embedded device style computers, Application Specific Integrated Circuit (ASIC) based devices.

[0166] A set of things: does not include the empty set; a "set of things" means that there is at least one thing, and there may be more things; for example, a set of computers means at least one computer, and there may be more computers.

[0167] Virtualized Computing Environment (VCE): A VCE can be stored as an "image". A new active instance of a VCE can be instantiated from that image. Two types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of a program running in it, such an isolated user space instance may look like a real computer. A computer program running on a normal operating system can see all of that computer's resources (connected devices, files and folders, network shares, CPU power, quantifiable hardware capabilities). However, a program running inside a container can only see the contents of the container and the devices assigned to the container.

[0168] Cloud computing system: A computer system distributed over the geographical scope of a communication network, in which server-side computing work and / or computing resources are primarily (or entirely) implemented by VCEs (see the definition of VCE in the previous paragraph). Cloud computing systems typically include cloud coordination modules, layers, and / or programs that manage and control server-side VCEs with respect to instantiation, configuration, movement between physical host devices, termination of previously active VCEs, etc.

Claims

1. A computer-implemented method (CIM) for use with a first workload and a temporary infrastructure comprising a plurality of infrastructure components, the CIM comprising: implementing the temporary infrastructure by a plurality of geographically distributed computing nodes respectively representing the plurality of infrastructure components; receiving a request to execute a first workload; receiving a policy definition comprising a set of policies; selecting a first computing node from the plurality of geographically distributed computing nodes for executing a first workload, wherein selecting the temporary infrastructure comprises applying the set of policies to determine an identity of the first computing node; executing the workload on a first temporary infrastructure component corresponding to a first computing node; During execution of the first workload, detecting an occurrence of an interference event that causes execution of the first workload to cease; and In response to detecting the occurrence of the interference event, execution of the workload is frozen.

2. The CIM of claim 1, further comprising: In response to freezing of execution of the workload, an execution status data set including information indicative of a plurality of intermediate results and status of execution of the workload is stored.

3. The CIM of claim 2, wherein the execution state data set is stored in a cross-domain storage system.

4. The CIM according to any one of claims 1 to 3, further comprising: Terminate execution of the workload.

5. The CIM of claim 4, further comprising: After termination of the workload, execution of the workload continues using the execution state data and subject to constraints defined by the set of policies.

6. The CIM according to any one of claims 1 to 5, wherein the temporary infrastructure is implemented as a part of a cloud computing environment.

7. A computer program product (CPP) for use with a first workload and a temporary infrastructure comprising a plurality of infrastructure components, the CPP comprising: a set of storage devices; as well as Computer code commonly stored in the group of storage devices, the computer code including data and instructions to cause the processor group to perform at least the following operations: implementing the temporary infrastructure by a plurality of geographically distributed computing nodes respectively representing the plurality of infrastructure components, receiving a request to execute a first workload, receiving a policy definition comprising a set of policies, selecting a first computing node from the plurality of geographically distributed computing nodes for executing a first workload, wherein selecting the temporary infrastructure comprises applying the set of policies to determine an identity of the first computing node, executing the workload on a first temporary infrastructure component corresponding to a first computing node, During execution of a first workload, detecting the occurrence of an interference event that causes execution of the first workload to cease, and In response to detecting the occurrence of the interference event, execution of the workload is frozen.

8. The CPP of claim 7, wherein the computer code further comprises instructions for causing the processor group to: In response to freezing of execution of the workload, an execution status data set including information indicative of a plurality of intermediate results and status of execution of the workload is stored.

9. The CPP according to claim 8, wherein The execution status data set is stored in a cross-domain storage system.

10. The CPP according to any one of claims 7 to 9, wherein: The computer code also includes instructions for causing the processor group to: Terminate execution of the workload.

11. The CPP of claim 10, wherein the computer code further comprises instructions for causing the processor group to: After termination of the workload, execution of the workload continues using the execution state data and subject to constraints defined by the set of policies.

12. The CPP according to any one of claims 7 to 11, wherein: The temporary infrastructure is implemented as part of a cloud computing environment.

13. A computer system (CS) for use with a first workload and a temporary infrastructure comprising a plurality of infrastructure components, the CS comprising: Processor Group; a set of storage devices; as well as Computer codes commonly stored in the group of storage devices, the computer codes including data and instructions to cause the processor group to perform at least the following operations: implementing the temporary infrastructure by a plurality of geographically distributed computing nodes respectively representing the plurality of infrastructure components, receiving a request to execute a first workload, receiving a policy definition comprising a set of policies, selecting a first computing node from the plurality of geographically distributed computing nodes for executing a first workload, wherein selecting the temporary infrastructure comprises applying the set of policies to determine an identity of the first computing node, executing the workload on a first temporary infrastructure component corresponding to a first computing node, During execution of a first workload, detecting the occurrence of an interference event that causes execution of the first workload to cease, and In response to detecting the occurrence of the interference event, execution of the workload is frozen.

14. The CS of claim 13, wherein the computer code further comprises instructions for causing the processor group to: In response to freezing of execution of the workload, an execution status data set including information indicative of a plurality of intermediate results and status of execution of the workload is stored.

15. The CS of claim 14, wherein the execution state data set is stored in a cross-domain storage system.

16. The CS according to any one of claims 13 to 15, wherein: The computer code also includes instructions for causing the processor group to: Terminate execution of the workload.

17. The CS of claim 16, wherein the computer code further comprises instructions for causing the processor group to: After termination of the workload, execution of the workload continues using the execution state data and subject to constraints defined by the set of policies.

18. The CS according to any one of claims 13 to 17, wherein: The temporary infrastructure is implemented as part of a cloud computing environment.

Citation Information

Patent Citations

  • Systems and methods for managing resources in a serverless workload

    US11082333B1

  • Managing a distributed network of function execution environments

    US20190028552A1