Implementing workloads in a multi-cloud environment

By dividing workloads into logical phases and allocating them to the optimal cloud provider, resource utilization is optimized and network resilience is improved, solving the problems of resource waste and data loss in existing technologies and achieving more efficient workload implementation.

CN114930291BActive Publication Date: 2025-11-18INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080091686.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-01-02
Filing Date
2020-12-01
Publication Date
2025-11-18
Estimated Expiration
2040-12-01

AI Technical Summary

Technical Problem

Existing workload implementation techniques fail to effectively optimize and protect different parts of the workload, resulting in wasted resources and potential data loss risks.

Method used

By analyzing the characteristics of multiple cloud providers, the workload is divided into multiple logical stages. Based on the comparison between the characteristics of the cloud providers and the characteristics of the logical stages, each logical stage is assigned to the optimal cloud provider for implementation, including parsing data input and output points, dependencies, security scanning, and resource requirements.

Benefits of technology

It reduces the amount of resources required for each logical stage, improves the performance and network resilience of the computing system, and reduces the risk of data loss due to system outages or malware.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114930291B_ABST
    Figure CN114930291B_ABST
Patent Text Reader

Abstract

A computer-implemented method according to one aspect includes determining and storing characteristics of a plurality of cloud vendors; dividing a workload into a plurality of logical stages; determining characteristics of each of the plurality of logical stages; and for each of the plurality of logical stages, assigning the logical stage to one of the plurality of cloud vendors based on a comparison of the characteristics of the plurality of cloud vendors to the characteristics of the logical stage.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] This invention relates to workload implementation, and more specifically, to the operation of distributing workloads to cloud providers.

[0002] Cloud providers are frequently used to supply resources such as compute, storage, and bandwidth to workloads. Maintaining network resilience is a critical concern during the implementation of these workloads. For example, workload data may need to be protected during implementation, and predetermined levels of service may need to be provided. Similarly, workloads may need to be completed despite system failures, malware, etc.

[0003] However, current workload implementations do not take into account the available cloud providers to optimize different parts of the workload in order to optimize and protect the workload implementation. Summary of the Invention

[0004] A computer-implemented method according to one aspect includes determining and storing the characteristics of multiple cloud providers; dividing the workload into multiple logical stages; determining the characteristics of each of the multiple logical stages; and for each of the multiple logical stages, assigning the logical stage to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical stage.

[0005] On the other hand, the characteristics of each of the multiple cloud providers are determined by analyzing cloud providers. This analysis includes operational capabilities and costs. Application programming interfaces (APIs) are used to perform scans of cloud providers.

[0006] In this way, the implementation of each logical stage within the workload can be sent to the optimal cloud provider for implementation. This can reduce the amount of resources (e.g., compute resources, storage resources, security resources, etc.) required to execute each logical stage, which can improve the performance of one or more computing systems implementing (e.g., execution, etc.) the workload.

[0007] According to another aspect, a computer program product for implementing workloads in a multi-cloud environment includes a computer-readable storage medium having program instructions embodied therein, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions are processor-executable to cause the processor to perform a method comprising: determining and storing characteristics of a plurality of cloud providers by the processor; dividing the workload into a plurality of logical stages by the processor; determining characteristics of each of the plurality of logical stages by the processor; and for each of the plurality of logical stages, assigning the logical stage to one of the plurality of cloud providers by the processor based on a comparison of the characteristics of the plurality of cloud providers with the characteristics of the logical stage.

[0008] According to one aspect, the characteristics of each cloud provider among multiple cloud providers are determined by analyzing cloud providers. This analysis includes estimating one or more viability factors for each cloud provider based on collected cloud provider evaluation information, wherein the viability factors are selected from a group including: serviceability, net promoter score (NPS), user reviews, performance benchmarks, and adjustment flexibility.

[0009] According to another aspect, the system includes a processor; and logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, wherein the logic is configured to determine and store characteristics of multiple cloud providers; divide the workload into multiple logical stages; determine the characteristics of each of the multiple logical stages; and for each of the multiple logical stages, assign the logical stage to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical stage.

[0010] On the other hand, workload segmentation includes parsing the workload to identify the points of data input and output within the workload, as well as the dependencies associated with the workload's inputs.

[0011] In this way, network resilience at each logical stage can be ensured, which can reduce the amount of data / computing work lost due to system outages or malware, and can also improve the performance of computing systems that implement the workload.

[0012] According to another approach, a computer-implemented method includes determining the characteristics of multiple cloud providers by analyzing multiple cloud providers. This analysis includes running application programming interfaces (APIs) to perform scans of the multiple cloud providers based on their capabilities and costs; collecting and parsing information from one or more public and private security databases to identify one or more of the following for each of the multiple cloud providers: reports, trends, vulnerabilities, security issues, etc.; and parsing one or more remediation databases to determine any existing solutions to any existing security issues of one or more of the multiple cloud providers; dividing the workload into multiple logical phases; determining the characteristics of each of the multiple logical phases; and for each of the multiple logical phases, assigning the logical phase to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical phase.

[0013] According to another approach, the computer-implemented method includes determining and storing the characteristics of multiple cloud providers; dividing the workload into multiple logical phases, including parsing the workload to identify points of data input and output within the workload and dependencies associated with the inputs of the workload, and scanning the source code of the workload to predict instances of data input and output within the workload, wherein each logical phase includes data inputs independent of other logical phases within the workload; determining the characteristics of each logical phase among the multiple logical phases; and for each logical phase among the multiple logical phases, assigning the logical phase to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical phase.

[0014] Other aspects and embodiments of the invention will become apparent from the following detailed description, which, when taken in conjunction with the accompanying drawings, illustrates the principles of the invention by way of example. Attached Figure Description

[0015] Figure 1 A cloud computing environment according to one aspect of the present invention is described.

[0016] Figure 2 An abstract model layer according to one aspect of the present invention is described.

[0017] Figure 3 A cloud computing node according to one aspect of the present invention is described.

[0018] Figure 4 A hierarchical data storage system according to one aspect of the present invention is shown.

[0019] Figure 5 A flowchart of a method for implementing workloads in a multi-cloud environment according to one aspect of the present invention is shown.

[0020] Figure 6 A flowchart of a method for scanning cloud providers according to one aspect of the present invention is shown.

[0021] Figure 7 A flowchart of a method for identifying workload requirements according to one aspect of the present invention is shown.

[0022] Figure 8 A flowchart of a method for implementing a multi-tenant workload management engine according to one aspect of the present invention is shown.

[0023] Figure 9 An exemplary computational arrangement pattern according to one aspect of the present invention is shown. Detailed Implementation

[0024] The following description is for illustrative purposes only and is not intended to limit the inventive concepts claimed herein. Furthermore, specific features described herein can be combined with other described features in a variety of possible combinations and arrangements.

[0025] Unless otherwise expressly defined herein, all terms will be given the broadest possible interpretation, including the implied meaning in the specification and the meaning as understood by those skilled in the art and / or as defined in dictionaries, papers, etc.

