Method and system for running serverless workloads on transient infrastructure
The method and system for executing serverless workloads on transient infrastructure address inefficiencies by implementing policies to manage workload execution, ensuring continuity and efficient resource use through intermediate result storage and relocation.
Patent Information
- Application Number
- JP2025514785
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-22
- Filing Date
- 2023-09-18
- Publication Date
- 2025-10-07
AI Technical Summary
Existing cloud computing models face challenges in efficiently managing transient virtual machines (VMs) due to the unpredictable nature of workload demands, leading to overprovisioning and inefficiencies, with intermediate results being lost when VMs are abruptly terminated.
A method and system for executing serverless workloads on transient infrastructure, involving the implementation of policies to select computing nodes, freezing workload execution upon disruptive events, storing intermediate results, and continuing execution on another node based on predefined policies.
Enables efficient use of transient resources, reduces costs, and ensures continuity of workloads by storing intermediate results, allowing seamless relocation and continuation on different transient infrastructure without significant disruption.
Smart Images

Figure 2025533436000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to running serverless workloads, and more particularly to a computer-implemented method for running serverless workloads on transient (temporary) infrastructure. The present invention further relates to a system, computer program, for efficient placement of serverless workloads on transient infrastructure through policy-driven relocation. [Background technology]
[0002] For some time now, the use of cloud computing infrastructures (public or private clouds, or hybrid models combining the two approaches) has become the standard for providing computing resources and services to end users in businesses and other organizations. Instead of large in-house computing centers, businesses use more flexible IT (Information Technology) infrastructure components offered by cloud computing providers. Many of the services used may only be of a temporary nature, i.e., they may only be used on demand rather than permanently. Such temporary resources, e.g., virtual machines, may be used under various service conditions, i.e., technical and contractual frameworks, i.e., Service Level Agreements (SLAs).
[0003] Cloud computing providers, or cloud providers, who provide computing capacity for any workload, face the challenge of operating data centers cost-effectively and efficiently. In the world of "classic" VM (virtual machine) provisioning, customers purchase VMs guaranteed to exist for a certain, possibly comparable, period of time. From the cloud provider's perspective, this approach has the drawback of being able to derive planned capacity and costs from the number of customers requesting VMs and the lifespan of those VMs. However, today's cloud-based computing models tend to be more flexible, with customers paying only for the capacity they actually need, a "pay-as-you-go" operating model being adopted in the trade. For cloud providers, this means that capacity planning becomes very difficult because required capacity can span a much wider range. As a result, cloud providers tend to have more available capacity than is actually needed to accommodate peak demand. To cover periods of low demand, cloud providers have introduced the concept of transient workloads or transient VMs. Unlike traditional VMs, transient VMs are not guaranteed continued availability to customers after they are "loaned" or "borrowed." That is, cloud providers reserve the right to discontinue their operation at any time, sometimes without prior warning. From the user's perspective, this drawback is offset by a much lower price. That is, transient VMs are offered at a lower price than traditional VMs while offering the same set of technical features. To meet high-volume demands, cloud providers reserve the right to reclaim capacity from these transient VMs so that they can support the demands of traditional VMs operating under higher SLAs.
[0004] From a customer perspective, the concept of transient (temporary) VMs provides relatively cheap computing power while providing additional flexibility for workloads that do not require uninterrupted execution, such as batch processing. On the other hand, customers rely on guarantees to run workloads within specific time frames, which can complicate planning and require additional recovery or repair efforts.
[0005] There are several disclosures related to computer-implemented methods for executing serverless workloads on a transient infrastructure. For example, document US2019 / 0028552A1 discloses a system and method for managing a distributed network for function execution environments. In some examples, a function router registers multiple execution endpoints with a catalog of execution endpoints and functions, whereby each of the multiple execution endpoints includes a respective execution environment capable of executing one or more functions. The function router can receive a request from a client to execute a specific function and, based on the request, release the specific function and its associated execution endpoints into the catalog. Such functions can be the basis for a predefined SLA.
[0006] Furthermore, US11082333B1 describes various approaches for allocating resources to an application having multiple application components, each performing at least one function or functions, and a serverless service architecture that allows identifying 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] The drawbacks of known solutions may not all reflect the special conditions under which transient VMs are operated and the drawbacks resulting from the transient nature of VMs for customers and / or users.
[0008] Therefore, it may be necessary to overcome these limitations, especially to ensure that intermediate results from a transient VM are not completely lost when the transient VM is abruptly terminated. Summary of the Invention
[0009] According to an aspect of the present invention, a computer-implemented method, computer program product, and / or system is disclosed that includes a first workload and a plurality of infrastructure components, and that performs the following operations in the above (not necessarily) order: (i) implementing a temporary infrastructure with a plurality of geographically distributed computing nodes, each representing one of the plurality of infrastructure components; (ii) receiving a request to execute the first workload; (iii) receiving a policy definition including a set of policies; (iv) selecting a first computing node from the plurality of geographically distributed computing nodes to execute the first workload, wherein the selection of the temporary infrastructure includes applying the set of policies to determine the identity of the first computing node; (v) executing the workload on the first temporary infrastructure component corresponding to the first computing node; (vi) detecting, during execution of the first workload, the occurrence of a disruptive event that causes the execution of the first workload to be stopped; and (vii) freezing the execution of the workload in response to detecting the occurrence of the disruptive event.
[0010] According to one aspect of the present invention, a computer-implemented method for executing a serverless workload on a transient infrastructure may be provided, the method comprising: receiving a request to execute a workload and at least one policy; and selecting an infrastructure component of the transient infrastructure for executing the workload, wherein the transient infrastructure may be implemented using a plurality of geographically distributed computing nodes to execute the workload on the transient infrastructure.
[0011] Further, the method may include, upon receiving a disruptive event during execution of the workload that causes the execution of the workload to stop, freezing the workload execution, storing intermediate results and status of the workload execution in a cross-domain storage system, terminating the execution of the workload, and continuing the workload execution using the intermediate results under constraints defined by the at least one policy.
[0012] According to another aspect of the present invention, there may be provided a deployment system for executing serverless workloads on a transient infrastructure, the system may include a processor and a memory operatively coupled to the processor, the memory storing program code portions that, when executed, cause the processor to receive a request to execute a workload and at least one policy and select an infrastructure component of a transient infrastructure for executing the workload, the transient infrastructure being implemented using a plurality of geographically distributed computing nodes to execute the workload on the transient infrastructure.
[0013] Further, the processor may include a step in which, when the processor receives a disruptive event during execution of the workload that causes the execution of the workload to stop, the processor is enabled to freeze the workload execution, store intermediate results and status of the workload execution in a cross-domain storage system, terminate the execution of the workload, and continue the workload execution using the intermediate results under constraints defined by the at least one policy.
[0014] The proposed computer-implemented method for running serverless workloads on transient infrastructure may provide multiple advantages, technical effects, contributions, and / or improvements.
[0015] The benefits can be at least twofold: Cloud computing providers can make resources available as transient infrastructure components that are not currently in use and are not subject to specific SLAs under special conditions, thus allowing for more efficient use of available resources.
[0016] Meanwhile, users running non-time-sensitive workloads can take advantage of this excess capacity at attractive rates, creating a potential win-win situation for both providers and users.
[0017] Even if a provider may terminate the availability of a transient infrastructure, users may still benefit from its temporary presence because workloads may run on subsequent transient infrastructure of the same or a different cloud computing provider in the same or a different region, depending on one or more underlying policies.
[0018] Furthermore, parallel executions of the same workload with different starting parameter values can be initiated without excessive SLAs. Additionally, the optimization routines used to determine the "best" transient infrastructure may be used by analyzing historical trend data collected from past executions of workloads executed on different transient infrastructures.
[0019] Thus, storing intermediate results and status as a by-product of the execution of a workload on or in a transient infrastructure can be useful to avoid restarting the workload on another transient infrastructure when the current infrastructure is terminated, but instead allowing the workload to continue using a kind of snapshot stored at a point in time during the execution of the actual workload.
[0020] The stability of the system is worth mentioning. Intermediate results and statuses are stored, which is very useful in the event of a disaster recovery. For example, if a data center fails, applications and workloads can be moved to another data center, thereby reducing costs and making the system more efficient.
[0021] Below, we describe additional embodiments of the inventive concept that are applicable to both the method and the system.
[0022] According to a preferred embodiment of the method, the transient infrastructure is implemented as part of a cloud computing environment, particularly temporarily; it may be operated by a cloud computing provider. Due to the transient nature of the transient infrastructure, it can be stopped, i.e., terminated or interrupted, at any time. Such transient infrastructure is offered by different public cloud computing providers under different names, e.g., "spot instances" or "transient instances." User organizations can use such virtual transient infrastructure components for workloads that do not require results to be delivered within a predefined time. On the one hand, user organizations may enjoy favorable provisioning conditions, e.g., relatively low prices. On the other hand, a disadvantage for end-user organizations is the lack of performance guarantees or other favorable SLA conditions. An advantage for cloud computing providers may be the ability to make spot capacity available and still achieve a certain margin for that capacity.
[0023] According to an interesting embodiment, the method may also comprise receiving a request to execute a workload, together with receiving multiple sets of job execution parameter values; and executing the workload multiple times, each execution instance using a different set of job execution parameter values. The job execution parameter values thereby 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 execution parameter values, can be run in parallel. Another example is a monthly payment application. Each instance of the transient infrastructure can receive a subset of employee data and determine monthly payment and tax data in parallel using different transient infrastructure components.
[0024] According to a preferred embodiment of the method, a disruptive event, i.e., one that causes a transient VM to stop, can be caused by at least one or more policies. For example, a new attractive transient VM can appear elsewhere due to free capacity elsewhere. This can 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 the execution of a workload in the transient infrastructure may be removed due to an unforeseen event. This may be the case, for example, when a provider decides, e.g., by an automated system, to provide resources to a client (i.e., a customer) due to contractual conditions (the customer simply pays more) or for technical reasons (e.g., the required resources are no longer available in other areas (e.g., a system or network error)), and the provider has to fulfill the requests of other clients before the agreed SLA is defined. In case of such an unexpected or unforeseen event or in case of a policy condition (as exemplified in the previous paragraph), the status and intermediate results of the actual execution of the transient VM would normally be lost. However, thanks to the special provisions of the proposed concept, i.e., the storage of intermediate results and status, this does not happen.
[0026] According to a further advantageous embodiment of the method, the continuation of the workload execution can be performed using a separate transient infrastructure that requests the stored intermediate results and status of the workload execution from the cross-domain storage system. Therefore, this process can be transparent, i.e., invisible, to the user working in the transient VM. The execution is simply transferred to another transient infrastructure (transient VM) and continues to run with the stored intermediate results and status. This may cause some delay in the execution of the complete task. However, there are advantages.
[0027] According to an extended embodiment of the method, "freezing the execution of the workload" and "storing the intermediate results and status" may be performed after receiving a "plan to replay message," which may be initiated by the provider immediately before terminating a transient VM being used by another user.
[0028] According to a useful embodiment, the method may also include determining multiple execution environments that match the technical requirements for the workload as well as the at least one policy, and, upon determining only one execution environment that matches the technical requirements for the workload as well as the at least one policy, placing the workload in the determined execution environment. Thus, a decision between different execution options may be avoided, i.e., a straightforward deployment may be initiated. Furthermore, the requirements for the workload may be received along with the request or from a registry that stores requirements for specific workload requests.
[0029] According to another or alternatively useful embodiment, the method may also include:
[0030] For multiple execution environments that satisfy the technical requirements for the workload and the at least one policy, a score value is determined for each of the satisfying execution environments (particularly in terms of different geographic regions) using the technical requirements for the workload and the at least one policy, and the workload is placed in the execution environment with the best score value. The meaning of "best" may be predefined. This may optionally be determined dynamically (e.g., depending on the type of workload), statically before starting the system, or periodically.
[0031] According to further developed embodiments, the method may also include using historical trends of transient VM lifespans, for example based on timing (e.g., hour of the day, day of the week, day of the month, ...) to determine the score value. In this way, the analysis may determine what percentage of transient VMs make it to the end before being terminated and forcibly migrated to another transient VM.
[0032] Furthermore, embodiments may take the form of a related computer program product accessible from a computer-usable or computer-readable medium that provides program code for use by or in connection with a computer or any instruction execution system. For purposes of this specification, a computer-usable or computer-readable medium may be any apparatus that may include means for storing, communicating, propagating, or transporting a program for use by or in connection with an instruction execution system, apparatus, or device. [Brief explanation 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 infer from the above and below description that, unless otherwise stated, any combination of features belonging to one type of subject matter, as well as any combination between features relating to different subject matters, in particular between features of method-type claims and features of apparatus-type claims, is considered to be disclosed within this specification.
[0034] The above-defined aspects and further aspects of the invention will be apparent from and will be explained with reference to the example embodiments described hereinafter, 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] FIG. 1 illustrates a block diagram of one embodiment of a computer-implemented method for executing serverless workloads on a transient infrastructure.
[0037] [Figure 2] FIG. 1 is a block diagram illustrating the relationship between a conventional VM and a transient VM. [Figure 3]FIG. 1 is a block diagram illustrating the relationship between a conventional VM and a transient VM. [Figure 4] FIG. 1 is a block diagram illustrating the relationship between a conventional VM and a transient VM.
[0038] [Figure 5] FIG. 2 illustrates a block diagram of one embodiment of a resource manager that controls VMs, particularly transient VMs.
[0039] [Figure 6] FIG. 1 shows an embodiment closer to implementation and its components.
[0040] [Figure 7] FIG. 1 shows a block diagram of a flowchart of one embodiment of a deployment flow.
[0041] [Figure 8] FIG. 1 illustrates a block diagram of one embodiment for policy scoring.
[0042] [Figure 9] FIG. 1 illustrates a block diagram of one embodiment of the inventive deployment system for running serverless workloads on a transient infrastructure.
[0043] [Figure 10] FIG. 10 illustrates an embodiment of a computing system including a system according to FIG. 9.
[0044] [Figure 11] 1 illustrates a cloud computing environment in which at least a portion of the inventive concept is deployed.
[0045] [Figure 12] FIG. 1 illustrates components of an example cloud computing environment. DETAILED DESCRIPTION OF THE INVENTION
[0046] In the context of this description, the following technical phrases, terms and / or expressions may be used:
[0047] The term "serverless workload" may refer to a computer job where the workload is processed without the user having to care for, operate, or maintain the necessary technical infrastructure. 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 are provided on an as-needed basis by a cloud computing provider. This means that transient (temporary) infrastructure components may be terminated by the provider with or without prior warning and / or delay. This may represent a risk to users. However, this characteristic may be offset by storing intermediate results and status during the execution of a workload on the transient infrastructure, in accordance with the concepts proposed herein. Thus, the workload may continue without significant disadvantage, since the stored intermediate results and status can be used as a starting point for the execution of resources on another transient infrastructure.
[0049] The term "workload execution request" may refer to a message requesting a particular type of workload, along with a set of workload parameters and starting or job parameter values. Additionally, a workload may be accompanied by one or more policies under which the workload should be executed.
[0050] The term "policy" may refer to a framework or framing conditions within which a particular workload must be executed. As an example, the geographic region in which the data center providing the transitional infrastructure component is located may be one in which the General Data Protection Regulation of the European Union (GDPR) must apply. Other regions may have other government or other regulations.
[0051] The term "infrastructure component" may primarily refer to a virtual machine or a virtual machine / application combination. Furthermore, in this context, computing containers ("incomplete virtual machines") may also be referred to as infrastructure components. However, it may be necessary that the accompanying virtual machines may also be part of the infrastructure component.
[0052] The term "disruptive event" may refer to any type of disruption that can stop, pause or terminate the transient infrastructure, thus making it unavailable for running the customer's requested workload. Disruptive events may have different root causes. On the one hand, they may be provider-driven, for example, resources may be needed for a customer with a higher SLA value. On the other hand, they may be user-driven, for example, based on a policy that defines that a particular workload always uses the most attractive transient infrastructure (which may be definable or configurable).
[0053] The term "intermediate results and status" may refer to a "snapshot" of the status of a running workload. These intermediate results and status may be used as a starting point for the continuation of the workload (or a copy thereof) in another infrastructure environment. The intermediate results and status may be captured at trigger points during the execution of the workload, or at equivalent deviation points.
[0054] The term "cross-domain storage system" may refer to a persistent memory system that provides the ability to store intermediate results and status of workloads and make them available on demand at a later time. Cross-domain storage systems may be operated "in-house" by a user or may be provided as part of a cloud computing environment.
[0055] The term "job execution parameter values" may refer to values that are required as inputs in order for a particular workload or job to be executed.
[0056] The term "unforeseen event" may refer to any event that causes the outage of the transient infrastructure because the underlying physical resources may be needed for other purposes.
[0057] The term "cloud computing," and the equally 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, i.e., collectively, execution environments) that can be rapidly provisioned and released with minimal administrative effort or service provider interaction. This cloud model promotes availability and consists of at least five essential characteristics, three service models, and four deployment models.
[0058] The essential characteristics of cloud computing include: (i) On-Demand Self-Service. Consumers can unilaterally provision computing power, such as server time and network storage, automatically when needed, without requiring human interaction with each service provider. (ii) extensive network access; The functionality is available over a network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (eg, mobile phones, laptops, PDAs (Personal Digital Assistants)). (iii) Resource pool. The provider's computing resources are pooled to serve multiple customers, using a multi-tenant model with different physical and virtual resources, and are dynamically allocated and reallocated according to customer demand. Although customers generally have no control or knowledge of the exact location of the resources provided, there is a sense of location independence in that the location may be specified at a higher level of abstraction (e.g., country, state, or data center). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines. (iv) Rapid flexibility. Capacity can be provisioned quickly, elastically, and sometimes automatically, allowing for fast scaling out, fast release, and fast scaling in. To the consumer, the capacity available for provisioning is often presented as unlimited, and can be purchased at any time in any quantity. (v) Measurement Services. Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts, etc.) Resource usage is monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.
[0059] Service models for cloud computing usage include: (i) Cloud Software as a Service (SaaS). The consumer's ability 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. (ii) Cloud Platform as a Service (PaaS). Customers are provided with the ability to deploy customer-created or acquired applications written using programming languages and tools supported by the provider onto the cloud infrastructure. Customers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but do have control over the deployed applications and, in some cases, application hosting environment configuration. (iii) Cloud Infrastructure as a Service (IaaS). Customers are provided with the ability to provision processing, storage, network, and other basic computing resources on which they can deploy and run any software, which may include operating systems and applications. Customers do not manage or control the underlying cloud infrastructure, but do have control over the operating systems, storage, deployed applications, and, in some cases, limited control of selected network components (e.g., host firewalls).
[0060] Deployment models for cloud computing include: (i) Private Cloud. The cloud infrastructure is operated solely by the organization. The cloud infrastructure may be managed by the organization or a third party and may reside on-premises or off-premises. (ii) Community Cloud. Cloud infrastructure is shared among multiple organizations, supports a particular community with common concerns (e.g., mission, security requirements, policy, and compliance considerations), is managed by the organization or a third party, and can exist on-premises or off-premises. (iii) Public Cloud. Cloud infrastructure is made available to the general public or large industry groups and is owned by organizations that sell cloud services. (iv) Hybrid Cloud. A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are tied together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0061] It can be seen that cloud software can make the most of the cloud paradigm by being stateless (with exceptions), low-coupling, modular, and service-oriented with a focus on semantic interoperability.
[0062] A detailed description of the figures follows. All instructions in the figures are schematic. First, a block diagram of one embodiment of the inventive computer-implemented method for executing serverless workloads on a transient infrastructure is shown. Afterwards, further embodiments and an embodiment of a deployment system for executing serverless workloads on a transient infrastructure are described.
[0063] 1 shows a block diagram of a preferred embodiment of a computer-implemented method 100 for executing serverless workloads, i.e., virtual machines (VMs), or even computing containers with surrounding VMs, on, within, or by a transient infrastructure. The method 100 includes receiving 102 a request to execute a workload and at least one policy, and selecting 104 an infrastructure component of the transient infrastructure for executing the workload, the transient infrastructure being implemented using multiple geographically distributed computing nodes, or more generally, a cloud computing center.
[0064] The method 100 may include executing 106 a workload on the transient infrastructure. Then, during the execution of the workload, receiving 108 a disruptive event that causes the execution of the workload to stop, i.e., abort, pause, or terminate in an unrecoverable mode, freezing 110 the execution of the workload, storing intermediate results and status of the execution of the workload in a cross-domain (or crossed area) storage system 112, terminating 114 the execution of the workload, and continuing 116 the execution of the workload using the intermediate results under constraints defined by at least one policy.
[0065] This requires that the cross-domain storage system be accessible to all nodes of all infrastructure providers that provide transient infrastructure components. Furthermore, at least one policy used to continue the execution of a workload may be the same or different, since the workloads may be executed in different geographical regions and may be subject to different technical and legal conditions. Therefore, the policy may be time-dependent and location-dependent.
[0066] 2 to 4 show block diagrams 200, 300, 400 illustrating the relationship between traditional and transient VMs. Figure 2 shows the case of a traditional VM where workload execution is handled properly between t0 and t1.
[0067] Figure 3(a) shows a "good case" of workload execution in a transient infrastructure environment between t1 and t2. The workload does not need to start already at the first available time of the transient infrastructure component, i.e., t0.
[0068] The corresponding "worse case" is shown in Figure 3(b), where the workload does not execute to its natural completion and is interrupted by an unforeseen event at t2. Therefore, instructions between t2 and t3 are not executed.
[0069] This brings us to the inventive concept shown in Figure 4(a). This figure again illustrates the worst case of workload execution against a transient infrastructure environment. Execution of the state statement between t2 and t3 was impossible due to an unforeseen event. Therefore, the workload execution was interrupted, for example, because the provider reclaimed the necessary resources. However, as shown in Figure 4(b), the workload execution can be continued between t4 and t5 on a new transient VM, and requests for the stored intermediate result status of the previously executed transient VM can be used. Thus, the customer workload is also properly processed, even though only the transient infrastructure components are used.
[0070] 5 shows a block diagram 500 of one embodiment of a resource manager that controls VMs, particularly transient VMs. Multiple VMs, e.g., VM1, VM2, VM3, and VM4, are controlled by a VM resource manager 502, which may also include a notification interface 504. VMs can come in various "flavors," such as public (e.g., available to anyone), reserved (e.g., for special purposes), transient (as defined above), and dedicated (e.g., for customer use). Thus, VM resource manager 502 manages or controls the execution of jobs on different VMs as directed via notification interface 504.
[0071] FIG. 6 illustrates a more practical implementation 600 and its components. The controlling element of the proposed concept is a global transient VM controller 602, which includes at least a broker 604, a historical data analyzer 606, and a policy controller 608. The final component is an interface with a policy database 610, which defines under what conditions a particular job for a workload must be executed. Various different conditions can be defined here. For example, a job must be executed when the cost of a transient VM is within a predefined range (e.g., $1-$2 per hour for central processing unit (CPU) usage), or it must be completed by a predefined time (e.g., before 14:00 UTC (Coordinated Universal Time) on November 20, 2022), or it must be executed in an EU-region / compliant data center, etc.
[0072] It should also be mentioned that the Global Transient VM Controller 602 includes decision logic for pausing, resuming, relocating, and / or creating jobs, and further determines to execute job instances in an efficient (cost / performance) manner by respecting requirements given by policies and system status (e.g., distribution across various regions based on job policies). This allows the Broker component 604 of the Global Transient VM Controller 602 to access a global catalog 612 of service or workload definitions, from which it can select one upon receiving a service request.
[0073] Broker component 604 also receives in-flight data of the current execution of the workload from in-flight data storage 614, which may also be stored, at least in part, in historical data system 616. Historical data analyzer 606 can access historical data storage 616 to determine where to best place transient infrastructure requirements for pre-defined workloads under pre-defined conditions (e.g., time, location, region, and other interdependencies).
[0074] Furthermore, Figure 6 shows the components available in a geographical region, e.g., region A 618, where a VM resource manager 620 (already known as 502 from Figure 5) is active to control different VMs, i.e., VM1, VM2, VM3, VM4, and VM5, e.g., with different characteristics (p=public, r=reserved, t=transient, d=dedicated).
[0075] As a new component, compared to the traditional environment, a transient VM CRUD (Create-Read-Update-Delete) controller 622 is active. It interacts with the VM resource manager 620 and receives requests from the global transient VM controller 602 as well as the associated broker 604. Although the VM resource manager 620 manages the transient VMs of transient VM3 and VM5, there is also an interaction between the transient VM CRUD controller 622 and the transient VMs. This is necessary for storing intermediate results and status.
[0076] To this end, transient VMs push their state to the regional state data store 624, and upon request, the status is retrieved and distributed to a new transient VM, e.g., transient VM 5, e.g., VM 3, for continuation of the unexpectedly interrupted workload. For this scenario, a broker 604 under the control of the global transient VM controller 602 triggers the re-placement of the workload on the new transient VM based on, for example, changes in the respective metadata and other conditions such as the same or adopted policies (e.g., due to a different region in which the new transient VM runs).
[0077] Additionally, the transient VM CRUD controller 622 makes regional metadata available to a regional metadata store 626, from which the respective data can be migrated to the in-flight data storage 614. Additionally, the in-flight data storage 614 can receive the respective data from the regional state storage 624. Thereby, the in-flight data storage 614 should be accessible across different regions or domains. This can be facilitated by the global transient VM controller 602's requests to the in-flight data storage 614.
[0078] To distinguish the new concepts proposed here from traditional environments, the new components required to achieve the described advantages are at least the following: a global transient VM controller 602 with its respective subcomponents, a policy DB 610, a transient VM CRUD controller 622, a regional state data store 624, a regional metadata store 626, an in-flight data store 614, and stored historical data 616.
[0079] The following sequence, with differentiated characteristics as compared to the conventional control flow indicated by dashed lines, briefly describes the sequence of operations: (1) after receiving a re-request notification 628, (2) the transient VM CRUD controller 622 alerts the respective transient VM3 and triggers a state storage procedure for (3) storing, i.e., pushing, 630, intermediate results and status; (4) once a new transient VM—here, VM5—is identified, it pulls 632 its state, i.e., stored intermediate results and status, from the regional state storage 624; and (5) thus, the transient VM CRUD controller 622 considers an additional transient VM, i.e., VM5, to have been set up.
[0080] In other words, the proposed concept introduces a system and method that leverages transient infrastructure as a fundamental concept, enabling dynamic reallocation of running workloads to regions to accommodate infrastructure constraints, outages, peak demands, etc., while remaining constrained by user-defined requirements such as GDPR-compliant data processing. To achieve this, a set of controllers (see Figure 6) is introduced. To more comprehensively express the proposed concept, the following use cases can be considered: (1) A customer requests that a computing job be completed within, for example, 24 hours. The controller of the proposed concept recognizes performance degradation, persistent outages, persistent failures, or periodic capacity shortages in a selected region, and determines whether to pause / stop, preserve state, and resume execution in one or more different regions. Here, a region may refer to a geographical area where the associated cloud computing centers are located. (2) A cloud computing provider operating a transient infrastructure decides to offer a larger discount on infrastructure resources (e.g., VMs) in a certain region or time frame (usually to increase utilization in a certain region). The proposed global transient VM controller (see 602 in Figure 6) responds to dynamic pricing models and ensures that computational jobs are placed in a cost-effective manner based on customer-defined rules or policies (e.g., "My job should run if the unit price is less than or equal to x$, or if the reliability of the computing center is greater than or equal to y%, or if the probability of the computer completing without interruption is greater than or equal to z%). It also includes a cloud computing provider deciding to run part of its workload in a different region to overcome capacity shortages or to optimize resource utilization across regions. (3) An external situation (e.g., the UK's departure from the European Union) imposes an embargo on a region (making the workload no longer "EU-compliant"). This is a policy update recognized by the controller, triggering automatic migration of workloads to other regions or data centers within a short period of time.(4) Customers want to process workloads in the most cost-effective way, but at the same time, expect duration or performance to be much longer than with non-transient infrastructure. The global transient VM controller automatically moves workloads according to customer-specific policies. (5) The controller can analyze historical data to detect specific workload patterns (e.g., a system experiencing heavy utilization at 3:00 AM every night) and take action to prevent overload and capacity shortages by proactively placing compute jobs in other areas.
[0081] Technically, what all of the above have in common is a system with the following properties: (i) monitoring the capacity of a cloud computing data center at any given time; (ii) a notification system that triggers an event when there is not much "free capacity" left in the cloud data sent in a certain region and initiates special offers to free up capacity; (iii) a management system for batch jobs that manages, among other things, regional scheduling of jobs, freezing jobs, relocating jobs, unfreezing jobs, etc.; (iv) a cross-regional (or cross-domain) data store that allows workload transfer when jobs need to be transferred to a different region; (v) a data store for managing and maintaining policies that can define constraints for any workload execution; and (vi) a data store that stores historical data and an analyzer that captures execution patterns.
[0082] To continue with the above use case, the scenario continues as follows:
[0083] According to an exemplary running job's policy, it must finish, for example, within the next 24 hours. The global transient VM controller recognizes a performance degradation, an ongoing outage, or a periodic lack of capacity in a selected region and decides to pause the workload's execution and resume it in another region.
[0084] Next, the cloud computing provider (or associated automation system) decides to introduce a larger discount for VMs in regions (or contemporaneous periods) where demand is not as high as in other regions (or time slots). The controller then reacts with a dynamic pricing model to ensure that jobs are placed in a cost-effective manner (e.g., by saying that if the unit cost is less than or equal to x$, then my job should be executed).
[0085] New policy updates (e.g. embargoes in certain regions) require moving running workloads to other regions or datacenters within a short period of time. Users want to handle non-critical workloads in the most cost-effective way, but must accept that the duration (or performance) will be much longer than using regular VMs.
[0086] Historical data can reveal that certain workload patterns (e.g., 3 AM every night in Dallas) are taking up a large portion of available systems, allowing the global transient VM controller to take action to prevent capacity shortages due to overload by proactively placing jobs in other regions. In this way, instances of large jobs (equivalent to many instances) can be processed across multiple regions to overcome capacity and cost constraints, using forward-looking insights extracted from historical data.
[0087] An exemplary flow of operations 700 can be described as follows in the context of FIG. 7, which shows a block diagram of a flowchart of an embodiment of a deployment flow. A request for a job and potentially N associated job executions is received from a global transient VM controller. The global transient VM controller checks the policies associated with the submitted job and the associated job execution completion state 702 . The global transient VM controller "LOOP OVER" the region 704 to see if one or more of the resources available within the region can satisfy the required policy 706. -For every policy listed in the set of required and optional policies (e.g., GDPR [required], prizes [optional], completion time [optional]), the realm returns a Boolean value of whether the individual policy can be satisfied. The Global Transient VM Controller checks if at least one mandatory policy is not TRUE. If so, the region is removed from the list of potential region targets. If exactly one region is found, the job is placed in this region, 708. If multiple regions are found, the mandatory and / or optional policies are evaluated to determine a score 710. Each policy constraint is evaluated by determining a score based on the given target value, the distance the cloud provider can guarantee, and a weight, which is then used to rank the regions and find the one that best fits the specific workload requirements 712. If no region matching the policy is found, the process is paused and re-entered after some waiting time (e.g., 5 minutes), 714, 716. The rest of the job is performed in a specific area. If the job completes without interruption or interruption, the process terminates, 718. - Otherwise, a disruptive event occurs, resulting in either a policy violation or an improvement (e.g., the price in another area becomes much cheaper) 720 (e.g., capacity in that area is removed or the resource prize in that area is changed). The job is stopped / frozen and intermediate residency and status are stored in the regional state data store (and replicated to the in-flight data store mentioned above), 722. The process then loops back to receive job requests and mandatory policy evaluations 702 .
[0088] Also note that after the rules engine attempts to find / determine 712 the best match, it can decide 724 whether to split the job into chunks that are processed independently in parallel, in different regions, and the associated quasi-parallel jobs are executed in regions 726.
[0089] Figure 8 shows a block diagram of an example of policy scoring 800. The diagram is somewhat self-explanatory, but a few points should be made. Block 802 shows an example of a constraint being defined at the top, and the bottom of block 802 shows an example, e.g., "GDPR:true".
[0090] In the bottom right side of the figure, the actual settings for the different regions A, B, C, and D are shown as 804, 806, 808, and 810. It is easy to see that the conditions differ for the regions, as indicated by the different variables, for example, regions A, B, and C operate according to GDPR rules, while region D does not ("GDPR:no"). It also shows that the pricing of the available CPU resources (all set to "1000") is different: $30 vs. $20 vs. $120 vs. $100.
[0091] Therefore, the suitability of the regions is judged with score values of 0.56 and 0.64, indicating "yes" for regions A and B. Regions C and D are shown as not suitable ("no"). In this case, the score values of 0.16 and 0 are also not very significant.
[0092] 9 illustrates a block diagram of one embodiment of a deployment system of the present invention for executing serverless workloads on a transient infrastructure. The system may include a processor 902 and a memory 904 operatively coupled to the processor, the memory 904 storing program code portions that, when executed, cause the processor 902 to receive, e.g., via a receiver 906, a request to execute a workload and at least one policy, select, e.g., via a selector unit 908, an infrastructure component of a transient infrastructure for executing the workload, the transient infrastructure being implemented using multiple geographically distributed computing nodes, and execute, e.g., via an execution unit 910, the workload on the transient infrastructure.
[0093] During workload execution, upon receiving a disruptive event that causes the workload execution to stop, the processor may freeze the workload execution, e.g., via the freezing module 912, store intermediate results and status of the workload execution, e.g., via an intermediate storage system 914 (e.g., a domain state store, see 624 in FIG. 6 ), terminate the workload execution, and also continue the workload execution, e.g., via the reactivation unit 916. The processor stores the intermediate results and status of the workload execution in the cross-domain storage system, terminates the workload execution, and continues the workload execution using the intermediate results under the constraints defined by one last policy.
[0094] 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 and the reactivation unit 916, are communicatively coupled to each other for signal or message exchange in a selected 1:1 manner. Alternatively, the functional units, modules and functional blocks can be linked to a system internal bus system 918 for selective signal or message exchange.
[0095] Embodiments of the present invention may be implemented in conjunction with virtually any type of computer platform, regardless of whether the platform is suitable for storing and / or executing program code. Figure 10 illustrates, by way of example, a computing system 1000 suitable for executing program code associated with the proposed method.
[0096] Computing system 1000 is only one example of a suitable computer system, and whether or not computer system 1000 is capable of implementing and / or executing any of the functions described herein is not intended to suggest any limitation as to the scope of use or functionality of the embodiments of the invention described herein. Computer system 1000 has components that operate in numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with computer system / server 1000 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable user electronics, network PCs (personal computers), minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices. Computer system / server 1000 may be described in the general context of computer system-executable instructions, such as program modules, being executed by computer system 1000. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system / server 1000 may be practiced in distributed cloud computing environments 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.
[0097] As shown, a computer system / server 1000 is shown in the form of a general-purpose computing device. Components of the computer system / server 1000 may include, but are not limited to, one or more processors or processing units 1002, a system memory 1004, and a bus 1006 that couples various system components including the system memory 1004 to the 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 a variety of bus architectures. By way of example, and without limitation, such architectures include an Industry Standard Architecture (ISA) bus, a MicroChannel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus. Computer system / server 1000 typically includes a variety of computer system-readable media, which may be any available media that can be accessed by computer system / server 1000 and includes both volatile and nonvolatile media, and removable and non-removable media.
[0098] The 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 memory 1010. The computer system / server 1000 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, the storage system 1012 may provide for reading from or writing to a non-removable, non-volatile magnetic medium (not shown, and typically referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading from or writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), or an optical disk drive may be provided for reading from or writing to a removable, non-volatile optical disk, such as a CD-ROM (compact disk, read-only memory), DVD-ROM (digital versatile disk, read-only memory), or other optical media. In such cases, each may be connected to the bus 1006 by one or more data media interfaces. As further illustrated and described below, memory 1004 may include at least one program product including a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present invention.
[0099] A program / utility having a set (at least one of) program modules 1016 may be stored in memory 1004, as well as, by way of example and not limitation, an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may comprise an embodiment of a networked environment. The program modules 1016 generally perform the functions and / or methodologies of embodiments of the present invention described herein.
[0100] The computer system / server 1000 may communicate with one or more external devices 1018, such as a keyboard, pointing device, display 1020, etc., one or more devices that allow a user to interact with the computer system / server 1000, and / or any device (e.g., a network card, modem, etc.) that allows the computer system / server 1000 to communicate with one or more other computing devices. Such communication may occur via an input / output (I / O) interface 1014. Furthermore, 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 other hardware and / or software components, not shown, 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, data archive storage systems, and the like.
[0101] Additionally, a deployment system for executing serverless workloads on the transient infrastructure 900 may be connected to the bus system 1006.
[0102] 11 is a diagram illustrating a cloud computing environment 1100 in which at least a portion of the inventive concept is deployed. The cloud computing environment illustrates a set of functional abstraction layers provided by the cloud computing environment. It should be understood in advance that the components, layers, and functions illustrated in FIG. 11 are for illustrative purposes only, and that embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functionality are provided: Hardware and software layer 1102 includes hardware and software components. Examples of hardware components include mainframe 1104, server 1106, RISC (reduced instruction set computer) architecture-based server 1108, 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.
[0103] The virtualization layer 1120 provides an abstraction layer at which the following examples of virtual entities are provided: virtual servers 1122, virtual storage 1124, virtual networks including virtual private networks 1126, virtual applications and operating systems 1128, and virtual clients 1130. In one example, management layer 1132 may provide the functions described below. Resource provisioning 1134 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 1136 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud users and tasks, as well as protection of data and other resources. User portal 1138 provides access to the cloud computing environment for users and system administrators. Service level management 1140 provides cloud computing resource allocation and management to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 1142 provides advance arrangements and procurement of cloud computing resources where future requirements are anticipated according to SLAs.
[0104] Workload tier 1144 provides examples of functions for which cloud computing environments are utilized. Examples of workloads and functions provided from this tier include mapping and navigation 1146, software development and lifecycle management 1148, virtual classroom instruction delivery 1150, data analytics processing 1152, transaction processing 1154, and deployment systems for running serverless workloads on transient infrastructure 1156 (see also FIG. 9, 900).
[0105] 12 illustrates components 1200 of a cloud computing environment 1202. As shown, the cloud computing environment 1202 includes one or more cloud computing nodes 1204 that may communicate with local computing devices used by cloud users, 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 may communicate with each other. They may be physically or virtually grouped (not shown) into one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or combinations thereof, as described hereinabove. This enables the cloud computing environment 1202 to provide infrastructure, platforms, and / or software as a service for which the cloud users do not need to maintain resources on their local computing devices. It will be understood that the types of computing devices 1204 shown in FIG. 12 are intended to be illustrative only, and that computing nodes 1204 of cloud computing environment 1202 may communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).
[0106] The description of various embodiments of the present invention has been presented for purposes of illustration and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein have been selected to best explain the principles of the embodiments, practical applications, or technical improvements over commercially available technologies, or to enable others skilled in the art to understand the embodiments disclosed herein.
[0107] The present invention may be embodied as a system, method and / or computer program product, which may include a computer-readable storage medium (or multiple computer-readable storage media) having computer-readable program instructions for causing a processor to perform aspects of the present invention.
[0108] The medium may be an electronic, magnetic, optical, electromagnetic, infrared, or semi-conductive system of propagation medium, etc. Examples of a computer-readable medium may include a semiconductor or solid-state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, an optical disk, etc. Current examples of optical disks include compact disk-read-only memory (CD-ROM), compact disk-read / write (CD R / W), DVD, Blu-ray disk, etc.
[0109] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but is 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 thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium itself should not be construed as a transient signal, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted over an electrical wire.
[0110] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium within the respective computing / processing device for storage.
[0111] The computer-readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as the C programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can utilize state information of the computer readable program instructions to execute the computer readable program instructions and personalize the electronic circuitry to carry out aspects of the present invention.
[0112] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0113] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium that can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium having the instructions stored therein constitutes an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0114] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device and executed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device implement the function / act specified in a block or blocks of the flowcharts and / or block diagrams.
[0115] The flowcharts and / or block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing the specified logical function(s). In some alternative embodiments, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, or combinations thereof, and / or combinations of blocks in the block diagrams or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified function(s) or operation(s) or executes a combination of dedicated hardware and computer instructions.
[0116] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly dictates otherwise. It will be further understood that the terms "comprises" and / or "comprising," when used herein, 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.
[0117] In addition to the functional elements in the following claims, the corresponding structure, material, acts, and equivalents of all means or steps are intended to include any structure, material, or acts for performing a function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the invention to the form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments have been chosen and described to best explain the principles of the invention and its practical application and to enable others skilled in the art to understand the invention in terms of various embodiments with various modifications as suited to the particular uses contemplated. definition
[0118] Transient Infrastructure / Temporary Infrastructure: Transient infrastructure and temporary infrastructure are intended 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 executed from a set of volatile memory.
[0119] The present invention: The subject matter described by the term "the present invention" should not be taken as an absolute indication that it is covered by either the claims at the time of filing or any claims that may be issued after patent prosecution. The term "the present invention" is used to help the reader get a general sense that the disclosures herein are believed to be potentially new, but as indicated by the use of the term "the present invention," this understanding is hypothetical and provisional, and is subject to change during the course of patent prosecution as relevant information develops, as the claims are potentially amended.
[0120] Embodiments: See definition of "present invention" above. A similar caution applies to the term "embodiments."
[0121] "And / or": An inclusive or. For example, A, B, "or" C, "or a combination thereof" means that at least one of A, B, or C is true and applicable.
[0122] Including / include / includes: means "including but not necessarily limited to," unless expressly stated otherwise.
[0123] Module / Sub-Module: Any set of hardware, firmware, or software, or combination thereof, operable to perform a certain function, 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, (iv) located within a single software code, (v) located within a single storage device, memory, or medium, (vi) mechanically connected, (vii) electrically connected, or (viii) connected in data communication, or any combination thereof.
[0124] Computer: Any device having significant data processing or machine-readable instruction reading capability, or a combination thereof, including, but not limited to, desktop computers, mainframe computers, laptop computers, field programmable gate array (FPGA)-based devices, smartphones, personal digital assistants (PDAs), body-worn or body-insertable computers, embedded device-style computers, and application-specific integrated circuit (ASIC)-based devices.
[0125] Set of Things: Does not include the null set; a "set of things" means that there is at least one of that thing, and possibly more; for example, a set of computers means at least one computer, and there may be more computers.
[0126] Virtualized Computing Environment (VCE): A VCE can be stored as an "image." A new active instance of a VCE can be instantiated from the image. There are two types of VCE: virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to a feature of an operating system where the kernel allows the existence of multiple isolated user space instances called containers. These isolated user space instances can appear to be real computers to programs running within them. A computer program running on a normal operating system can see all of the computer's resources (attached devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities). However, a program running within a container can only see the contents of the container and the devices assigned to the container.
[0127] Cloud Computing System: A computer system distributed over a geographical area of a communications network, where the server-side computing workload and / or resources are primarily (or entirely) implemented by VCEs (see definition of VCE in previous section). A cloud computing system typically includes a cloud orchestration module, layer, and / or program that manages and controls the VCEs on the server side, including instantiating, configuring, moving between physical host devices, terminating previously active VCEs, etc.
Claims
1. 1. A computer-implemented method (CIM) for use in a temporary infrastructure including a first workload and a plurality of infrastructure components, the CIM comprising: implementing the temporary infrastructure with a plurality of geographically distributed computing nodes, each representing one of the plurality of infrastructure components; receiving a request to execute the first workload; receiving a policy definition including a set of policies; selecting a first computing node from the plurality of geographically distributed computing nodes to execute the first workload, wherein the selection of the temporary infrastructure includes applying the set of policies to determine the identity of the first computing node; executing the workload on a first temporary infrastructure component corresponding to the first computing node; detecting, during execution of the first workload, the occurrence of a disturbance event that causes the execution of the first workload to stop; and freezing execution of the workload in response to detecting the occurrence of the disruptive event.
1. A computer-implemented method comprising:
2. The CIM of claim 1 , further comprising: in response to freezing the execution of the workload, storing an execution status data set comprising information indicative of a plurality of intermediate results and a status of the execution of the workload.
3. The CIM of claim 2 , wherein the execution status data set is stored in a cross-domain storage system.
4. terminating execution of the workload. The CIM of claim 1 , further comprising:
5. 5. The CIM of claim 4, further comprising using the execution status data following termination of the workload to continue execution of the workload under constraints defined by the set of policies.
6. The CIM of claim 1 , wherein the temporary infrastructure is implemented as part of a cloud computing environment.
7. 1. A computer program product (CPP) for use with a temporary infrastructure including a first workload and a plurality of infrastructure components, the CPP comprising: a set of storage devices; and The processor set must contain at least implementing the temporary infrastructure with a plurality of geographically distributed computing nodes, each representing one of the plurality of infrastructure components; receiving a request to execute the first workload; receiving a policy definition including a set of policies; selecting a first computing node from the plurality of geographically distributed computing nodes to execute the first workload, wherein the selection of the temporary infrastructure includes applying the set of policies to determine the identity of the first computing node; executing the workload on a first temporary infrastructure component corresponding to the first computing node; detecting, during execution of the first workload, the occurrence of a disturbance event that causes the execution of the first workload to stop; and freezing execution of the workload in response to detecting the occurrence of the disruptive event. computer code including data and instructions for performing operations including A CPP comprising:
8. The computer code causes the processor set to: and storing, in response to freezing the execution of the workload, an execution status data set comprising information indicative of a plurality of intermediate results and a status of the execution of the workload.
8. The CPP of claim 7, further comprising instructions for performing operations including:
9. The CPP of claim 8 , wherein the execution status data set is stored in a cross-domain storage system.
10. The computer code causes the processor set to: terminating execution of said workload.
10. The CPP of claim 7, further comprising instructions for performing operations including:
11. The computer code causes the processor set to: and, following termination of the workload, using the execution status data to continue execution of the workload under constraints defined by the policy set. The CPP of claim 10 further comprising instructions for performing operations including:
12. The CPP of claim 7 , wherein the temporary infrastructure is implemented as part of a cloud computing environment.
13. 1. A computer system (CS) for use with a temporary infrastructure including a first workload and a plurality of infrastructure components, said CS comprising: Processor set; a set of storage devices; and The processor set includes at least implementing the temporary infrastructure with a plurality of geographically distributed computing nodes, each representing one of the plurality of infrastructure components; receiving a request to execute the first workload; receiving a policy definition including a set of policies; selecting a first computing node from the plurality of geographically distributed computing nodes to execute the first workload, wherein the selection of the temporary infrastructure includes applying the set of policies to determine the identity of the first computing node; executing the workload on a first temporary infrastructure component corresponding to the first computing node; detecting, during execution of the first workload, the occurrence of a disturbance event that causes the execution of the first workload to stop; and freezing execution of the workload in response to detecting the occurrence of the disruptive event. computer code including data and instructions for performing operations including CS equipped with.
14. The computer code causes the processor set to:
14. The CS of claim 13, further comprising instructions for performing operations including, in response to freezing the execution of the workload, storing an execution status dataset including information indicative of a plurality of intermediate results and a status of the execution of the workload.
15. The CS of claim 14 , wherein the execution status data set is stored in a cross-domain storage system.
16. The computer code causes the processor set to: The CS of claim 13 further comprising instructions for performing operations including terminating execution of the workload.
17. The computer code causes the processor set to:
17. The CS of claim 16, further comprising instructions for using the execution status data to perform operations following termination of the workload, including continuing execution of the workload under constraints defined by the policy set.
18. The CS of any one of claims 13 to 17, wherein the temporary infrastructure is implemented as part of a cloud computing environment.