CREATING A SCALING PLAN FOR EXTERNAL SYSTEMS DURING CLOUD TENANT ONBOARDING / OFFBOARDING

DE112020005326B4Active Publication Date: 2025-07-17INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
DE112020005326
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-01-06
Filing Date
2020-12-18
Publication Date
2025-07-17
Estimated Expiration
2040-12-18

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for generating a scaling plan (110), the method comprising: Receiving (202) plans (302, 308, 314) for onboarding first one or more tenants of a cloud computing environment (50) and for offboarding second one or more tenants of the cloud computing environment (50) by one or more processors; Receiving (204) historical data (120) on a behavior of tenants of the cloud computing environment (50) by the one or more processors; based on the received plans (302, 308, 314) for onboarding and offboarding and based on the historical data (120), generating (206) a scaling plan (110) for scaling computing resources (122) of external systems during onboarding and offboarding by the one or more processors, the scaling plan (110) specifying a timeline (320) indicating dates and times at which changes in workloads associated with the external systems are required for onboarding and offboarding; based on the scaling plan (110), determining (210) by the one or more processors that scaling is required for one or more computing resources (122) of an external system included in the external systems; and in response to determining (210) that scaling is needed, triggering (212) scaling for the one or more computing resources (122) of the external system at a date and time specified by the timeline (320), by the one or more processors.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] The present invention relates to computing resource management in a cloud computing environment, and more particularly to predicting computing resource scaling requirements and scheduling computing resource scaling for external systems during tenant onboarding / offboarding in a cloud computing environment.

[0002] A multi-tenant cloud computing architecture enables users to share resources across a public, private, or hybrid cloud. Popular cloud management platforms that support multi-tenant onboarding and offboarding require the ability to interface with a variety of external, dependent systems. External, dependent systems are referred to simply as external systems. Some of these external systems are not designed to scale smoothly without a cloud management platform that anticipates the workload generated by tenant onboarding and offboarding.Common cloud management platforms do not provide an effective scaling approach for computing resources required by external systems, as predicting the workload impact is difficult to understand, calculate, and / or predict when a large number of users are onboarding to the cloud platform. Common, monitoring-based scale-out and scale-in approaches for external systems do not prevent service outages and provide a poor user experience because they are unable to respond promptly to abruptly increasing user workloads. Common cloud management platforms provide inflexible, inconsistent, and / or non-repeatable approaches for managing computing resources required by external systems during onboarding and offboarding of multiple cloud tenants.

[0003] US 2015 / 0 067 126 A1 describes a method and apparatus for a rapidly scalable, unified infrastructure systems management platform by discovering compute nodes, network components in public and private data centers for a user; evaluating type, capability, VLAN, security, virtualization configuration of the discovered unified infrastructure nodes and components; configuring nodes and components, which includes adding, deleting, modifying, scaling; and rapidly rolling out nodes and components in public and private data centers.

[0004] US 9 460 169 B2 describes a Cloud Enablement Aggregation Proxy (CEAP) that receives and processes audit data from audited resources before storing that data in a database. The CEAP manages log data for resources included in a shared, multi-tenant pool of configurable computing resources (e.g., a computing cloud). A method for managing log data begins with the proxy aggregating and normalizing log information received from a plurality of the resources. The aggregated and normalized log information is then parsed to identify a tenant associated with each of a set of transactions. For each of the set of transactions, the CEAP annotates log data associated with the tenant and the particular transaction to include a tenant-specific identifier.An optional Tenant Separation Proxy (TSP) separates the annotated log data by tenant before storage, and the tenant-specific log data can be stored in tenant-separated data structures or dedicated tenant log event databases to enable subsequent compliance or other analysis.

[0005] US 10 552 745 B2 describes techniques for predictively scaling a distributed application. In one example, the performance of an application within a cloud computing environment is monitored over a first time window to collect historical performance data. The application comprises a plurality of application instances. A workload of the application may be monitored over a second time window to collect historical workload data. Embodiments may analyze both the historical performance data and the historical workload data to determine one or more scaling patterns for the application. If it is determined that a current state of the application matches one of the scaling patterns, a plan for predictively scaling the application may be determined. The plurality of application instances may then be predictively scaled based on the determined plan. SUMMARY

[0006] The objects underlying the invention are achieved by the features of the independent patent claims. Embodiments of the invention are the subject of the dependent patent claims.

[0007] In one embodiment, the present invention provides a method for generating a scaling plan. The method includes receiving, by one or more processors, plans for onboarding first one or more tenants of a cloud computing environment and for offboarding second one or more tenants of the cloud computing environment. The method further includes receiving, by the one or more processors, historical data regarding behavior of tenants of the cloud computing environment. The method further includes, based on the received onboarding and offboarding plans and based on the historical data, generating, by the one or more processors, a scaling plan for scaling computing resources of external systems during onboarding and offboarding.The scaling plan specifies a timeline that indicates dates and times at which changes in workloads associated with the external systems are required for onboarding and offboarding. The method further includes, based on the scaling plan, determining, by the one or more processors, that scaling is required for one or more computing resources of an external system included in the external systems. The method further includes, in response to determining that scaling is required, triggering, by the one or more processors, scaling for the one or more computing resources of the external system at a date and time specified by the timeline.

[0008] The above-mentioned embodiment advantageously provides a flexible, consistent, and repeatable approach for estimating and predicting changes in workloads of various external systems during onboarding and offboarding of cloud tenants for multiple points in time on a timeline, for scheduling scale-in and / or scale-out actions to account for the predicted workload changes by providing changes in computing resources available to the external systems, and for generating a scaling execution plan for executing the scale-in and scale-out actions at the points in time specified in the timeline.

[0009] In an optional aspect of the above-mentioned embodiment, the method further includes, after triggering scaling for the one or more computing resources of the external system, receiving, by the one or more processors, a new plan for onboarding or offboarding a tenant of the cloud computing environment. The method further includes, by the one or more processors, receiving other historical data regarding behavior of the tenant. The method further includes, based on the received new plan for onboarding and offboarding the tenant and based on the other historical data, generating a second scaling plan for scaling the computing resources of the external systems during the onboarding and offboarding of the tenant by the one or more processors.The method further includes determining, by the one or more processors, based on the second scaling plan, that scaling is needed for one or more computing resources of a second external system included in the external systems. The above-mentioned aspect advantageously provides a proactive approach for generating a scaling execution plan for a new onboarding or offboarding plan based on historical data.