[0026] It should also be noted that, as used in the specification and appended claims, the singular forms “a,” “an,” and “the” include plural objects unless otherwise stated. It will also be understood that the terms “comprising” and / or “including”, 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.

[0027] The following description discloses several aspects of implementing workloads in a multi-cloud environment.

[0028] In one general aspect, the computer-implemented method includes determining and storing the characteristics of multiple cloud providers; dividing the workload into multiple logical stages; determining the characteristics of each of the multiple logical stages; and for each of the multiple logical stages, assigning the logical stage to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical stage.

[0029] In another general aspect, the characteristics of each of the multiple cloud providers are determined by analyzing cloud providers. This analysis includes operational capabilities and costs. Application programming interfaces (APIs) are used to perform a scan of cloud providers.

[0030] In this way, the implementation of each logical stage within the workload can be sent to the optimal cloud provider for implementation. This can reduce the amount of resources (e.g., compute resources, storage resources, security resources, etc.) required to execute each logical stage, thereby improving the performance of one or more computing systems implementing (e.g., execution, etc.) the workload.

[0031] In another general aspect, a computer program product for implementing workloads in a multi-cloud environment includes a computer-readable storage medium having program instructions embodied therein, wherein the computer-readable storage medium itself is not a transient signal, and wherein the program instructions are executable by a processor to cause the processor to perform a method including determining and storing characteristics of multiple cloud providers by the processor; dividing the workload into multiple logical stages by the processor; determining characteristics of each of the multiple logical stages by the processor; and for each of the multiple logical stages, assigning the logical stage to one of the multiple cloud providers by the processor based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical stage.

[0032] In another general aspect, the characteristics of each cloud provider among multiple cloud providers are determined by analyzing cloud providers. The analysis includes estimating one or more viability factors for each cloud provider based on collected evaluation information of cloud providers, wherein viability factors are selected from a group including: serviceability, net promoter score (NPS), user reviews, performance benchmarks, and adjustment flexibility.

[0033] In another general aspect, the system includes a processor; and logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, wherein the logic is configured to determine and store characteristics of multiple cloud providers; divide the workload into multiple logical stages; determine the characteristics of each of the multiple logical stages; and for each of the multiple logical stages, assign the logical stage to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical stage.

[0034] In another general sense, workload partitioning involves parsing the workload to identify the points of data input and output within the workload, as well as the dependencies associated with the workload's inputs.

[0035] In this way, network resilience at each logical stage can be ensured, which can reduce the amount of data / computing work lost due to system outages or malware, and can also improve the performance of computing systems that implement the workload.

[0036] In another general aspect, the computer-implemented method includes determining the characteristics of multiple cloud providers by analyzing multiple cloud providers, the analysis including running application programming interfaces (APIs) to perform scans of multiple cloud providers based on capabilities and costs; collecting and parsing information from one or more public and private security databases to identify one or more of the following for each of the multiple cloud providers: reports, trends, vulnerabilities, security issues, etc.; and parsing one or more remediation databases to determine any existing solutions to any existing security issues of one or more of the multiple cloud providers; dividing the workload into multiple logical phases; determining the characteristics of each of the multiple logical phases; and for each of the multiple logical phases, assigning the logical phase to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical phase.

[0037] In another general aspect, the computer-implemented method includes determining and storing the characteristics of multiple cloud providers; dividing a workload into multiple logical phases, including parsing the workload to identify points of data input and output within the workload, and dependencies associated with the inputs of the workload, and scanning the source code of the workload to predict instances of data input and output within the workload, wherein each logical phase includes data inputs independent of other logical phases within the workload; determining the characteristics of each logical phase among the multiple logical phases; and for each logical phase among the multiple logical phases, assigning the logical phase to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical phase.

[0038] It should be understood that although this disclosure includes a detailed description of cloud computing, the implementation of the teaching described herein is not limited to a cloud computing environment. Rather, aspects of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.

[0039] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources, such as networks, network bandwidth, servers, processing power, storage, applications, virtual machines, and services, which can be rapidly provisioned and released with minimal management effort or interaction with the service provider. A cloud model may include at least five features, at least three service models, and at least four deployment models.

[0040] The features are as follows:

[0041] On-demand self-service: Cloud consumers can unilaterally and automatically supply computing power (such as server time and network storage) as needed without requiring manual interaction with the service provider.

[0042] Extensive network access: Capabilities are available on the network and accessed through standard mechanisms that facilitate use by heterogeneous thin-client or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0043] Resource pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Location-independent awareness exists because consumers typically do not control or know the exact location of the resources provided, but can specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0044] Rapid elasticity: In some cases, this refers to the ability to quickly and flexibly supply resources for rapid outward expansion and the ability to rapidly release resources for rapid inward expansion. For consumers, the available capacity for supply often appears unlimited and can be purchased in any quantity at any time.

[0045] Measurement services: Cloud systems automatically control and optimize resource usage by fully leveraging metering capabilities at a specific 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 for both providers and consumers of the services.

[0046] The service model is as follows:

[0047] Software as a Service (SaaS): The capability offered to consumers is the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from various client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.

[0048] Platform as a Service (PaaS): This provides consumers with the ability to deploy applications created or acquired by the consumer onto cloud infrastructure. These applications are created using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environments.

[0049] Infrastructure as a Service (IaaS): This provides consumers with the capability to supply processing, storage, networking, and other basic computing resources that enable them to deploy and run any software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating system, storage, deployed applications, and possibly limited control over the selection of networking components (e.g., host firewalls).

[0050] The deployment model is as follows:

[0051] Private cloud: Cloud infrastructure operated solely by an organization. It can be managed by the organization or a third party and can exist on-premises or externally.

[0052] Community cloud: Cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist in an on-premises or external deployment.

[0053] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.

[0054] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private cloud, community cloud, or public cloud) that maintain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be portable (e.g., cloud bursts for load balancing between clouds).

[0055] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure of a network of interconnected nodes.

[0056] Now for reference Figure 1 The diagram illustrates an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, which can communicate with local computing devices used by cloud consumers. These local computing devices include, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. Nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) within one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services, without requiring cloud consumers to maintain resources on their local computing devices. It should be understood that... Figure 1The types of computing devices 54A to 54N shown are intended to be illustrative only, and computing node 10 and cloud computing environment 50 can communicate with any type of computer device via any type of network and / or network-addressable connection (e.g., using a web browser).

[0057] Now for reference Figure 2 This demonstrates a cloud computing environment of 50 ( Figure 1 This provides a set of functional abstraction layers. It should be understood beforehand that... Figure 2 The components, layers, and functions shown are intended to be illustrative only, and aspects of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0058] The hardware and software layer 60 includes hardware components and software components. Examples of hardware components include: a host 61; a server 62 based on a RISC (Reduced Instruction Set Computer) architecture; a server 63; a blade server 64; a storage device 65; and networking and interconnection components 66. In some respects, software components include network application server software 67 and database software 68.

[0059] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.

[0060] In one example, management layer 80 may provide the following functionalities: Resource Provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82 provides cost tracking when utilizing resources in the cloud computing environment, as well as billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User Portal 83 provides access to the cloud computing environment for consumers and system administrators. Service Level Management 84 provides cloud resource allocation and management to meet required service levels. Service Level Agreement (SLA) Planning and Fulfillment 85 provides pre-scheduling and procurement of cloud resources, where future needs are anticipated according to the SLA.

[0061] Workload layer 90 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics and processing 94; transaction processing 95; and workload implementation 96.

[0062] Now for reference Figure 3The diagram illustrates an example of a cloud computing node. Cloud computing node 10 is merely one example of a suitable cloud computing node and is not intended to impose any limitation on the scope or functionality of the aspects of the invention described herein. In any case, cloud computing node 10 is capable of implementing and / or performing any of the functions set forth above.

[0063] Within cloud computing node 10, there exists a computer system / server 12, which is operable in conjunction with many other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with computer system / server 12 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 consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the aforementioned systems or devices.

[0064] Computer system / server 12 can be described in the general context of computer system executable instructions, such as program modules executed by the computer system. Typically, program modules can include routines, programs, objects, components, logic, data structures, etc., that perform specific tasks or implement specific abstract data types. Computer system / server 12 can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules can reside on both local computer system storage media and remote computer system storage media, including memory storage.

[0065] like Figure 3 As shown, the computer system / server 12 in cloud computing node 10 is illustrated in the form of a general-purpose computing device. Components of the computer system / server 12 may include, but are not limited to, one or more processors or processing units 16, system memory 28, and a bus 18 that couples various system components, including system memory 28, to the processor 16.

[0066] Bus 18 represents one or more types of bus architectures from among several types of bus architectures, including memory buses or memory controllers, peripheral device buses, accelerated graphics ports, and processor or local buses using any of the various bus architectures. By way of example and not limitation, these architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnect (PCI) bus.

[0067] Computer system / server 12 typically includes various computer system readable media. Such media can be any available media accessible by computer system / server 12, and it includes volatile and non-volatile media, removable media and non-removable media.

[0068] System memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. Computer system / server 12 may also include other removable / non-removable computer system storage media, volatile / non-volatile computer system storage media. By way of example only, storage system 34 may be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, and generally referred to as "hard disk drives"). Although not shown, disk drives for reading from and writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks such as CD-ROMs, DVD-ROMs, or other optical media may be provided. In this case, each may be connected to bus 18 via one or more data media interfaces. As will be further described and illustrated below, memory 28 may include at least one program product having a set of program modules (e.g., at least one) configured to implement the functions of various aspects of the invention.

[0069] A program / utility 40 having at least one set of program modules 42, along with an operating system, one or more application programs, other program modules, and program data, may be stored in memory 28 as an example and not as a limitation. 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 42 generally implement the functions and / or methods of various aspects of the invention described herein.

[0070] The computer system / server 12 can also communicate with one or more external devices 14, such as a keyboard, indicating devices, a display 24, etc.; with one or more devices that enable a user to interact with the computer system / server 12; and / or with any device that enables the computer system / server 12 to communicate with one or more other computing devices (e.g., a network interface card, a modem, etc.). This communication can occur via input / output (I / O) interface 22; however, the computer system / server 12 can communicate with one or more networks via network adapter 20, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet). As shown, network adapter 20 communicates with other components of the computer system / server 12 via bus 18. It should be understood that, although not shown, other hardware and / or software components can be used in conjunction with the computer system / server 12. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems.

[0071] Now for reference Figure 4 Storage system 400 is shown according to one aspect. Note that, according to various aspects, Figure 4 Some of the components shown can be implemented as hardware and / or software. Storage system 400 may include a storage system manager 412 for communicating with multiple media on at least one higher storage tier 402 and at least one lower storage tier 406. The higher storage tiers 402 preferably include one or more random access media and / or direct access media 404, such as hard disks in hard disk drives (HDDs), non-volatile memory (NVM), solid-state drives (SSDs), flash memory, SSD arrays, flash memory arrays, etc., and / or other media mentioned herein or known in the art. The lower storage tiers 406 preferably include one or more lower-performance storage media 408, including sequential access media (such as magnetic tape and / or optical media in tape drives), slower-access HDDs, slower-access SSDs, etc., and / or other media mentioned herein or known in the art. One or more additional storage tiers 416 may include any combination of storage media desired by the designer of system 400. In addition, any higher storage tier 402 and / or lower storage tier 406 may include some combination of storage devices and / or storage media.

[0072] Storage system manager 412 can be connected to network 410 (such as...) Figure 4The storage area network (SAN) shown, or some other suitable network type, communicates with storage media 404 and 408 on (multiple) higher storage tiers 402 and (multiple) lower storage tiers 406. The storage system manager 412 can also communicate with one or more host systems (not shown) via a host interface 414, which may or may not be part of the storage system manager 412. The storage system manager 412 and / or any other components of the storage system 400 can be implemented in hardware and / or software and can utilize processors (not shown) for executing commands of types known in the art, such as central processing units (CPUs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc. Of course, any arrangement of the storage system can be used, as will be apparent to those skilled in the art upon reading this specification.

[0073] In other respects, storage system 400 may include any number of data storage tiers, and may include the same or different storage media within each storage tier. For example, each data storage tier may include the same type of storage media, such as HDD, SSD, sequential access media (tape in a tape drive, optical disc in an optical disc drive, etc.), direct access media (CD-ROM, DVD-ROM, etc.), or any combination of media storage types. In such a configuration, higher storage tier 402 may include a majority of SSD storage media for storing data in a higher-performance storage environment, and the remaining storage tiers including lower storage tier 406 and additional storage tier 416 may include any combination of SSDs, HDDs, tape drives, etc., for storing data in a lower-performance storage environment. Thus, data accessed more frequently, data with higher priority, data requiring faster access, etc., can be stored in higher storage tier 402, while data without any of these attributes can be stored in the additional storage tier 416, including lower storage tier 406. Of course, those skilled in the art, upon reading this specification, can design many other combinations of storage media types to achieve different storage schemes based on the aspects presented herein.

[0074] According to some aspects, the storage system (such as 400) may include logic configured to receive a request for opening a dataset, logic configured to determine whether the requested dataset is stored in a plurality of associated portions in a lower storage layer 406 of the hierarchical data storage system 400, logic configured to move each associated portion of the requested dataset to a higher storage layer 402 of the hierarchical data storage system 400, and logic configured to combine the requested dataset from the associated portions onto the higher storage layer 402 of the hierarchical data storage system 400.

[0075] Of course, depending on the circumstances, this logic can be implemented as a method or computer program product on any device and / or system.

[0076] Now for reference Figure 5 A flowchart of method 500 is shown according to one aspect. In various aspects, method 500 can be implemented according to the invention... Figures 1 to 4 This can be performed in any environment depicted herein. Of course, as those skilled in the art will understand upon reading this specification, method 500 may include more than... Figure 5 The specific operations described in the text may include more or fewer operations.

[0077] Each step of method 500 can be performed by any suitable component of the operating environment. For example, in various aspects, method 500 can be performed partially or entirely by one or more servers, computers, or some other device having one or more processors therein. One or more steps of method 500 can be performed in any device using a processor (e.g., multiple processing circuits, multiple chips, and / or multiple modules implemented in hardware and / or software and preferably having at least one hardware component). Illustrative processors include, but are not limited to, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), combinations thereof, or any other suitable computing devices known in the art.