[0010] In another aspect of the above-mentioned embodiment, triggering scaling for the one or more computing resources of the external system at the date and time indicated by the timeline includes ensuring that a performance of a cloud management platform exceeds a first threshold and that a user experience associated with the cloud management platform exceeds a second threshold. The above-mentioned aspect advantageously provides an approach for generating a scaling plan that avoids the service outage condition and poor user experience associated with known monitoring-based scaling methods.

[0011] Other embodiments of the present invention provide a computer program product and a computer system that employ corresponding methods analogous to the method described above. The advantages of the method described above also apply to the computer program product and computer system embodiments of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] With reference to the accompanying drawings, embodiments of the invention will now be described, by way of example only, in which: Fig. 1 is a block diagram of a system for generating a scaling plan for external systems during onboarding and offboarding of multiple cloud tenants according to embodiments of the present invention; Fig. 2 is a flowchart of a process for generating a scaling plan for external systems during onboarding and offboarding of multiple cloud tenants according to embodiments of the present invention, the process in the system of Fig. 1 is realized; Fig. 3 is an example of a workload estimation in generating a scaling plan for external systems according to embodiments of the present invention, wherein the process of Fig. 2 is used; Fig. 4 is a block diagram of a computer according to embodiments of the present invention used in the system of Fig. 1 and the process from Fig. 2 realized; Fig. 5 illustrates a cloud computing environment according to embodiments of the present invention; Fig. 6 illustrates abstraction model layers according to embodiments of the present invention that are implemented by the cloud computing environment of Fig. 5 are provided. DETAILED DESCRIPTIONOverview

[0013] Popular cloud management platforms used for multi-tenant onboarding and offboarding may employ passive, monitor-based scaling out and scale-in of computing resources, but monitor-based scaling is unable to respond in a timely manner to abruptly decreasing or increasing workloads to avoid service outage conditions and poor user experience.

[0014] Embodiments of the present invention address the above-mentioned particular challenges of scaling computing resources of external systems during multi-tenant onboarding and offboarding. In one embodiment, an impact analysis component predicts a workload impact for each external system of a cloud computing environment and generates scaling requirements for the external systems. In one embodiment, the impact analysis component enables an orchestration engine to use the predicted scaling requirements to proactively scale in and / or scale out computing resources of the external systems during customer onboarding, offboarding, or a combination of onboarding and offboarding in a cloud computing environment.

[0015] In one embodiment, the impact analysis component uses project onboarding and offboarding timelines, onboarding and offboarding requirements, design documents, and historical data on past onboarding and offboarding behavior by tenants to (i) generate predictions of impacts on workloads associated with the external systems, (ii) determine a schedule of dates and times for scale-out or scale-in for each of the external systems based on the predicted workload impacts, and (iii) generate a scaling execution plan to trigger scale-out or scale-in for each of the external systems according to the schedule.Embodiments of the present invention provide a flexible, consistent, and repeatable approach to proactively processing large workloads for various external systems during onboarding, offboarding, or a combination of onboarding and offboarding of multiple cloud tenants.

[0016] The above-mentioned design documents refer to documents that specify an architecture of the external systems, types of the external systems, an interface to the external systems, the architecture provided by each of the external systems, and a protocol used for data transmission between the external systems and the core system of the cloud management platform.

[0017] As used herein, a computing resource is defined as a hardware component accessible by a computing system. In one embodiment, computing resources include central processing units, memory, and storage space. As used herein, the term "external system computing resources" refers to computing resources accessible by the external systems.

[0018] As used herein, onboarding is defined as a tenant initiating use of a cloud management platform in a cloud computing environment. Onboarding involves the tenant creating their own user account with the cloud management platform and beginning to use the features and services provided by the cloud management platform.

[0019] As used herein, offboarding is defined as a tenant terminating use of a cloud management platform by deactivating or removing the tenant's user account with the cloud management platform and revoking the requested resources.

[0020] As used herein, scale-out is defined as an increase in the computing resources of an external system. Scale-out can allow the external system to successfully manage an increasing workload.

[0021] As used herein, scale-in is defined as a reduction in the computing resources of an external system. Scale-in can allow the external system to manage a decreasing workload in an efficient manner.

[0022] As used herein, the term “scaling” refers to scaling in or out of computing resources of an external system.

[0023] As used herein, an external system is defined as a dependent backend system associated with a core system of a cloud management platform. In one embodiment, the external systems are [...] System for generating a scaling plan for external systems

[0024] Fig. 1 is a block diagram of a system for generating a scaling plan for external systems during onboarding and offboarding of multiple cloud tenants (also referred to herein as customers), according to embodiments of the present invention. A system 100 includes a computer 102 executing a software-based scaling plan generation system 104 including an analytics component 106 that generates timeline-based scaling requirements 108 for computing resources of external systems (i.e., systems external to a cloud management platform). Although multiple external systems will be connected to the cloud management platform, the tenants of the cloud management platform each interact with one or more external systems included in the multiple external systems. The analytics component 106 proactively generates the timeline-based scaling requirements 108 before an actual workload is generated.The scaling plan generation system 104 uses the timeline-based scaling requirements 108 to generate a scaling execution plan 110. Herein, a scaling execution plan is also referred to simply as a scaling plan. The timeline-based scaling requirements 108 specify the type of external system being scaled and also specify whether the scaling is scale-in or scale-out. The scaling execution plan 110 adds further detail to the timeline-based scaling requirements 108 by specifying a timeline indicating times of scheduled onboarding and / or offboarding, as well as changes in workloads associated with the external systems, where the changes in workloads are predicted to result from onboarding and offboarding.The scaling plan execution system 104 also includes an orchestration engine 112 that executes the scaling execution plan 110 to trigger scaling of computing resources of external systems.

[0025] The analytics component 106 receives as input a tenant onboarding / offboarding schedule 114 (i.e., a schedule for completing onboarding a cloud tenant or offboarding a cloud tenant). The analytics component 106 may receive one or more onboarding / offboarding schedules (not shown) for one or more other cloud tenants.

[0026] The analysis component 106 also receives as input an architecture and interface specification 116, tenant-specific requirements 118, and historical data 120. In one embodiment, the architecture and interface specification 116 includes a specification of an architecture and an interface required for onboarding a tenant into the cloud computing environment. In one embodiment, the tenant-specific requirements 118 include requirements for onboarding a first set of one or more tenants and other requirements for offboarding a second set of one or more tenants.

[0027] In one embodiment, historical data 120 includes data describing past tenant behavior, where a particular tenant's method includes a selection of the characteristics selected by the particular tenant during onboarding, where the selected characteristics result in a particular workload associated with the particular tenant's onboarding and offboarding. In one embodiment, historical data includes past tenant workload data, past onboarding data, and test data from a customer onboarding simulation.

[0028] The analysis component 106 uses the above-mentioned input to predict workloads of one or more computing resources 122-1, ..., one or more computing resources 122-N of an external system 1, ..., of an external system N, where N is an integer greater than one, each workload being associated with an onboarding or offboarding of a tenant.

[0029] For example, a particular tenant creates N virtual machines and performs a secondary operation during onboarding. A pattern of creating a number of virtual machines equal to N and performing the secondary operation during onboarding is exhibited by multiple tenants, and the pattern is identified by the analytics component 106 and included in the historical data 120. The analytics component 106 uses the above-mentioned pattern stored in the historical data 120 to predict an upcoming workload of a scheduled onboarding or offboarding. The analytics component 106 uses the predicted upcoming workload as a basis for determining the timeline-based scaling requirements 108 for the scheduled onboarding or offboarding.

[0030] The orchestration engine 112 executes the scaling execution plan 110 to scale the one or more computing resources 122-1, ..., the one or more computing resources 122-N.

[0031] The functionality of the Fig. 1 shown components is discussed in relation to the Fig. 2, Fig. 3 and Fig. 4 described in more detail. Process for generating a scaling plan for external systems

[0032] Fig. 2 is a flowchart of a process for generating a scaling plan for external systems during onboarding and offboarding of multiple cloud tenants according to embodiments of the present invention, the process being implemented in the system of Fig. 1 is realized. The process from Fig. 2 begins with a step 200. In a step 202, the scaling plan generation system 104 (see Fig. 1) one or more tenant onboarding plans, one or more tenant offboarding plans, or a combination of one or more tenant onboarding plans and tenant offboarding plans. The one or more tenant onboarding plans are plans for onboarding a first set of one or more tenants of a cloud computing environment. The one or more tenant onboarding plans are plans for offboarding a second set of one or more tenants of the cloud computing environment. In one embodiment, each of the plans received in step 202 includes the tenant onboarding / offboarding schedule 114 (see Fig. 1), an architecture and interface specification 116 (see Fig. 1) and the tenant-specific requirements 118 (see Fig. 1).

[0033] In a step 204, the scaling plan generation system 104 (see Fig. 1) the historical data 120 (see Fig. 1) to previous behavior of tenants of the cloud computing environment.

[0034] In a step 206, based on the plans received in step 202 and the historical data 120 received in step 204 (see Fig. 1), the scaling plan generation system 104 (see Fig. 1) the scaling requirements 108 on a timeline basis (see Fig. 1) and the scaling execution plan 110 (see Fig. 1) that includes a plan for scaling one or more computer resources 122-1, ..., one or more computer resources 122-N (see Fig. 1) for external systems during onboarding and offboarding. In step 206, the scaling plan generation system 104 (see Fig. 1) predicts an estimated workload for a scheduled onboarding or offboarding and maps the predicted workload to an external system and the tenant associated with the onboarding or offboarding.

[0035] The scaling plan generation system 104 (see Fig. 1) combines multiple changes for a single computing resource, where the multiple changes are each associated with multiple tenants. In one embodiment, combining the multiple changes for a single computing resource merges the multiple changes. For example, on a date D, an onboarding is scheduled for a customer A that includes adding 5000 new users. Based on the scheduled onboarding and the features selected by customer A, the scaling plan generation system 104 (see Fig. 1) predicts an increased workload for External Systems 1, 2, and 3. Based on the current workload for External Systems 1, 2, and 3 and the predicted increased workload, the scaling plan generation system 104 (see Fig. 1) furthermore, within the framework of the scaling requirements 108 (see Fig. 1) and the scaling execution plan 110 (see Fig. 1) a 15% increase for a computing resource A and a 20% increase for a computing resource B. In addition, on date D, an offboarding is scheduled for a customer B, which includes a deactivation of 8000 users and affects the external system 2. Based on the scheduled offboarding, the scaling plan generation system 104 (see Fig. 1) predicts a reduced workload for External System 2. Based on the current workload for External System 2 and the predicted reduced workload associated with the offboarding of Customer B, the scaling plan generation system 104 (see Fig. 1) within the framework of the scaling requirements 108 (see Fig. 1) and the scaling execution plan 110 (see Fig. 1) a 30% decrease for computing resource B. For computing resource B, there is a 20% increase (i.e. +20%) recommended to account for the onboarding of customer A, and a 30% decrease (i.e. -30%) recommended to account for the offboarding of customer B. For scaling execution plan 110 (see Fig. 1) The scaling plan generation system 104 combines +20% and -30% (i.e., 20% + -30% = -10%) to determine that computing resource B should be lowered by 10% to accommodate both the onboarding of customer A and the offboarding of customer B.

[0036] In a step 208, the scaling plan generation system 104 (see Fig. 1) a next external system selected from the plurality of external systems, wherein processing is performed according to the scaling execution plan 110 (see Fig. 1). In the first execution of step 208, the scaling plan generation system 104 (see Fig. 1) a first external system selected from the plurality of external systems. In one or more subsequent executions of step 208, the scaling plan generation system 104 (see Fig. 1) one or more other external systems included in the multiple external systems, as described below.

[0037] In a step 210, the scaling plan generation system 104 (see Fig. 1), whether there is a need to use one or more computer resources (e.g. the one or more computer resources 122-1 from Fig. 1) for the external system being processed. Based on the scaling execution plan 110 (see Fig. 1) determines the scaling plan generation system 104 (see Fig. 1) in step 210, the need for scaling (also referred to herein as a scaling action).

[0038] If the scaling plan generation system 104 (see Fig. 1) If it is determined in step 210 that there is a need to scale one or more computing resources of the external system, the Yes branch of step 210 is taken and a step 212 is performed.

[0039] In step 212, the orchestration engine 112 (see Fig. 1) perform a scaling of the one or more computing resources of the processed system at a date and time specified by the time axis, which is specified by the scaling execution plan 110 (see Fig. 1). In one embodiment, the scaling in step 212 occurs automatically and includes scaling out virtual machines, containers, or clusters of containers. In another embodiment, the scaling in step 212 includes manually adding computing resources such as servers and memory.