[0078] like Figure 5 As shown, method 500 may begin with operation 502, in which the characteristics of multiple cloud providers are identified and stored. In one aspect, each of the multiple cloud providers may include a cloud-based service provider (e.g., a service provider located within a cloud computing environment). In another aspect, each of the multiple cloud providers may provide services such as computing processing, data storage, etc. For example, each of the cloud providers may provide one or more services such as Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), etc.

[0079] Additionally, in one aspect, the characteristics of each of the multiple cloud providers can be determined by analyzing the cloud providers. In another aspect, this analysis may include running one or more capability and / or cost application programming interfaces (APIs) to perform scans of the cloud providers. In yet another aspect, the analysis may include collecting and parsing information from one or more public and private security databases to identify one or more of the following for each cloud provider: reports, trends, vulnerabilities, security issues, etc.

[0080] Furthermore, in one aspect, the analysis may include parsing one or more remediation databases to identify any existing solutions to any existing security issues of one or more cloud vendors. In another aspect, the analysis may include estimating one or more viability factors for each cloud vendor based on collected review information. For example, viability factors may include: serviceability, net promoter score (NPS), user reviews, performance benchmarks, and tuning flexibility.

[0081] Furthermore, on one hand, for each cloud provider, characteristics may include the cloud provider's capabilities, the cost of implementing the cloud provider, the level of security implemented by the cloud provider, and feasibility factors associated with the cloud provider. On the other hand, each characteristic can be compared with one or more predefined thresholds to determine a rating for each characteristic.

[0082] For example, if the amount of security implemented by the cloud provider exceeds a first threshold, the security feature for the cloud provider can be assigned a first level (e.g., high level). In another example, if the amount of security implemented by the cloud provider is less than the first threshold but exceeds a second threshold, the security feature for the cloud provider can be assigned a second level (e.g., medium level). In yet another example, if the amount of security implemented by the cloud provider is less than the second threshold, the security feature for the cloud provider can be assigned a third level (e.g., low level).

[0083] Furthermore, in one aspect, the characteristics may include network security characteristics specific to each cloud provider, which can indicate the level of security provided by the cloud provider during workload implementation. In another aspect, the characteristics may include network resilience characteristics specific to each cloud provider, which can indicate the level of resilience provided by the cloud provider during workload implementation (e.g., crash protection, malware protection, redundant data protection, etc.). For example, the network security and network resilience characteristics specific to each cloud provider can be derived from other characteristics identified for that cloud provider.

[0084] Additionally, in one aspect, the cloud provider's identifier can be stored in association with one or more of the textual description of the feature, the numerical estimate associated with each feature, etc. In another aspect, the feature can be stored on one or more storage devices, in a cloud storage environment, etc.

[0085] Furthermore, method 500 can proceed to operation 504, where the workload is divided into multiple logical stages. In one aspect, the workload may include required inputs (e.g., one or more instances of data to be analyzed and / or manipulated by the workload). In another aspect, the workload may include one or more computations to be performed as part of the workload (e.g., one or more computational algorithms to be performed on predetermined inputs). In yet another aspect, the workload may include one or more resulting outputs (e.g., output data) as a result of performing the workload.

[0086] Furthermore, in one aspect, a workload may include one or more general-purpose processing pipeline stages. In another aspect, a workload can be parsed to identify points of data input and output within the workload, as well as dependencies associated with the inputs. For example, for a given instance of data input within a workload, it can be determined whether the data input depends on data output from the same workload.

[0087] Furthermore, in one aspect, the workload's source code can be scanned to predict instances of data inputs and outputs within the workload. For example, this prediction can be performed to increase the accuracy of workload partitioning / logical phase creation. In another aspect, the workload can then be partitioned into logical phases, where each logical phase includes data inputs independent of other logical phases within the workload.

[0088] Additionally, in one aspect, when dividing a workload into logical phases, predetermined inputs can be referenced (e.g., inputs identifying the predetermined phases). In another aspect, each logical phase can be parsed to determine whether one or more non-parallel tasks are executed within that logical phase (e.g., tasks that cannot be executed in parallel due to one or more data or resource dependencies). For example, in response to determining that a logical phase contains non-parallel tasks, the logical phase can be divided into multiple smaller logical phases, each containing one of the non-parallel tasks.

[0089] Furthermore, method 500 can proceed to operation 506, in which the characteristics of each of the multiple logical stages are determined. In one aspect, the complexity of each logical stage can be determined based on the inputs, outputs, and intermediate results within the stage. For example, the inputs, outputs, and intermediate results within the stage can be compared with historical workload stages to determine the complexity for the stage.

[0090] Furthermore, in one aspect, the characteristics of each logical stage within a logical stage can be determined based on the complexity of the stage. For example, characteristics may include one or more of the following: estimated execution time, one or more expected performance characteristics, one or more security requirements, one or more resource requirements, one or more network resilience requirements, etc.

[0091] Furthermore, in one aspect, a first ordering of all logical stages can be determined for each of the multiple resources. For example, resources can include one or more of the following: computing resources, storage resources, network resources, external resources, etc. In another example, for computing resources, the first logical stage may need to perform a large amount of computation, while the second logical stage may need to perform a smaller amount of computation. In yet another example, in response, for computing resources, the first logical stage may be ranked higher than the second logical stage.

[0092] Additionally, in one aspect, a second ranking can be performed for all logical stages based on the first ranking for network security and network resilience factors. For example, this second ranking can determine a network security ranking for each logical stage, with the network security ranking indicating the level of security required during implementation. In another example, the second ranking can also determine a network resilience ranking for each logical stage, with the network resilience ranking indicating the level of resilience required during implementation (e.g., crash protection, malware protection, redundant data protection, etc.).

[0093] Furthermore, method 500 may proceed to operation 508, wherein for each of the multiple logical stages, the logical stage is assigned to one of the multiple cloud providers based on a comparison of the characteristics of the multiple cloud providers with the characteristics of the logical stage. In one aspect, for each logical stage, the characteristics of the stage may be compared with the characteristics of each of the multiple cloud providers to determine one or more cloud providers capable of meeting the requirements of the logical stage (e.g., processing requirements, storage requirements, bandwidth requirements, network security requirements, network resilience requirements, etc.).

[0094] Furthermore, in one aspect, assigning logical stages to cloud providers can include mapping / assigning logical stages to cloud providers, enabling them to receive the inputs required by the logical stages, perform the operations required by the logical stages, and output the data required by the logical stages. In another aspect, the assignment can be adjusted based on historical performance data. For example, if a predetermined cloud provider has provided performance above a predetermined threshold for a historical logical stage with a predetermined similarity level to the current logical stage, then the predetermined cloud provider can be assigned to the current logical stage.

[0095] Furthermore, in one aspect, the mapping of each logical stage to the cloud provider can be presented to one or more users (e.g., using a graphical user interface (GUI)). For example, users can use options provided within the GUI to confirm, adjust, and / or implement logical stages.