[0040] If the scaling plan generation system 104 (see Fig. 1) Referring again to step 210, if it is determined that there is no need to scale one or more computing resources of the external system, the No branch of step 210 is taken, the scaling plan generation system 104 (see Fig. 1) determines that triggering the scaling action for the external system is not to be performed, and a step 214 is performed, indicating that the scaling plan generation system 104 (see Fig. 1) does not perform any scaling action on the external system being processed.

[0041] A step 216 follows step 212 and step 214. In step 216, the scaling plan generation system 104 (see Fig. 1) whether another system is to be processed by step 208. If the scaling plan generation system 104 (see Fig. 1) in step 216 it is determined that there is still another external system to be processed by step 208, the Yes branch of step 216 is taken and the process from Fig. 2 loops to a subsequent execution of step 208, which processes a next external system selected from the plurality of external systems.

[0042] If the scaling plan generation system 104 (see Fig. 1) If it is determined in step 216 that there are no other external systems to be processed in step 208, the No branch of step 216 is taken and a step 218 is performed.

[0043] In step 218, the scaling plan generation system 104 (see Fig. 1), whether a new onboarding plan or a new offboarding plan for a cloud tenant is available for processing. If the scaling plan generation system 104 (see Fig. 1) in step 218 it is determined that a new onboarding or offboarding plan is available for processing, the Yes branch of step 218 is taken and the process from Fig. 2 loops back to step 202, in which the scaling plan generation system 104 (see Fig. 1) receives the new onboarding or offboarding plan for the tenant.

[0044] If the scaling plan generation system 104 (see Fig. 1) If it is determined in step 218 that there is no new onboarding or offboarding plan, the No branch of step 218 is taken and a step 220 is performed.

[0045] In another embodiment, step 218 is extended to include a determination of whether a previously processed onboarding or offboarding plan for an existing tenant has been modified by the existing tenant. If the scaling plan generation system 104 (see Fig. 1) determines that the onboarding or offboarding plan for an existing tenant has been modified, the process loops out Fig. 2 back to step 202, in which the scaling plan generation system 104 (see Fig. 1) receives the modified onboarding or offboarding plan.

[0046] In step 220, the scaling plan generation system 104 (see Fig. 1) the execution of the scaling execution plan 110 (see Fig. 1) by repeatedly executing the loop beginning with step 208 over the entire time axis on which the scaling requirements 108 (see Fig. 1). After the execution of the scaling execution plan 110 (see Fig. 1) is completed, the process ends Fig. 2 in one step 222.

[0047] After the processing of the external systems by the process from Fig. 2 is completed, triggering scaling for the computing resources of the external data on the dates and times specified by the timeline ensures that a performance of a cloud management platform in the cloud computing environment exceeds a first performance threshold and that a user experience associated with the cloud management platform exceeds a second user experience threshold.

[0048] In one embodiment, the scaling plan generation system 104 determines or receives additional customer behavior data and customer usage data over time that are included in the historical data 120 (see Fig. 1). By using this additional number of customer behavior and customer usage data, the scaling plan generation system 104 (see Fig. 1) that users of different customers from different industry sectors and / or branches have different preferences and / or behavior patterns for the use of features during onboarding and / or offboarding. The scaling plan generation system 104 (see Fig. 1) uses the determination of the preferences and behavior patterns associated with customers from specific industry sectors and / or branches to make finer-grained (i.e., more precise) predictions of an estimated workload in step 206 and to create a finer-grained scaling execution plan for one or more of the external systems with respect to a workload increase / decrease on the time axis. For example, the scaling plan generation system 104 (see Fig. 1) an identification, based on historical data, of an hourly usage pattern of onboarding and offboarding functions by customers in an industry D in order to generate an increase or decrease in the workload on an hourly basis for some of the external systems in response to the processing of an onboarding plan or an offboarding plan for a specific customer also located in the industry D. Example

[0049] Fig. 3 is an example 300 of a workload estimate included in generating a scaling plan for external systems according to embodiments of the present invention, wherein the process of Fig. 2. The example 300 contains an onboarding plan 302 of a cloud tenant. The onboarding plan 302 identifies the cloud tenant (i.e., "TENANT A") associated with the onboarding plan, the date (i.e., "2020 / 07 / 01") on which the onboarding is to take place, and the number of users (i.e., "5000 USERS") to be added to a core system of the cloud computing environment. The onboarding plan 302 is an example of a tenant onboarding plan used in step 202 (see Fig. 2) is received.

[0050] The example 300 contains a list of external systems 304 (i.e., “AFFECTED SYSTEM 1,” “AFFECTED SYSTEM 2,” and “AFFECTED SYSTEM 3”) that are to be affected by the onboarding plan 302.

[0051] The example 300 contains estimated percentages 306 (i.e., +60%, +100%, and +80%) of workload changes (also referred to herein as percentage workload changes), which are (i) mapped to a list of components 307 (i.e., "COMPONENT A," "COMPONENT B," and "COMPONENT C") affected by the workload changes, and (ii) mapped to the list of external systems 304. The components mentioned above are, for example, an active directory, a configuration management database, or an Internet Protocol address management component.

[0052] The example 300 also includes an onboarding plan 308 of a second cloud tenant. The onboarding plan 308 identifies the cloud tenant (i.e., "TENANT B") associated with the onboarding plan, the date (i.e., "2020 / 06 / 20") on which the onboarding is to take place, and the number of users (i.e., "6000 USERS") to be added to a core system of the cloud computing environment. The onboarding plan 308 is an example of a tenant onboarding plan created in step 202 (see Fig. 2) is received.

[0053] The example 300 also includes (1) a list of external systems 310 (i.e., "AFFECTED SYSTEM 1," "AFFECTED SYSTEM 2," and "AFFECTED SYSTEM 3") to be affected by the onboarding plan 308; (2) estimated percentages 312 (i.e., +150%, +220%, and +85%) of changes in workloads; and (3) a list of components 313 (i.e., "COMPONENT A," "COMPONENT B," and "COMPONENT C"). In step 206 (see Fig. 2) estimates the scaling plan generation system 104 (see Fig. 1) the percentages 312 based on the onboarding plan for TENANT B and the historical data 102 and maps the percentages 312 to the list of external systems 310 and the list of components 313.