[0096] Additionally, resource allocation within each logical phase can be adjusted based on user / entity priorities. For example, statistical learning can be performed on historical tasks executed within historical workloads to determine one or more resources required by those historical tasks. These historical tasks can then be compared with current tasks within the logical phase to determine the resources required by those tasks.

[0097] For example, a first task performed by a first entity within a logical phase might require the use of predetermined resources (e.g., high-speed storage, etc.) allocated to that logical phase from within the cloud provider. In another example, a second task to be performed by a second entity within a logical phase might also require the use of predetermined resources allocated to that logical phase from within the cloud provider. In yet another example, in response to determining that the first entity has a higher priority than the second entity, predetermined resources may be assigned to the first entity, and another resource (e.g., medium-speed storage, etc.) may be assigned to the second entity.

[0098] Furthermore, in one aspect, data migration can be performed between cloud providers during workload implementation to ensure that data resides at the necessary cloud provider during each task. For example, data initially generated at a high-security cloud provider can be migrated to a low-security cloud provider for later operations, but can be migrated back to the high-security cloud provider after such an operation to securely store the data. This enables lifecycle management and ensures the security of predetermined data.

[0099] In this way, the implementation of each logical stage within the workload can be sent to the optimal cloud provider for implementation. This reduces the amount of resources (e.g., compute resources, storage resources, security resources, etc.) required to execute each logical stage, which can improve the performance of one or more computing systems implementing the workload (e.g., execution, etc.). Additionally, network resilience can be ensured for each logical stage, which can reduce data / compute work lost due to system outages or malware, further improving the performance of the computing systems implementing the workload.

[0100] Now for reference Figure 6 A flowchart of a method 600 for scanning cloud providers is shown according to one aspect. In various aspects, method 600 can be performed according to the present invention. Figures 1 to 4This method can be performed in any environment described herein. Of course, as those skilled in the art will understand upon reading this specification, method 600 may include more than […]. Figure 6 The specific operations described in the text may include more or fewer operations.

[0101] Each step of method 600 can be performed by any suitable component of the operating environment. For example, in various aspects, method 600 can be performed partially or entirely by one or more servers, computers, or other devices having one or more processors therein. One or more steps of method 600 can be performed in any device using a processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component). Illustrative processors include, but are not limited to, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), combinations thereof, or any other suitable computing devices known in the art.

[0102] like Figure 6 As shown, method 600 can begin with operation 602, in which security and resilience features provided by the cloud provider are scanned. Additionally, method 600 can proceed to operation 604, in which an application programming interface (API) is used to perform capability and cost estimations for the cloud provider.

[0103] Additionally, method 600 may proceed to operation 606, in which scanning is performed across public and private knowledge bases to collect reports, vulnerability-related trends, security information, attack information, and threat information for all applications run by the cloud provider. Furthermore, method 600 may proceed to operation 608, in which potential remediations are identified for identified vulnerabilities within a security database (e.g., NIST, etc.).

[0104] Furthermore, method 600 can proceed to operation 610, in which feasibility factors for the cloud provider are estimated based on feedback registered on the cloud platform and community for all applications run by the cloud provider.

[0105] This method allows you to identify the characteristics of a cloud provider.

[0106] Now for reference Figure 7 A flowchart of a method 700 for identifying workload requirements is shown according to one aspect. In various aspects, method 700 can be implemented according to the invention... Figures 1 to 4 This method can be performed in any environment described herein. Of course, as those skilled in the art will understand upon reading this specification, method 700 may include more than […]. Figure 7 The specific operations described in the text may include more or fewer operations.

[0107] Each step of method 700 can be performed by any suitable component of the operating environment. For example, in various aspects, method 700 can be performed partially or entirely by one or more servers, computers, or other devices having one or more processors therein. One or more steps of method 700 can be performed in any device using a processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component). Illustrative processors include, but are not limited to, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), combinations thereof, or any other suitable computing devices known in the art.

[0108] like Figure 7 As shown, method 700 can begin with operation 702, where the workload stages involved in the workload are identified, or modifications to existing pipeline stages are proposed. Additionally, method 700 can proceed to operation 704, where the workload is segmented into independent stages based on inputs and outputs and child / parent functions. Furthermore, method 700 can proceed to operation 706, where manual input is received, where such input relates to confidentiality requirements for the workload.

[0109] Furthermore, method 700 can proceed to operation 708, in which independent stages are analyzed to verify pipeline optimization in terms of execution time based on the non-parallel tasks present in each stage. Additionally, method 700 can proceed to operation 710, in which the proposed stage decomposition and the original independent stages are presented for user selection.

[0110] Additionally, method 700 can proceed to operation 712, where network security and resilience characteristics are estimated for each stage based on workload scanning. Furthermore, method 700 can proceed to operation 714, where resources are ranked based on expected utilization time, criticality, and importance, according to the estimated resources required for each stage. Furthermore, method 700 can proceed to operation 716, where a matching cloud provider is determined for each stage based on ranking comparisons.

[0111] In this way, cloud providers can match the phases created for the workload.

[0112] Now for reference Figure 8 A flowchart of a method 800 for implementing a multi-tenant workload management engine is shown according to one aspect. In various aspects, method 800 can be implemented according to the present invention... Figures 1 to 4 This method can be executed in any environment described herein. Of course, as those skilled in the art will understand upon reading this specification, method 800 may include more than […]. Figure 8The specific operations described in the text may include more or fewer operations.

[0113] Each step of method 800 can be performed by any suitable component of the operating environment. For example, in various aspects, method 800 can be performed partially or entirely by one or more servers, computers, or some other device having one or more processors therein. One or more steps of method 800 can be performed in any device using a processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software and preferably having at least one hardware component). Illustrative processors include, but are not limited to, central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), combinations thereof, or any other suitable computing devices known in the art.

[0114] like Figure 8 As shown, method 800 can begin with operation 802, where, within a multi-tenant environment workload management platform, user details are used to define the nature of the problem and the task to be solved by the user. Additionally, method 800 can proceed to operation 804, where, based on the determined workload for the user profile, requirements for the workload computation algorithm are identified. Furthermore, method 800 can proceed to operation 806, where, based on the requirements, a cloud provider is matched to each stage of the task.

[0115] Improve multi-cloud orchestration and workload management engines based on network elasticity to manage resources.

[0116] Multi-cloud / Hybrid Orchestration / Manager

[0117] Multi-cloud orchestrators can include one or more applications that help manage the interconnection and interaction across multiple cloud resources and on-premises infrastructure. The orchestration layer aligns business requests and workloads with applications, data, and infrastructure. Orchestrators can help define policies and service levels through automated workload, provisioning, and change management. Orchestrators can create application-aligned infrastructure that can scale up or down based on the needs of each application. Orchestrators also provide centralized management of resource pools, including billing, metering, and refunds for consumption.

[0118] Workload Management Engine

[0119] A workload management engine can distribute work across existing heterogeneous IT resources to create a shared, scalable, and fault-tolerant infrastructure that delivers faster, more reliable workload performance and reduces costs. The engine can balance load, allocate resources, and provide access to those resources. It can provide a resource management framework that acquires job requirements, finds the best resources to run jobs, and monitors job progress. Jobs can be run based on host load and site policies.