[0054] The example 300 also includes an offboarding plan 314 of a third cloud tenant. The offboarding plan 314 identifies the cloud tenant (i.e., "TENANT C") associated with the offboarding plan, the date (i.e., "2020 / 07 / 15") on which the offboarding is to take place, and the number of users (i.e., "8000 USERS") to be added to a core system of the cloud computing environment. The offboarding plan 314 is an example of a tenant offboarding plan that is created in step 202 (see Fig. 2) is received.

[0055] The example 300 also includes: (1) a list of external systems 316 (i.e., "AFFECTED SYSTEM 1," "AFFECTED SYSTEM 3," and "AFFECTED SYSTEM 4") to be affected by the offboarding plan 314; (2) estimated percentages 318 (i.e., -30%, -70%, and -45%) of changes in workloads; and (3) a list of components 319 (i.e., "COMPONENT A," "COMPONENT B," and "COMPONENT C"). In step 206 (see Fig. 2) estimates the scaling plan generation system 104 (see Fig. 1) the percentages 318 based on the offboarding plan for TENANT C and the historical data 102 and maps the percentages 318 to the list of external systems 316 and the list of components 319.

[0056] For each tenant onboarding or offboarding plan, the scaling plan generation system estimates 104 (see Fig. 1) in step 206 (see Fig. 2) (1) the percentage workload changes resulting from the implementation of the onboarding or offboarding plan, and (2) maps the percentage workload changes to external systems and components. The estimation of each percentage workload change is based on the historical data 102, combined with an onboarding plan or offboarding plan. In a Fig. 3, the scaling plan generation system 104 (see Fig. 1) that the onboarding plan for TENANT A will result in a 60% increase in workload for COMPONENT A in the AFFECTED SYSTEM 1. In another Fig. 3, the scaling plan generation system 104 (see Fig. 1) that the offboarding plan for TENANT C will result in a 70% increase in workload for COMPONENT B in AFFECTED SYSTEM 3.

[0057] The example 300 includes a timeline 320 generated by the scaling plan generation system 104 (see Fig. 1) in step 206 (see Fig. 2). Timeline 320 includes dates (i.e., 06 / 20, 07 / 01, and 07 / 15) and the percentage increase or decrease in one or more computing resources estimated for each affected system at each of the dates. For example, as shown in timeline 320, it is estimated that the onboarding and offboarding plans scheduled for 07 / 01, which includes the onboarding plan for TENANT A as set forth above, will require a 60% increase in computing resources for AFFECTED SYSTEM 1. computer system

[0058] Fig. 4 is a block diagram of a computer 102 according to embodiments of the present invention used in the system of Fig. 1 and the process from Fig. 2. The computer 102 is a computer system that generally includes a central processing unit (CPU) 402, a memory 404, an input / output (I / O) interface 406, and a bus 408. Furthermore, the computer 102 is connected to I / O units 410 and a computer data storage unit 412. The CPU 402 performs data processing and control functions of the computer 102, e.g., executing instructions contained in program code 414 for a system that implements the scaling plan generation system 104 (see Fig. 1) to perform a method for generating a scaling plan for external systems, wherein the instructions are executed by the CPU 402 via the memory 404. The CPU 402 may include a single processing unit or may be distributed among one or more processing units at one or more locations (e.g., a client and a server).

[0059] The memory 404 includes a known computer-readable storage medium, which is described further below. In one embodiment, cache memory elements of the memory 404 provide temporary storage of at least some program code (e.g., the program code 414) to reduce the frequency with which code must be retrieved from mass storage while instructions of the program code are executed. Also, similar to the CPU 402, the memory 404 may be located in a single physical location, such as one or more types of data storage, or distributed across a plurality of physical systems in various forms. Furthermore, the memory 404 may contain data distributed, for example, across a local area network (LAN) or a wide area network (WAN).

[0060] I / O interface 406 includes any system for exchanging information with an external source. I / O devices 410 include any known type of external device, e.g., a display, a keyboard, etc. Bus 408 provides a data transmission connection between each of the components in computer 102 and may include any type of transmission connection, such as electrical, optical, wireless, etc.

[0061] The I / O interface 406 also enables the computer 102 to store and retrieve information (e.g., data or program instructions such as program code 414) in and from the computer data storage device 412 or another computer data storage device (not shown). The computer data storage device 412 includes a known computer-readable storage medium, which is described further below. In one embodiment, the computer data storage device 412 is a non-volatile data storage device such as a solid-state drive (SSD), a network-attached storage array (NAS), a storage area network (SAN), a magnetic disk drive (i.e., a hard disk drive), or an optical disk drive (e.g., a CD-ROM drive that receives a CD-ROM disc or a DVD drive that receives a DVD disc).

[0062] The memory 404 and / or the storage unit 412 may store the computer program code 414, which includes instructions executed by the CPU 402 via the memory 404 to generate a scaling plan for external systems. Although Fig. 4 illustrates the working memory 404 as containing program code, the present invention provides embodiments in which the working memory 404 does not contain all of the code 414 at once, but only a portion of the code 414 at a time.

[0063] The memory 404 may further contain an operating system (not shown) and may contain other Fig. 4 systems not shown included.

[0064] In one embodiment, the computer data storage unit 412 includes the tenant onboarding / offboarding schedule 114 (see Fig. 1), the architecture and interface specification 116 (see Fig. 1), the tenant-specific requirements 118 (see Fig. 1) and the historical data 120 (see Fig. 1).

[0065] It will be apparent to those skilled in the art that in a first embodiment, the present invention may be a method; that in a second embodiment, the present invention may be a system; and that in a third embodiment, the present invention may be a computer program product.

[0066] Each of the components of an embodiment of the present invention may be provided, managed, maintained, etc., by a service provider offering to provide or integrate a computing infrastructure related to generating a scaling plan for external systems. Thus, an embodiment of the present invention discloses a process for supporting a computing infrastructure, the process including providing at least one support service for at least one of integrating, hosting, managing, and deploying computer-readable code (e.g., program code 414) in a computing system (e.g., computer 102) having one or more processors (e.g., CPU 402), the one or more processors executing instructions included in the code to cause the computing system to generate a scaling plan for external systems.Another embodiment discloses a process for supporting a computer infrastructure, the process including integrating computer-readable program code into a computer system having a processor. The integrating step includes storing the program code in a computer-readable storage device of the computer system using the processor. When executed by the processor, the program code implements a method for generating a scaling plan for external systems.

[0067] Although it should be understood that the program code 414 for generating a scaling plan for external systems may be provided by manually loading it directly into client, server, and proxy computers (not shown) via a computer-readable storage medium (e.g., computer data storage device 412), the program code 414 may also be provided automatically or semi-automatically within the computer 102 by sending the program code 414 to a central server or group of central servers. The program code 414 is then downloaded to client computers (e.g., computer 102) that execute the program code 414. Alternatively, the program code 414 is sent directly to the client computer via email.The 414 program code is then either transferred to a directory on the client computer or loaded into a directory on the client computer by clicking a button in the email that executes a program that transfers the 414 program code to a directory. Another alternative is to send the 414 program code directly to a directory on the client computer's hard drive. If proxy servers are present, the process selects the proxy server code, determines which computers to place the proxy server code on, transfers the proxy server code, and then installs the proxy server code on the proxy computer. The 414 program code is transferred to the proxy server and then stored on the proxy server.

[0068] Another embodiment of the invention provides a method that performs the process steps on a subscription, advertising, and / or fee basis. A service provider may thus offer to create, manage, support, etc., a process of generating a scaling plan for external systems. In this case, the service provider may create, manage, support, etc., a computing infrastructure that performs the process steps for one or more customers. The service provider, in turn, may receive payment from the one or more customers under a subscription and / or fee agreement, and / or the service provider may receive payment from the sale of advertising content to one or more third parties.

[0069] The present invention may be a system, a method, and / or a computer program product with any possible degree of technical integration. The computer program product may include one or more computer-readable storage media (e.g., memory 404 and computer data storage device 412) on which computer-readable program instructions 414 are stored to cause a processor (e.g., CPU 402) to perform aspects of the present invention.

[0070] The computer-readable storage medium may be a physical device that can retain and store instructions (e.g., program code 414) for use by an instruction execution device (e.g., computer 102). The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM).Flash memory), a static random access memory (SRAM), a portable CD-ROM, a DVD (Digital Versatile Disc), a memory stick, a floppy disk, a mechanically encoded device such as punched cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer-readable storage medium, as used herein, shall not be construed as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., pulses of light carried through an optical fiber cable), or electrical signals carried through a wire.

[0071] Computer-readable program instructions described herein (e.g., program code 414) may be downloaded from a computer-readable storage medium to respective data processing / processing devices (e.g., computer 102) or to an external computer or storage device (e.g., computer data storage device 412) via a network (not shown), such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routers, firewalls, switching devices, gateway computers, and / or edge servers.A network adapter card or network interface (not shown) in each computing / processing unit receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing / processing unit.

[0072] Computer-readable program instructions (e.g., program code 414) for performing operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, integrated circuit configuration data, or both source code and object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or the like, as well as conventional procedural programming languages such as the "C" programming language or similar programming languages.The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer by any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, over the Internet using an Internet service provider).In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects of the present invention.

[0073] Aspects of the present invention are described herein with reference to flowcharts (e.g. Fig. 2) and / or block diagrams (e.g. Fig. 1 and Fig. 4) methods, apparatus (systems), and computer program products according to embodiments of the invention are described. It should be understood that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, may be implemented by computer-readable program instructions (e.g., program code 414).

[0074] These computer-readable program instructions may be provided to a processor (e.g., CPU 402) of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing device (e.g., computer 102) produce a means for implementing the functions / steps specified in the block(s) of flowcharts and / or block diagrams. These computer-readable program instructions may also be embodied on a computer-readable storage medium (e.g.,the computer data storage unit 412) that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that implement aspects of the function / step specified in the block(s) of the flowchart and / or block diagrams.

[0075] The computer-readable program instructions (e.g., program code 414) may also be loaded onto a computer (e.g., computer 102), other programmable data processing apparatus, or other device to cause a series of process steps to be performed on the computer, other programmable device, or other device to produce a computer-implemented process such that the instructions executing on the computer, other programmable device, or other device implement the functions / steps specified in the block(s) of the flowchart and / or block diagram.

[0076] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for performing the particular logical function or functions. In some alternative embodiments, the functions mentioned in the block may occur in a different order than that mentioned in the figures.For example, two blocks shown in sequence may actually occur as one step, execute substantially simultaneously, partially or completely overlap in time, or the blocks may sometimes execute in reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowcharts, as well as combinations of blocks in the block diagrams and / or flowcharts, may be implemented by special purpose hardware-based systems that perform the specified functions or steps, or by combinations of special purpose hardware and computer instructions.

[0077] Although embodiments of the present invention have been described herein for illustrative purposes, numerous modifications and variations will be apparent to those skilled in the art. It is therefore intended that the appended claims cover all such modifications and variations that fall within the true spirit and scope of this invention. Cloud computing environment

[0078] It should be understood that, although this disclosure contains a detailed description of cloud computing, the implementation of the teachings herein is not limited to a cloud computing environment. Rather, embodiments of the present invention may be practiced in conjunction with any type of computing environment now known or later developed.

[0079] Cloud computing is a service delivery model for enabling seamless, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models. The properties are as follows:

[0080] On-Demand Self-Service: A cloud user can unilaterally and automatically provision computing capabilities such as server time and network storage as needed, without requiring human interaction with the service provider.

[0081] Broad Network Access: Capabilities are available over a network and accessed through standard mechanisms that support use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0082] Resource pooling: The provider's computing resources are pooled to serve multiple users using a multi-tenant model, with various physical and virtual resources dynamically allocated and reassigned as needed. There is a perceived location independence, as the user generally has no control or knowledge over the exact location of the provided resources, but may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center).

[0083] Rapid Elasticity: Capabilities can be provisioned quickly and elastically for rapid horizontal scaling out, in some cases automatically, and released quickly for rapid scaling in. To the user, the capabilities available for provisioning often appear unlimited, and they can be purchased in any quantity at any time.

[0084] Measured Service: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at a certain level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource consumption can be monitored, controlled, and reported, providing transparency for both the provider and the user of the service. The service models are as follows:

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

[0086] Platform as a Service (PaaS): The ability provided to the user is to deploy applications created or obtained by the user, using programming languages and tools supported by the provider, on the cloud infrastructure. The user does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly configurations for the application hosting environment.

[0087] Infrastructure as a Service (IaaS): The capability provided to the user consists of providing processing, storage, networking, and other basic computing resources, allowing the user to deploy and run any software, including operating systems and applications. The user does not manage or control the underlying cloud infrastructure, but has control over operating systems, storage, deployed applications, and possibly limited control over selected network components (e.g., host firewalls). The deployment models are as follows:

[0088] Private Cloud: The cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can be located on its own premises or on third-party premises.

[0089] Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific user community with common objectives (e.g., objectives, security requirements, policies, and compliance considerations). It can be managed by the organizations or a third party and can be located on-premises or on shared premises.

[0090] Public Cloud: The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization that sells cloud services.

[0091] Hybrid Cloud: The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain separate entities but are interconnected by a standardized or proprietary technology that enables data and application portability (e.g., cloud target distribution for load balancing between clouds).

[0092] A cloud computing environment is service-oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that contains a network of interconnected nodes.

[0093] With reference to Fig. 5, an illustrative cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud users, such as the personal digital assistant (PDA) or mobile phone 54A, the desktop computer 54B, the laptop computer 54C, and / or the automotive computer system 54N, can exchange data. The nodes 10 can exchange data with each other. They can be physically or virtually grouped into one or more networks such as private, community, public, or hybrid clouds (not shown), as described above, or a combination thereof. This enables the cloud computing environment 50 to offer infrastructure, platforms, and / or software as a service for which a cloud user does not need to maintain resources on a local computing device.It should be noted that the types of in . Fig. 5 are intended to be illustrative only, and that the computing nodes 10 and the cloud computing environment 50 may communicate with any type of computer-based device via any type of network and / or via any type of network-accessible connection (e.g., using a web browser).

[0094] With reference to Fig. 6 shows a set of functional abstraction layers implemented by the cloud computing environment 50 (see Fig. 5). It should be clear from the outset that the Fig.The components, layers, and functions shown in Figure 6 are intended to be illustrative only, and embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0095] A hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframe computers 61; Reduced Instruction Set Computer (RISC)-based servers 62; servers 63; blade servers 64; storage devices 65; and networks and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0096] A virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.

[0097] In one example, a management layer 80 may provide the functions described below. Resource provisioning 81 provides for the 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 using resources within the cloud computing environment, as well as billing or invoicing for the consumption of those resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud users and tasks, as well as protection for data and other resources. A user portal 83 provides users and system administrators with access to the cloud computing environment.Service level management 84 provides for the allocation and management of cloud computing resources so that required service objectives are met. Service level agreement (SLA) planning and fulfillment 85 provides for the pre-ordering and procurement of cloud computing resources for which future demand is anticipated, according to an SLA.

[0098] A workload layer 90 provides examples of the functionality for which the cloud computing environment can be used. Examples of workloads and functions that can be provided by this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual training delivery 93; data analytics processing 94; transaction processing 95; and scaling plan generation 96.

Claims