[0120] Network resilience

[0121] Network resilience can include an entity's ability to continuously deliver the intended effects regardless of adverse network events. Entities with a potential need for network resilience capabilities include, but are not limited to, IT systems, critical infrastructure, business processes, organizations, societies, and ethnic groups. Adverse network events are those events that negatively impact the availability, integrity, or confidentiality of networked IT systems and associated information and services. These events can be intentional (e.g., a cyberattack) or unintentional (e.g., a failed software update) and can be caused by humans, nature, or a combination thereof.

[0122] One goal of network resilience is the ability of entities to maintain continuous delivery of intended effects, even when routine delivery mechanisms have failed (such as during a crisis or after a security breach). The concept also includes the ability to restore routine delivery mechanisms after such events, and the ability to continuously change or modify these mechanisms if necessary in the face of new risks. Performing data backup and disaster recovery operations is part of the process of restoring delivery mechanisms.

[0123] Composable infrastructure

[0124] Composable infrastructure can be a framework in which physical computing, storage, and network infrastructure resources are treated as services. In composable infrastructure, resources are logically centralized, eliminating the need for administrators to physically configure hardware to support specific software applications. Instead, software developers can use policies and service profiles to define application requirements for the physical infrastructure, and then the software can use application programming interface (API) calls to create (compose) the infrastructure it needs to run on bare metal as a virtual machine (VM) or as a container.

[0125] In one respect, the orchestration and workload management engine can integrate with traditional cloud orchestrator platforms. The engine can initiate when participating in the resources required for the provided workflow, and can identify the stages involved, analyze stage characteristics, estimate the network resilience characteristics required for each stage, compare these characteristics with pre-collected network characteristics provided by decomposable infrastructures deployed in multiple clouds or on-premises, determine the matching cloud or on-premises infrastructure for each stage (and perform security and performance tuning if necessary), and perform resource lifecycle management.

[0126] In one aspect, the multi-tenant-aware orchestration and workload management engine can integrate with traditional cloud orchestrator platforms. Upon initiating resources fed into a workflow, the engine automatically identifies the involved phases (based on non-parallel task analysis and dependency phase analysis), analyzes phase characteristics (based on the complexity of the algorithms involved in the phase and the expected completion time), estimates the network security and resilience features required for each phase, compares these with pre-collected network features provided by decomposable infrastructure from multiple cloud or on-premises deployments, determines the cloud or on-premises infrastructure to match each phase (and performs security and performance tuning if necessary), and performs resource lifecycle management (such as deployment, tuning, migration, storage, and dismantling).

[0127] An exemplary orchestration and workload management engine includes:

[0128] 1. Scan the security and resilience features, as well as cost relationships, of each service offered by the preferred cloud provider.

[0129] A. Perform the scanning action by executing the per-service capability API and cost estimation API provided by the cloud provider.

[0130] B. Performs scans across public and private security databases (depending on subscription access levels) to collect and analyze the latest reports on each application from each cloud provider, as well as trends related to vulnerabilities, security, attacks, and threats. The scheduler also identifies potential fixes for identified security issues by analyzing databases such as NIST.

[0131] C. Perform a scan to estimate feasibility factors (such as serviceability, net promoter score (NPS), user reviews, usability, performance benchmarks, optimization usage / tuning flexibility, etc.) based on feedback registered on review sharing cloud platforms, communities, developer email threads, industry trends / research reports, etc.

[0132] Scan results can be stored in a table with a pattern such as Table 1 below, which can be expanded to include factors such as network capabilities, VPN speed, and feasibility factors (such as NPS, tuning, etc.).

[0133] Table 1

[0134]

[0135] 2. Automatically identify the stages involved in the input workflow, or suggest modifications to already entered pipeline stages.

[0136] A. Automatic labeling involves parsing the entire workload (input, (multiple) computational algorithms, and expected output) and breaking them down into independent stages (where the input to each stage is readily available or has fewer sub-functions). Automatic labeling algorithms may include industry-related, confidentiality-related, and other human inputs associated with the input workload.

[0137] B. Automatic identification also involves the analysis of the already entered pipeline stages. By analyzing the non-parallel tasks present in each stage, it is determined whether the pipeline is optimized in terms of execution time. Based on this analysis, modified stage splits are proposed to the administrator (wherein, the administrator is given the freedom to execute workloads by selecting the original stage split or the modified stage split).

[0138] 3. Estimate the network security and resilience features required at each stage.

[0139] A. Network security and resilience features: The computational algorithms for each phase, along with their expected inputs, outputs, and intermediate results, are scanned and analyzed. This estimation is based on comparing each phase with past workload phases run using the workload management platform, and with predefined phase templates that have been input during deployment (input templates are based on software vendor experience gained through research, beta programs, and workload templates borrowed from other customers, etc.).

[0140] B. Determine the approximate execution time based on the complexity of the computational algorithm. Based on the estimated time, determine the expected performance characteristics that match the estimated computation time (e.g., where the cost per computation per level is determined by administrator input or automatically) and the security requirements and resources (e.g., network, external factors—WAN speed, computation, storage) required for the tasks involved in the stage.

[0141] C. Based on the estimated resources required by each stage, resources are ranked according to their expected usage time, criticality, and the importance of inputs and outputs generated by the stages. For example, as shown in Table 2 below, stage N is expected to generate confidential outputs or outputs after extensive computation, where the inputs are generic or well-known. Similarly, stage 1 is expected to generate generic outputs with minimal computation and requires input data fed from locally deployed data storage.

[0142] Table 2

[0143]

[0144] Based on the above ranking, the proposed ranking algorithm ranks network security and resilience stages, as shown in Table 3 below.

[0145] Table 3

[0146] stage Network security ranking Flexible sorting Phase 1 high Low Phase 2 Low medium Stage N medium high

[0147] The workload management platform can compare the calculated ranking (in step 3 above) with the scan results (from step 1 above), which include pre-collected network characteristics, resilience features provided by decomposable infrastructure deployed across multiple clouds or on-premises, and more. Based on the ranking comparison, matching cloud or on-premises infrastructure can be assigned to each stage.

[0148] Additionally, the orchestration model can be presented to users (e.g., administrators) for approval. Upon approval, the proposed workload management platform requests resources in each corresponding cloud, performs security and performance tuning (which may include application tuning to accommodate CPU speed differences between on-premises clusters and the cloud, and adjusting for speed differences between on-premises networks and WAN connections), and performs resource lifecycle management (such as secure deployment, tuning, migration, secure storage, dismantling, etc.).

[0149] Figure 9 An exemplary computational orchestration scheme 900, output to a display according to an exemplary aspect, is illustrated. As shown, multiple stages 902A-902C each include resource, cost, cloud provider, and execution time determination. Indications 904A-B for data transfer amounts 904A-B between stages 902A-902C are also provided, as well as options to accept an orchestration pattern 900 calculated by 906 or a customization 908.