[1] A method for generating a scaling plan (110), the method comprising: Receiving (202) plans (302, 308, 314) for onboarding first one or more tenants of a cloud computing environment (50) and for offboarding second one or more tenants of the cloud computing environment (50) by one or more processors; Receiving (204) historical data (120) on a behavior of tenants of the cloud computing environment (50) by the one or more processors; based on the received plans (302, 308, 314) for onboarding and offboarding and based on the historical data (120), generating (206) a scaling plan (110) for scaling computing resources (122) of external systems during onboarding and offboarding by the one or more processors, the scaling plan (110) specifying a timeline (320) indicating dates and times at which changes in workloads associated with the external systems are required for onboarding and offboarding; based on the scaling plan (110), determining (210) by the one or more processors that scaling is required for one or more computing resources (122) of an external system included in the external systems; and in response to determining (210) that scaling is needed, triggering (212) scaling for the one or more computing resources (122) of the external system at a date and time specified by the timeline (320), by the one or more processors. [2] The method of claim 1, further comprising repeating the steps of: Determining (216) by the one or more processors whether one or more scaling actions are required for one or more other external systems included in the external systems; and if it is determined (210) that a scaling action is required for a particular external system included in the one or more other external systems, triggering (212) the scaling action according to the timeline (320) by the one or more processors or, if it is determined (210) that the scaling action is not required for the particular system, determining by the one or more processors that triggering the scaling action is not to be performed, until no external system contained in the one or more other external systems remains unprocessed by determining whether the one or more scaling actions are needed. [3] The method of claim 1, further comprising: after triggering (212) the scaling for the one or more computing resources (122) of the external system, receiving (202) a new plan (302, 308, 314) for onboarding or offboarding a tenant of the cloud computing environment (50) by the one or more processors; Receiving (204) other historical data (120) relating to a behavior of the tenant by the one or more processors; based on the new plan received (302, 308, 314) for onboarding and offboarding the tenant and, based on the other historical data (120), generating (206) a second scaling plan (110) for scaling the computing resources (122) of the external systems during onboarding and offboarding of the tenant by the one or more processors; and based on the second scaling plan (110), determining (210) by the one or more processors that scaling is needed for one or more computing resources (122) of a second external system included in the external systems. [4] The method of claim 1, wherein triggering (212) scaling for the one or more computing resources (122) of the external system at the date and time indicated by the timeline (320) includes ensuring that a performance of a cloud management platform in the cloud computing environment (50) exceeds a first threshold and that a user experience associated with the cloud management platform exceeds a second threshold. [5] The method of claim 1, wherein the onboarding and offboarding plans (302, 308, 314) include a schedule (114) for completing the onboarding and offboarding. [6] The method of claim 1, wherein the onboarding and offboarding plans (302, 308, 314) include onboarding requirements of the first one or more tenants and offboarding requirements of the second one or more tenants. [7] The method of claim 1, wherein the onboarding and offboarding plans (302, 308, 314) include a specification (116) of an architecture and an interface of one or more external systems required for onboarding a tenant of the cloud computing environment (50). [8] The method of claim 1, further comprising the step of: Providing at least one support service for at least one of generating, integrating, hosting, managing, and deploying computer-readable program code (96, 414) in the computer, wherein the program code (96, 414) is executed by a processor of the computer to implement receiving (202) the plans (302, 308, 314) for onboarding and offboarding, receiving (204) the historical data (120), generating (206) the scaling plan (110), determining (210) that scaling is needed for the one or more computing resources (122) of the external system, and triggering (212) scaling for the one or more computing resources (122). [9] Computer program product comprising: a computer-readable storage medium (404, 412) having computer-readable program code (96, 414) stored in the computer-readable storage medium (404, 412), wherein the computer-readable program code (96, 414) is executed by a central processing unit (CPU) (402) of a computer system (102) to cause the computer system (102) to perform a method comprising: Receiving (202) plans (302, 308, 314) for onboarding first one or more tenants of a cloud computing environment (50) and for offboarding second one or more tenants of the cloud computing environment (50) by the computer system (102); Receiving (204) historical data (120) on a behavior of tenants of the cloud computing environment (50) by the computer system (102); based on the received plans (302, 308, 314) for onboarding and offboarding and based on the historical data (120), generating (206) a scaling plan (110) for scaling computer resources (122) of external systems during onboarding and offboarding by the computer system (102), wherein the scaling plan (110) specifies a timeline (320) that indicates dates and times at which changes in workloads, belonging to the external systems, required for onboarding and offboarding; based on the scaling plan (110), determining (210) by the computer system (102) that scaling is required for one or more computer resources (122) of an external system included in the external systems; and in response to determining (210) that scaling is needed, triggering (212) scaling for the one or more computing resources (122) of the external system at a date and time specified by the timeline (320) by the computing system (102). [10] The computer program product of claim 9, wherein the method further comprises repeating the steps of: Determining (216) by the computer system (102) whether one or more scaling actions are required for one or more other external systems included in the external systems; and if it is determined (210) that a scaling action is required for a particular external system included in the one or more other external systems, triggering (212) the scaling action according to the timeline (320) by the computer system (102) or, if it is determined (210), that the scaling action is not required for the particular system, determining by the computer system (102) that triggering of the scaling action is not to be carried out, until no external system contained in the one or more other external systems remains unprocessed by determining whether the one or more scaling actions are needed. [11] The computer program product of claim 9, wherein the method further comprises: after triggering (212) the scaling for the one or more computing resources (122) of the external system, receiving (202) a new plan (302, 308, 314) for onboarding or offboarding a tenant of the cloud computing environment (50) by the computer system (102); Receiving (204) other historical data (120) relating to a behavior of the tenant by the computer system (102); based on the new plan received (302, 308, 314) for onboarding and offboarding the tenant and, based on the other historical data (120), generating (206) a second scaling plan (110) for scaling the computing resources (122) of the external systems during the onboarding and offboarding of the tenant by the computer system (102); and based on the second scaling plan (110), determining (210) by the computer system (102) that scaling is needed for one or more computer resources (122) of a second external system included in the external systems. [12] The computer program product of claim 9, wherein triggering (212) scaling for the one or more computing resources (122) of the external system at the date and time indicated by the timeline (320) includes ensuring that a performance of a cloud management platform in the cloud computing environment (50) exceeds a first threshold and that a user experience associated with the cloud management platform exceeds a second threshold. [13] The computer program product of claim 9, wherein the onboarding and offboarding plans (302, 308, 314) include a schedule (114) for completing the onboarding and offboarding. [14] The computer program product of claim 9, wherein the onboarding and offboarding plans (302, 308, 314) include onboarding requirements (118) of the first one or more tenants and offboarding requirements (118) of the second one or more tenants. [15] Computer system (102), comprising: a central processing unit (CPU) (402); a memory (404) connected to the CPU (402); and a computer-readable storage medium (404, 412) connected to the CPU (402), the computer-readable storage medium (404, 412) containing instructions (46, 414) executed by the CPU (402) via the memory (404) to implement a method comprising: Receiving (202) plans (302, 308, 314) for onboarding first one or more tenants of a cloud computing environment (50) and for offboarding second one or more tenants of the cloud computing environment (50) by the computer system (102); Receiving (204) historical data (120) on a behavior of tenants of the cloud computing environment (50) by the computer system (102); based on the received plans (302, 308, 314) for onboarding and offboarding and based on the historical data (120), generating (206) a scaling plan (110) for scaling computer resources (122) of external systems during onboarding and offboarding by the computer system (102), wherein the scaling plan (110) specifies a timeline (320) that indicates dates and times at which changes in workloads, belonging to the external systems, required for onboarding and offboarding; based on the scaling plan (110), determining (210) by the computer system (102) that scaling is required for one or more computer resources (122) of an external system included in the external systems; and in response to determining (210) that scaling is needed, triggering (212) scaling for the one or more computing resources (122) of the external system at a date and time specified by the timeline (320) by the computing system (102). [16] The computer system (102) of claim 15, wherein the method further comprises repeating the steps of: Determining (216) by the computer system (102) whether one or more scaling actions are required for one or more other external systems included in the external systems; and if it is determined (210) that a scaling action is required for a particular external system included in the one or more other external systems, triggering (212) the scaling action according to the timeline (320) by the computer system (102) or, if it is determined (210), that the scaling action is not required for the particular system, determining by the computer system (102) that triggering of the scaling action is not to be carried out, until no external system contained in the one or more other external systems remains unprocessed by determining whether the one or more scaling actions are needed. [17] The computer system (102) of claim 15, wherein the method further comprises: after triggering (212) the scaling for the one or more computing resources (122) of the external system, receiving (202) a new plan (302, 308, 314) for onboarding or offboarding a tenant of the cloud computing environment (50) by the computer system (102); Receiving (204) other historical data (120) relating to a behavior of the tenant by the computer system (102); based on the new plan received (302, 308, 314) for onboarding and offboarding the tenant and, based on the other historical data (120), generating (206) a second scaling plan (110) for scaling the computing resources (122) of the external systems during the onboarding and offboarding of the tenant by the computer system (102); and based on the second scaling plan (110), determining (210) by the computer system (102) that scaling is needed for one or more computer resources (122) of a second external system included in the external systems. [18] The computer system (102) of claim 15, wherein triggering (212) scaling for the one or more computing resources (122) of the external system at the date and time indicated by the timeline (320) includes ensuring that a performance of a cloud management platform in the cloud computing environment (50) exceeds a first threshold and that a user experience associated with the cloud management platform exceeds a second threshold. [19] The computer system (102) of claim 1, wherein the onboarding and offboarding plans (302, 308, 314) include a schedule (114) for completing the onboarding and offboarding. [20] The computer system (102) of claim 15, wherein the onboarding and offboarding plans (302, 308, 314) include onboarding requirements (118) of the first one or more tenants and offboarding requirements (118) of the second one or more tenants.

Citation Information

Patent Citations

  • US000010552745B2

  • Method and apparatus for multi-tenant service catalog for a software defined cloud

    US20150067126A1

  • Multi-tenant audit awareness in support of cloud environments

    US9460169B2