[0150] In one aspect, workload management platforms can also be multi-tenant-aware. For example, the platform obtains user ID details and sorting or organization / department details, and based on these details, the platform estimates the nature of the problem / task being performed by the user. For example, nuclear research scientists can utilize a workload management platform. The algorithm can identify the corresponding user ID as "nuclear scientist" and the workload as a nucleus / atom (which could be a workload corresponding to an algorithm such as spectral analysis or Boltzmann distribution).

[0151] Similarly, the same workload management platform is shared and accessible to university biology students. The proposed algorithm can identify the corresponding user ID as "biology student" and the workload as computational biology (which could be a workload corresponding to algorithms such as sequencing or proton model building). In response, nuclear scientists can be given priority in computation, storage, and bandwidth over biology students, as the former takes precedence over the latter.

[0152] This can enhance the access permissions of the workload management platform, enabling the system to scan the source code of the computing software or algorithms that users are supposed to feed data to. Based on such code scanning, the system can predict the nature of the inputs / outputs, similarly estimate the target cloud resources for optimization, and perform comparisons to calculate a multi-cloud security score. The workload management platform can also identify whether past workload patterns have been executed by any cloud provider and analyze how well they performed. The ranking will be adjusted based on the results of this analysis.

[0153] The workload management platform can also estimate the data requirements for each stage / task and perform lifecycle management. For example, the workload management platform can initiate workload stage execution using a first-order cloud resource (based on the highest-order priority). However, after the workload stage is completed, the platform can identify future stages that plan to use lower-order resources, but which provide higher-order resources for long-term storage compared to the lower-order resources. In this case, the workload management algorithm migrates the required data to the lower-order resources for a predetermined duration (where the duration depends on the stage execution time), and after its completion, the data is safely migrated back to the first-order cloud resource for long-term storage.

[0154] This invention can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.

[0155] Computer-readable storage media can be tangible devices capable of retaining and storing instructions used by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, 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 optical disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

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

[0157] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, integrated circuit configuration 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 procedural programming languages ​​(such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed 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 case, 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 may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some aspects, to perform aspects of this invention, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuits by utilizing the status information of the computer-readable program instructions.

[0158] Various aspects of the invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to various aspects 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.

[0159] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0160] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other 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, such that the instructions, which execute on the computer, other programmable apparatus or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0161] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various aspects of the invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may not occur in the order indicated in the figures. For example, two blocks shown consecutively may actually be implemented as a single step, executed simultaneously, substantially simultaneously, with partial or complete time overlap, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.

[0162] Furthermore, depending on the aspects, the system may include a processor and logic integrated with and / or executable by the processor, which is configured to perform one or more of the processing steps described herein. "Integrated with" means that the processor has logic embedded therewith as hardware logic, such as an application-specific integrated circuit (ASIC), an FPGA, etc. "Executable by the processor" means that the logic is hardware logic; software logic, such as firmware, part of an operating system, part of an application; etc., or some combination of hardware and software logic that is accessible to the processor and configured to cause the processor to perform a certain function when executed by the processor. The software logic may be stored on local and / or remote memory of any memory type, as is known in the art. Any processor known in the art may be used, such as software processor modules and / or hardware processors, such as ASICs, FPGAs, central processing units (CPUs), integrated circuits (ICs), graphics processing units (GPUs), etc.

[0163] It is clear that the various features of the aforementioned systems and / or methods can be combined in any way, resulting in multiple combinations from the description presented above.

[0164] It should also be understood that aspects of the present invention may be provided in the form of services deployed on behalf of customers, to provide services on demand.

[0165] For illustrative purposes, various aspects of the invention have been described, but are not exhaustive or limited to the disclosed aspects. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described aspects. The terminology used herein has been chosen to best explain the principles, practical applications, or technical improvements available in the market, or to enable others skilled in the art to understand the aspects disclosed herein.

Claims

1. A computer-implemented method, comprising: Determine the characteristics of multiple cloud providers; Store the features of the multiple cloud providers; The workload is divided into multiple logical stages based on the data input and output points within the workload and the dependencies associated with the inputs of the workload. For each of the logical stages: The complexity of the logical stage is determined by comparing the inputs and outputs of the logical stage with those of historical stages. The characteristics of a logical stage are determined based on the complexity of the logical stage by comparing the inputs, outputs, and intermediate results within each logical stage with historical workload stages to determine the complexity of the corresponding logical stage. For each of the logical stages, the cloud provider is assigned to one of the cloud providers by comparing the characteristics of the cloud provider with the characteristics of the logical stage to determine the cloud provider that can meet the requirements of the logical stage. as well as The migration of data operated on during the implementation of the workload is performed between the cloud providers to ensure that the data is located at the necessary cloud provider during the corresponding task of the workload.

2. The computer-implemented method of claim 1, wherein the characteristics of each of the plurality of cloud providers are determined by analyzing the cloud provider, the analysis comprising: The application programming interface (API) is used to perform scans of the cloud providers, assessing their operational capabilities and costs.

3. The computer-implemented method of claim 1, wherein at least some of the characteristics of the cloud provider are determined by analyzing the cloud provider, the analysis comprising: Collect and parse information from one or more public and private security databases to identify one or more of the following for each of the cloud providers: reports, trends, vulnerabilities, and security issues.

4. The computer-implemented method of claim 1, wherein at least some of the characteristics of the cloud provider are determined by analyzing the cloud provider, the analysis comprising: Parse one or more repair databases to identify any existing solutions for any existing security issues of one or more of the cloud providers.

5. The computer-implemented method of claim 1, wherein at least some of the characteristics of the cloud provider are determined by estimating one or more feasibility factors for each of the respective cloud providers based on collected review information about the cloud providers, wherein the feasibility factors include: Serviceability, Net Promoter Score (NPS), user reviews, performance benchmarks, and tuning flexibility.

6. The computer-implemented method of claim 1, wherein for at least some of the cloud providers, the characteristics of a particular cloud provider include the capabilities of the cloud provider, the cost of implementing the cloud provider, and feasibility factors associated with the cloud provider.

7. The computer-implemented method of claim 1, wherein the characteristics of the cloud provider are compared with one or more predefined thresholds to determine a level for each of the characteristics of the cloud provider.

8. The computer-implemented method of claim 1, wherein for at least some of the cloud providers, the characteristics of the cloud providers include: Network security characteristics, indicating the level of security provided by the cloud provider during workload implementation, and Network resilience features, which indicate the level of crash protection, malware protection, and redundant data protection provided by the cloud provider during workload implementation; Estimated execution time One or more performance characteristics, and One or more resource requirements.

9. The computer-implemented method according to claim 1, wherein dividing the workload comprises: The workload is parsed to identify the data input points and data output points within the workload.

10. The computer-implemented method of claim 1, wherein the source code of the workload is scanned to predict instances of data inputs and outputs within the workload.

11. The computer-implemented method of claim 1, wherein at least some of the logical stages include data input independent of other logical stages within the workload.

12. The computer-implemented method of claim 1, wherein the complexity of each logical stage in the logical stages is determined based on intermediate results within the logical stage.

13. The computer-implemented method according to claim 1, wherein: At least some of the characteristics of the cloud providers are determined by parsing one or more remediation databases to identify existing solutions to existing security issues targeting one or more of the cloud providers; and The division of the workload includes parsing the workload to identify the data input points and data output points within the workload.

14. The computer-implemented method of claim 1, wherein allocating the logical stages to a cloud provider comprises: The logical stages are mapped to the cloud provider, enabling the cloud provider to receive the inputs required by the logical stages, perform the operations required by the logical stages, and output the data required by the logical stages.

15. The computer-implemented method according to claim 1, further comprising: Using a graphical user interface (GUI), present the mapping of each logical stage to the cloud provider to one or more users.

16. The computer-implemented method of claim 1 further includes adjusting resource allocation within each logical stage based on user priority.

17. The computer-implemented method of claim 1, wherein the migration includes migrating data from a first cloud provider among the cloud providers to a second cloud provider among the cloud providers, and migrating the data from the second cloud provider back to the first cloud provider.

18. A computer program product comprising one or more computer-readable storage media and program instructions commonly stored on the one or more computer-readable storage media, the program instructions including instructions configured to cause one or more processors to perform a method, the method comprising: The characteristics of multiple cloud providers are analyzed by the one or more processors; The one or more processors determine a relative level for each of the features determined for the cloud provider, the relative level including a relatively high level and a relatively low level; The one or more processors scan the source code of the workload to predict data input and output instances within the workload; The workload is divided into multiple logical stages by the one or more processors, wherein dividing the workload includes: parsing the workload to identify data input points and data output points within the workload, and dependencies associated with the inputs of the workload, wherein the division is based at least in part on predicted instances of the data inputs and outputs within the workload to improve the accuracy of the division; For each of the logical stages: The complexity of the logical stage is determined by the one or more processors by comparing the inputs and outputs for the logical stage with those of historical stages. The characteristics of a logical stage are determined by the one or more processors based on the complexity of the logical stage by comparing the inputs, outputs, and intermediate results within each logical stage with historical workload stages to determine the complexity of the corresponding logical stage; and The one or more processors compare the characteristics of the cloud provider with the characteristics of the logical stage to determine which cloud provider can meet the requirements of the logical stage. The one or more processors assign the logical stages to different cloud providers among the cloud providers based on the comparison, for the cloud providers to execute the logical stages; and The migration of data operated on during the implementation of the workload is performed between the cloud providers to ensure that the data is located at the necessary cloud provider during the corresponding task of the workload.

19. The computer program product of claim 18, wherein the cloud provider executes one or more logical phases assigned to it.

20. The computer program product of claim 18, wherein the characteristics of each of the plurality of cloud providers are determined by analyzing the cloud providers, the analysis comprising: The application programming interface (API) is used to perform scans of the cloud providers, assessing their operational capabilities and costs.

21. The computer program product of claim 18, wherein the characteristics of at least some of the cloud providers are determined by analyzing the respective cloud providers, the analysis comprising: Collect and parse information from one or more public and private security databases to identify one or more of the following for each of the cloud providers: reports, trends, vulnerabilities, and security issues.

22. The computer program product of claim 18, comprising program instructions configured to enable lifecycle management of the one or more processors, the lifecycle management including performing migration of data operated on during the implementation of the workload between the cloud providers to ensure that the data is located at the necessary cloud provider for operation on the corresponding task of the workload.

23. A system comprising: processor; as well as Logic, which is integrated with, or is executable by, the processor, or is both integrated with and executable by the processor, is configured to: Run the application programming interface (API) to scan multiple cloud providers to determine the characteristics of the multiple cloud providers; Parse one or more remediation databases to determine existing solutions to existing security issues targeting the cloud providers, and to determine the characteristics of the multiple cloud providers; Store the features of the multiple cloud providers; Scan the source code of the workload to predict data input and output instances within the workload; The workload is divided into multiple logical stages based on the data input and output points within the workload and the dependencies associated with the inputs of the workload. For each of the logical stages: The complexity of the logical stage is determined by comparing the inputs and outputs of the logical stage with those of historical stages. The characteristics of a logical stage are determined based on the complexity of the logical stage by comparing the inputs, outputs, and intermediate results within each logical stage with historical workload stages to determine the complexity of the corresponding logical stage. For each of the logical stages, based on a comparison between the characteristics of the cloud provider and the characteristics of the logical stage, the logical stage is assigned to one of the cloud providers to determine one or more cloud providers that can meet the requirements of the logical stage. as well as The migration of data operated on during the implementation of the workload is performed between the cloud providers to ensure that the data is located at the necessary cloud provider for operation to be performed on it during the corresponding task of the workload.

24. A computer-implemented method, comprising: Determine the characteristics of multiple cloud providers, including: for each of the cloud providers, Run the Application Programming Interface (API) to perform a scan of the cloud provider, collect and parse security database information to identify the following items related to the cloud provider: reports, trends, vulnerabilities, and security issues. Analyze one or more remediation databases to identify existing solutions for existing security issues with the cloud provider; Scan the source code of the workload to predict instances of data input and output within the workload; The workload is divided into multiple logical phases; Determining the characteristics of each logical stage in the logical stages includes: for each logical stage in the logical stages, The inputs, outputs, and intermediate results within the logical phase are compared with historical workload phases to determine the complexity for that logical phase. The characteristics of the aforementioned logical stage are determined based on the complexity of the logical stage; and For each of the logical stages, based on a comparison between the characteristics of the cloud provider and the characteristics of the logical stage, the logical stage is assigned to one of the cloud providers; and During the implementation of the workload, data migration is performed between the cloud providers to ensure that data is located at the necessary cloud providers during the corresponding tasks of the workload.

25. A computer program product comprising one or more computer-readable storage media and program instructions commonly stored on the one or more computer-readable storage media, the program instructions including instructions configured to cause one or more processors to perform a method, the method comprising: The characteristics of multiple cloud providers are determined by the one or more processors, including: for each of the cloud providers, The operational capabilities and costs of the application programming interface (API) are used to perform scans of the cloud providers. Analyze one or more remediation databases to determine existing solutions to existing security issues targeting the cloud provider; The one or more processors scan the source code of the workload to predict data input and output instances within the workload; The workload is divided into multiple logical stages by the one or more processors, including parsing the workload to identify data input points and data output points within the workload, as well as dependencies associated with the inputs of the workload; Determining the characteristics of each logical stage in the logical stages by the one or more processors includes: for each logical stage, The inputs, outputs, and intermediate results within the logical phase are compared with historical workload phases to determine the complexity for that logical phase. The characteristics of the aforementioned logical stage are determined based on the complexity of the logical stage; and For each of the logical stages, the one or more processors assign the logical stage to one of the cloud providers based on a comparison between the characteristics of the cloud provider and the characteristics of the logical stage; and Implement lifecycle management, including performing data migration between cloud providers during the implementation of the workload to ensure that data is located at the necessary cloud providers during the corresponding tasks of the workload.

Citation Information

Patent Citations

  • Partitioning and Mapping Workloads for Scalable SaaS Applications on Cloud

    US20160036905A1

  • Enhanced data leakage detection in cloud services

    US9998470B1