Generate scaling plans for external systems during onboarding / offboarding of cloud tenants
Patent Information
- Application Number
- JP2022540876
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-01-06
- Filing Date
- 2020-12-18
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2040-12-18
Smart Images

Figure 0007640195000001 
Figure 0007640195000002 
Figure 0007640195000003
Abstract
Description
[Technical field]
[0001] The present invention relates to management of computer resources in a cloud computing environment, and more particularly to predicting the need for scaling of computer resources for external systems and scheduling the scaling of computer resources during on-boarding, or off-boarding, or both, of tenants in a cloud computing environment. [Background technology]
[0002] Multitenant cloud computing architectures allow consumers to provision resources in public, private, or hybrid clouds. Known cloud management platforms that support multitenant onboarding and offboarding require the ability to interface with various external dependent systems. Hereinafter, the external dependent systems are simply referred to as external systems. Some of the external systems are not designed to scale well without the cloud management platform having prior knowledge of the workload resulting from onboarding and offboarding of tenants. Known cloud management platforms do not provide an effective scaling approach for the computational resources required by the external systems because predicting the impact on the workload is difficult to know, calculate, or predict, or a combination thereof, when a huge number of users are onboarded to the cloud platform. Scaling out and in the known monitor-based approach for external systems does not avoid the result of service outages and provides poor user experience due to the inability to handle bursty user workloads in a timely manner. Known cloud management platforms provide an inflexible, inconsistent, and / or non-repeatable approach to managing the computational resources required by external systems during onboarding and offboarding of a large number of cloud tenants. Summary of the Invention
[0003] In one embodiment, the present invention provides a method for generating a scaling plan. The method includes receiving, by one or more processors, a plan for onboarding a first one or more tenants of a cloud computing environment and offboarding a 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 generating, based on the received plan for the onboarding and the offboarding and based on the historical data, by the one or more processors, a scaling plan for scaling computer resources of an external system between the onboarding and the offboarding, the scaling plan identifying a timeline indicating dates and times when a change in workload associated with the external system is required for the onboarding and the offboarding. The method further includes determining, by the one or more processors, based on the scaling plan, that scaling is required for one or more computer resources of an external system included in the external system. The invention further includes triggering, by the one or more processors, in response to determining that the scaling is required, scaling for the one or more computer resources of the external system at a date and time specified in the timeline.The invention further includes triggering, by the one or more processors, in response to determining that the scaling is required, scaling for the one or more computer resources of the external system at a date and time specified in the timeline.
[0004] The above-described embodiments effectively provide a flexible, consistent and repeatable approach for estimating and forecasting changes in workload of various external systems during onboarding and offboarding of multiple cloud tenants over a timeline, scheduling scaling in and / or scaling out actions to address the predicted workload changes by forecasting changes in computer resources available to said external systems, and generating scale execution plans for executing scaling in and scaling out actions at times specified on the timeline.
[0005] In one optional aspect of the above-described embodiment, the method further includes receiving, by the one or more processors, a new plan for onboarding or offboarding a tenant of the cloud computing environment subsequent to triggering scaling of the one or more computing resources of the external system. The invention further includes receiving, by the one or more processors, other historical data about the behavior of the tenant. The invention further includes generating, by the one or more processors, a second scaling plan for the computing resources of the external system during the onboarding or offboarding of the tenant based on the received new plan for the onboarding and offboarding of the tenant and based on the other historical data. The invention further includes determining, by the one or more processors based on the second scaling plan, that scaling is required for one or more computing resources of a second external system included in the external system. The above-described aspects effectively provide a predictive approach for generating a scale execution plan for new onboarding and offboarding based on historical data.
[0006] In another optional aspect of the above-described embodiment, triggering the scaling of the one or more computer resources of the external system at the dates and times specified by the timeline includes ensuring that performance of a cloud management platform in the cloud computing environment exceeds a first threshold and a user experience associated with the cloud management platform exceeds a second threshold. The above-described aspect effectively provides a scaling approach that avoids service downtime and poor user experience associated with known monitoring-based scaling techniques.
[0007] Other embodiments of the present invention provide computer program products and computer systems that utilize respective methods similar to those described above. The advantages of the methods described above also apply to the computer program products and computer systems of the present invention.
[0008] Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a block diagram of a system for generating a scaling plan for an external system while onboarding and offboarding multiple cloud tenants, according to an embodiment of the invention. [Diagram 2] FIG. 2 is a flowchart of a process for generating a scaling plan for an external system during onboarding and offboarding of multiple cloud tenants according to an embodiment of the present invention, where this process is implemented in the system of FIG. [Diagram 3] FIG. 3 is an example of workload estimation in generating a scaling plan for an external system using the process of FIG. 2 according to an embodiment of the present invention. [Figure 4]FIG. 4 is a block diagram of a computer included in FIG. 1 and implementing the process of FIG. 2, according to an embodiment of the present invention. [Diagram 5] FIG. 5 illustrates a cloud computing environment in accordance with an embodiment of the present invention. [Figure 6] FIG. 6 illustrates an abstract model layer provided by the cloud computing environment of FIG. 5 in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Compendium Known cloud management platforms implemented for multi-tenant onboarding and offboarding can utilize passive, monitoring-based scaling in and out of computing resources, where the monitoring-based scaling fails to handle workloads that are disconnected or bursty in time behavior and avoid service down situations and poor user experience.
[0011]
[0010] An embodiment of the present invention addresses the above-mentioned unique challenges of scaling external system computing resources during onboarding and offboarding of a large number of multi-tenants. In one embodiment, an impact analysis component predicts the impact of a workload on each external system of a cloud computing environment and generates scaling requests for the external systems. In one embodiment, the impact analysis component allows an integration engine to use the predicted scaling requests to predictively perform scaling in, or scaling out, or both, of the external system computing resources during onboarding, offboarding, or a combination of onboarding and offboarding of a customer to the cloud computing environment.
[0012] In one embodiment, the impact analysis component uses the project onboarding and offboarding timeline, onboarding and offboarding requirements, design documents, and historical data regarding previous onboarding and offboarding behavior by tenants to (i) predict the impact on workloads associated with the external systems, (ii) determine date and time scheduling for scaling out or in for each of the external systems based on the predicted workload impact, and (iii) generate a scaling execution plan to trigger the scaling out or in for each of the external systems according to the schedule. Embodiments of the invention provide a flexible, consistent, and repeatable approach to predictively handle massive workloads on various external systems during onboarding, offboarding, or a combination of onboarding and offboarding of multiple cloud tenants.
[0013] The design documentation referred to above refers to documents that specify the architecture of the external systems, the types of external systems, the interfaces to the external systems, the functionality provided by each of the external systems, and the protocols used to communicate between the external systems and the core systems of the Cloud Management Platform.
[0014] As used herein, a computer resource is defined as a hardware component accessible by a computer system. In one embodiment, computer resources include a central processing unit, memory, and storage space. As used herein, the phrase "computer resource of an external system" refers to a computer resource accessible by an external system.
[0015] As used herein, onboarding is defined as a Tenant's Users beginning to use the Cloud Management Platform within a cloud computing environment, which includes a Tenant creating accounts for its Users on the Cloud Management Platform and beginning to use the features and services provided by the Cloud Management Platform.
[0016] As used herein, offboarding is defined as terminating a tenant's use of the Cloud Management Platform by ceasing to provide requested resources as well as suspending or deleting the tenant's user accounts on the Cloud Management Platform.
[0017] As used herein, scaling out is defined as increasing the computational resources of an external system so that the external system can better manage an increasing workload.
[0018] As used herein, scaling in is defined as decreasing the computational resources of an external system such that the external system is able to efficiently manage the decreased workload.
[0019] As used herein, the term "scaling" refers to scaling in and out the computer resources of an external system.
[0020] As used herein, an external system is defined as a back-end dependency related to the core systems of the cloud management platform.
[0021] System for generating a scaling plan for an external system - Patents.com FIG. 1 is a block diagram of a system for generating scaling plans for external systems during onboarding and offboarding of multiple cloud tenants (also referred to herein as customers), according to an embodiment of the present invention. The system 100 includes a computer 102 executing a software-based scaling plan generation system 104 including an analysis component 106 that generates timeline-based scaling requests 108 for computer resources of the external systems (i.e., systems external to the cloud management platform). Multiple external systems are coupled to the cloud management platform, where each tenant of the cloud management platform interacts with one or more external systems included in the multiple external systems. The analysis component 106 predictively generates the timeline-based scaling requests 108 before an actual workload is generated. The scaling plan generation system 104 uses the timeline-based scaling requests 108 to generate a scaling execution plan 110. A scaling execution plan is also referred to herein simply as a scaling plan. The timeline-based request 108 identifies the type of external system to be scaled and whether the scaling is to scale in or scale out. The scaling execution plan 110 adds more detail to the timeline-based scaling request 108 by identifying a timeline that specifies the dates and times of scheduled onboarding, offboarding, or both, and changes to the workload associated with the external system, where the workload changes are predicted to result from onboarding and offboarding. The scaling plan generation system 104 also includes an integration engine 112 that executes the scaling execution plan 110 to trigger the scaling of the computing resources of the external system.
[0022] The analysis component 106 receives as input a tenant onboarding / offboarding schedule 114 (i.e., a schedule for completing a cloud tenant onboarding or a cloud tenant offboarding). The analysis component 106 can receive one or more onboarding / offboarding schedules for one or more other cloud tenants.
[0023] The analysis component 106 also receives as input 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 the architecture and a specification of the interfaces required to onboard a tenant in the cloud computing environment. In one embodiment, the tenant-specific requirements 118 include a requirement for onboarding a first set of one or more tenants and another requirement for onboarding a second set of one or more tenants.
[0024] In one embodiment, historical data 120 includes data describing previous behavior of tenants, where the behavior of a given tenant includes selection of features that a given tenant selects when onboarding, where the selected features are specific workloads associated with onboarding and offboarding of the given tenant. In one embodiment, historical data includes tenant past workload data, past onboarding data, and test data from simulations of customer onboarding.
[0025] The analysis component 106 uses the above-mentioned inputs to predict computer resource(s) 122-1, ..., computer resource(s) 122-N, for each of external system 1, ..., external system N, where N is an integer greater than 1, and where each workload is associated with onboarding and offboarding tenants.
[0026] For example, a given tenant may create N virtual machines when onboarding and perform secondary operations. A generation pattern of the number of virtual machines similar to N when onboarding and performing secondary operations may be exhibited by multiple tenants, and the pattern may be identified by the analysis component 106 and included in the historical data 120. The analysis component 106 uses the above-described patterns stored in the historical data 120 to predict the upcoming workload for scheduled onboarding or offboarding. The analysis component 106 uses the predicted upcoming workload as the basis for timeline-based scaling requests 108 for scheduled onboarding or offboarding.
[0027] The integration engine 112 executes the scaling execution plan 110 to scale the computer resource(s) 122-1, ..., computer resource(s) 122-N.
[0028] The functionality of the components shown in FIG. 1 is explained in more detail in the discussion of FIGS. 2, 3 and 4 below.
[0029] Process for generating a scaling plan for an external system FIG. 2 is a flow chart of a process for generating a scaling plan for an external system during onboarding and offboarding of multiple cloud tenants, where the process is implemented in the system of FIG. 1 in accordance with an embodiment of the present invention. The process of FIG. 2 begins at step 200. At step 202, the scaling plan generation system 104 (see FIG. 1) receives a tenant onboarding plan(s), a tenant offboarding plan(s), or a combination of a tenant onboarding plan(s) and a tenant offboarding plan(s). The tenant onboarding plan(s) are a plan(s) for onboarding a first set of one or more tenants of a cloud computing environment. The tenant offboarding plan(s) are a plan(s) for offboarding a second set of one or more tenants of a cloud computing environment. In one embodiment, each plan received in step 202 includes a tenant onboarding / offboarding schedule 114 (see FIG. 1), architecture and interface specifications 116 (see FIG. 1), and tenant-specific requirements 118 (see FIG. 1).
[0030] In step 204, the scaling plan generation system 104 (see FIG. 1) receives historical data 120 (see FIG. 1) regarding previous behavior of tenants of the cloud computing environment.
[0031] In step 206, based on the plan received in step 202 and the historical data 120 (see FIG. 1) received in step 204, the scaling plan generation system 104 (see FIG. 1) generates a scaling execution plan 110 (see FIG. 1) that identifies the timeline-based scaling request 108 (see FIG. 1) and a plan for scaling the computer resource(s) 122-1, ..., computer resource(s) 122-N (see FIG. 1) for the external systems during onboarding and offboarding. In step 206, the scaling plan generation system 104 (see FIG. 1) forecasts an estimated workload for the scheduled onboarding or offboarding and maps the forecasted workload to the external systems and tenants associated with the onboarding or offboarding.
[0032] The scaling plan generation system 104 (FIG. 1) combines multiple changes for a single computer resource, where the multiple changes are associated with a respective multiple tenants. In one embodiment, combining multiple changes for a single computer resource is adding the multiple changes together. For example, on date D, an onboarding is scheduled for customer A that adds 5000 new users. Based on the scheduled onboarding and characteristics selected by customer A, the scaling plan generation system 104 (see FIG. 1) predicts an increased workload on external systems 1, 2, and 3. Further, based on the current workload and the predicted increased workload on external systems 1, 2, and 3, the scaling plan generation system 104 (see FIG. 1) determines a 15% increase for computer resource A and a 20% increase for computer resource B as part of the scaling request 108 (see FIG. 1) and the scaling execution plan 110 (see FIG. 1). Further, on date D, an offboarding is scheduled for customer B that includes the deactivation of 8000 users and affects external system 2. Based on the scheduled offboarding, scaling plan generation system 104 (see FIG. 1 ) predicts a reduced workload on external system 2. Based on the current workload on external system 2 and the predicted reduced workload associated with the offboarding of customer B, scaling plan generation system 104 (see FIG. 1 ) recommends a 30% reduction for computer resource B as part of scaling request 108 (see FIG. 1 ) and scaling execution plan 110 (see FIG. 1 ). For computer resource B, there is a recommended 20% increase (i.e., +20%) to accommodate the onboarding of customer A and a recommended 30% reduction (i.e., −30%) to accommodate 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%) and determines that computer resource B should be reduced by 10% to accommodate both onboarding customer A and offboarding customer B.
[0033] In step 208, the scaling plan generation system 104 (see FIG. 1) processes a next exosystem selected from the multiple exosystems, where the processing follows the scaling execution plan 110 (see FIG. 1). In a first operation of step 208, the scaling plan generation system 104 (see FIG. 1) processes the first exosystem selected from the multiple exosystems. In a subsequent operation of step 208, the scaling plan generation system 104 (see FIG. 1) processes each other exosystem(s) included in the multiple exosystems, as described below.
[0034] In step 210, scaling plan generation system 104 (see FIG. 1) determines whether computer resource(s) need to be scaled (e.g., computer resource(s) 122-1 in FIG. 1) for the external system to be processed. Scaling plan generation system 104 (see FIG. 1) determines the need for scaling (also referred to herein as a scaling action) in step 210 based on scaling execution plan 110 (see FIG. 1).
[0035] If the scaling plan generation system 104 (see FIG. 1 ) determines in step 210 that the computer resource(s) of the external system needs to be scaled, then the Yes branch of step 210 is followed and step 212 is executed.
[0036] In step 212, integration engine 112 (see FIG. 1) triggers scaling of the external system's computing resource(s) to be processed at the dates and times indicated by the timeline indicated by scaling execution plan 110 (see FIG. 1). In one embodiment, the scaling in step 212 is automatic and includes scaling out a virtual machine, container, or cluster of containers. In another embodiment, the scaling in in step 212 includes manual addition of computing resources such as servers and memory.
[0037] Returning to step 210, if the scaling plan generation system 104 (see FIG. 1) determines that there is no need to scale the computer resource(s) of the external system, then the No branch of step 210 is followed, the scaling plan generation system 104 (FIG. 1) determines not to trigger a scaling action for the external system, and step 214 is executed, which indicates that the scaling plan generation system 104 (FIG. 1) does not perform any scaling action for the external system to be processed.
[0038] Step 212 and step 214 are followed by step 216. In step 216, the scaling plan generation system 104 (see FIG. 1) determines whether one more external system remains to be processed by step 208. If the scaling plan generation system 104 (see FIG. 1) determines in step 216 that one more external system remains to be processed in step 208, the Yes branch of step 216 is followed and the procedure of FIG. 2 loops to the successive operations of step 208, which processes the next external system selected from the multiple external systems.
[0039] If the scaling plan generation system 104 (see FIG. 1) determines in step 216 that no other external systems remain to be processed in step 208, then the No branch of step 216 is followed and step 218 is executed.
[0040] In step 218, the scaling plan generation system 104 (see FIG. 1) determines whether a new onboard or offboard plan is available for processing for the cloud tenant. If the scaling plan generation system 104 (see FIG. 1) determines in step 218 that there is a new onboard or offboard plan available for processing, then the Yes branch of step 218 is followed and the process of FIG. 2 loops back to step 202, where the scaling plan generation system 104 (see FIG. 1) receives a new onboard or offboard plan for the tenant.
[0041] If the scaling plan generation system 104 (see FIG. 1) determines in step 218 that there are no new on-board or off-board plans, then the No branch of step 218 is followed and step 220 is executed.
[0042] In another embodiment, step 218 is also expanded to include determining whether a previously processed onboard or offboard plan for an existing tenant has been modified by the existing tenant. If the scaling plan generation system (see FIG. 1) determines that an onboard or offboard plan for an existing tenant has been modified, then processing loops back to step 202 of FIG. 2, where the scaling plan generation system 104 (see FIG. 1) receives the modified onboard or offboard plan.
[0043] In step 220, the scaling plan generation system 104 (see FIG. 1) continues executing the scaling execution plan 110 (see FIG. 1) by iteratively executing the loop that began in step 208 for all timelines on which the scaling request 108 (see FIG. 1) is based. After execution of the scaling execution plan 110 (see FIG. 1) is completed, the process of FIG. 2 ends in step 222.
[0044] After the external system processing is completed by the process of FIG. 2, triggering scaling for the external system's computer resources at the dates and times indicated by the timeline ensures that performance of the 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.
[0045] In one embodiment, over time, the scaling plan generation system 104 determines or receives additional customer data and customer usage data, which is stored in historical data 120 (see FIG. 1 ). Using this additional amount of customer behavior and usage data, the scaling plan generation system 104 (see FIG. 1 ) determines that users from different customers in various industry sections and / or domains have different preferences and / or behavior patterns for features they use while on-board and / or off-board. The scaling plan generation system 104 (see FIG. 1 ) uses the determination of preferences and behavior patterns associated with customers in specific industry sections and / or domains to make finer-grained (i.e., more detailed) predictions of the workload estimated in step 206 and finer-grained scaling execution plans for workload increases / decreases over the timeline of one or more external systems. For example, the scaling plan generation system 104 (see FIG. 1 ) generates time-based increases or decreases in workload for some of the external systems using a databased determination of time patterns of on-board and off-board functionality usage by customers in industry domain D and in response to processing an on-board plan or an off-board plan for a particular customer within industry domain D.
[0046] Working Example 3 illustrates an example workload estimation 300 included in generating a scaling plan for an external system using the process of FIG. 2, according to an embodiment of the present invention. Example 300 includes a cloud tenant onboarding plan 302. Onboarding plan 302 specifies the cloud tenant associated with the onboarding plan (i.e., “Tenant A”), the date on which onboarding is scheduled to occur (i.e., “2020 / 07 / 01”), and the number of users to be added to the core system of the cloud computing environment (i.e., “5000” users). Onboarding plan 302 is an example of a tenant onboarding plan received in step 202 (FIG. 2).
[0047] Example embodiment 300 includes a list 304 of external systems that will be affected by onboard plan 302 (ie, “Affected System 1,” “Affected System 2,” and “Affected System 3”).
[0048] Example embodiment 300 includes estimated percentage amounts of change in workload 306 (i.e., +60%, +100%, and +80%) (also referred to herein as workload change percentages), which are mapped to (i) a list of components 307 (i.e., “Component A”, “Component B”, and “Component C”) and (ii) a list of external systems 304. The aforementioned components may be, for example, an active directory, a configuration management database, or an Internet Protocol address management component.
[0049] Example embodiment 300 also includes an onboarding plan 308 for a second cloud tenant. Onboarding plan 308 specifies the cloud tenant associated with the onboarding plan (i.e., “Tenant B”), the date on which onboarding is scheduled to occur (i.e., “2020 / 06 / 20”), and the number of users to be added to the core system (i.e., “6000 users”). Onboarding plan 308 is an example of a tenant onboarding plan received in step 202 (see FIG. 2 ).
[0050] Example embodiment 300 also includes: (1) a list 310 of external systems that will be affected by onboard plan 308 (i.e., “Affected System 1,” “Affected System 2,” “Affected System 3”); (2) an estimated percentage amount of change in workload 312 (i.e., +150%, +220%, and +85%); and (3) a list of components 313 (i.e., “Component A,” “Component B,” and “Component C”). In step 206 (see FIG. 2 ), scaling plan generation system 104 (see FIG. 1 ) estimates the percentage amount 312 based on the onboard plan and historical data 102 for tenant B and maps the percentage amount 312 to the list of external systems 310 and the list of components 313.
[0051] The embodiment 300 also includes an offboarding plan 314 for a third cloud tenant. The offboard plan 314 specifies the cloud tenant associated with the offboard plan (i.e., “Tenant C”), the date the offboard is scheduled to occur (i.e., “2020 / 07 / 15”), and the number of users whose user accounts will be removed from the core system (i.e., “8000 users”). Offboard plan 314 is an example of a tenant offboard plan received in step 202 (FIG. 2).
[0052] Example embodiment 300 also specifies: (1) a list 316 of external systems that will be affected by offboard plan 314 (i.e., “Affected System 1,” “Affected System 2,” and “Affected System 3; (2) an estimated percentage amount 318 of the change in workload (i.e., −30%, −70%, and −45%); and (3) a list of components 319 (i.e., “Component A,” “Component B,” and “Component C”). In step 206 (see FIG. 2), scaling plan generation system 104 (see FIG. 1) estimates the percentage amount 318 based on the offboard plan and historical data 120 for tenant C and maps the percentage amount 318 to the list of external systems 316 and the list of components 319.
[0053] For each tenant onboard or offboard plan, the scaling plan generation system 104 (see FIG. 1 ) in step 206 (see FIG. 2 ) (1) estimates the percentage of workload change that is a result of the implementation of the onboard or offboard plan, and (2) maps the workload change percentage to each external system and component. Each workload change percentage is based on historical data 120 combined with the onboard or offboard plan. As one example shown in FIG. 3 , the scaling plan generation system 104 (see FIG. 1 ) estimates that the onboard plan for tenant A will result in a 60% increase in workload for component A in affected system 1. As another example shown in FIG. 3 , the scaling plan generation system 104 (see FIG. 1 ) estimates that the offboard plan for tenant C will result in a 70% decrease in workload for component B in affected system 3.
[0054] Example 300 includes a timeline 320 generated at step 206 (see FIG. 2) by scaling plan generation system 104 (see FIG. 1). Timeline 320 includes dates (i.e., 06 / 20, 07 / 01, and 07 / 15) and the percentage increase or decrease in computer resources estimated for each affected system at each date. For example, as shown in timeline 320, an onboarding and offboarding plan scheduled for 07 / 01 includes an onboarding plan for Tenant A, as described above, estimating that the plan will require a 60% increase in computer resources for affected system 1, as described above.
[0055] Computer Systems 4 is a block diagram of a computer 102 included in the system of FIG. 1 and implementing the process of FIG. 2, according to an embodiment of the present invention. The computer 102 generally includes a central processing unit (CPU) 402, a memory 404, an input / output (I / O) interface 406, and a bus 408. Additionally, the computer 102 is coupled to an I / O device 410 and a computer data storage unit 412. The CPU 402 performs computations including executing instructions included in program code 414 for systems including the scaling plan generation system 104 (see FIG. 1) to perform a method of generating a scaling plan for an external system, where instructions are executed by the CPU 402 via the memory 404. The CPU 402 may include a single processing unit or may be distributed across one or more in one or more locations.
[0056] Memory 404 includes known computer-readable storage media as described below. In one embodiment, the cache memory elements of memory 404 provide temporary storage for recent copies of program code (i.e., program code 414) to reduce the number of times the code must be retrieved from bulk storage when executing instructions of the program code. Further, like CPU 402, memory 404 may reside in a single physical location including one or more types of data storage or may be distributed across multiple physical systems in various configurations. Further, memory 404 may include data distributed across a local area network (LAN) or a wide area network (WAN), for example.
[0057] I / O interface 406 includes any system for exchanging information with external sources. I / O devices 410 include any known type of external device including a display, keyboard, etc. Bus 408 provides a communication link between each of the components within computer 102 and may include any type of communication link including electrical, optical, wireless, etc.
[0058] The I / O interface 406 also allows the computer 102 to store information (e.g., data or program instructions such as program code 414) in a computer data storage unit 412 and to read information from another computer data storage unit (not shown). The computer data storage unit 412 includes any known computer-readable storage medium, as described below. In one embodiment, the computer data storage unit 412 is a non-volatile data storage device, such as a solid state drive (SSD), a network attached storage (NAS) array, a storage area network (SAN), a magnetic disk drive (i.e., a hard disk drive), or an optical drive (e.g., a CD-ROM drive that receives a CD-ROM disc, or a DVD drive that receives a DVD disc).
[0059] The memory 404, or the storage unit 412, or both, may store computer program code 414 including instructions for execution by the CPU 402 via the memory 404 to generate a scheduling plan for an external system. Although Figure 4 illustrates the memory 404 as including program code, the present invention contemplates embodiments in which the memory 404 does not include all of the code 414 simultaneously, but instead includes only a portion of the code 414 at a time.
[0060] Additionally, memory 404 may include an operating system (not shown) and may include other systems not shown in FIG.
[0061] In one embodiment, computer data storage unit 412 includes tenant onboard / offboard schedules 114 (see FIG. 1), architecture and interface specifications 116 (see FIG. 1), tenant-specific requirements 118 (see FIG. 1), and historical data 120 (see FIG. 1).
[0062] As will be appreciated by one of ordinary skill in the art, in a first embodiment, the present invention may be a method; in a second embodiment, the present invention may be a system; and in a third embodiment, the present invention may be a computer program product.
[0063] Any of the components of the embodiments of the present invention may be deployed, managed, serviced, etc., by a service provider that provides deployment or integration of computing infrastructure related to generating a scaling plan for an external system. Accordingly, an embodiment of the present invention discloses a process for supporting a computing infrastructure, where the process includes providing at least one support service for at least one of integrating, hosting, maintaining, and deploying computer readable code (e.g., program code 414) to a computer system (e.g., computer 102) including one or more processors (e.g., CPU 402), where the processor(s) execute instructions included in the code to cause the computer system to generate a scaling plan for an external system. Another embodiment discloses a process for supporting a computing infrastructure, where the process includes integrating computer readable program code within a computer system including a processor. The integrating step includes storing the program code in a computer readable storage device of the computer system through use of the processor. The program code, upon execution by the processor, implements a method for generating a scaling plan for an external system.
[0064] It is understood that the program code 414 for generating a scaling plan for an external system can be manually deployed to a client, server, or proxy computer (not shown) via loading onto a computer readable storage medium (e.g., computer data storage unit 412), but the program code 414 can also be automatically or semi-automatically deployed to 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 a client computer (e.g., computer 102) that will execute the program code 414. Alternatively, the program code 414 is distributed directly to the client computer via email. The program code 414 is then detached or loaded into a directory on the client computer by a button on the email that executes a program that detaches the program code 414 into the directory. Another alternative is to send the program code 414 directly to a directory on the client computer's hard drive. In an example where a proxy server is present, the process selects the proxy server code, determines on which computer to place the proxy server code, transmits the proxy server code, and then installs the proxy server code on the proxy computer. The program code 414 is transmitted to the proxy server and then stored on the proxy server.
[0065] Another embodiment of the present invention provides a method for performing process steps on a subscription, advertising, or fee basis, or a combination thereof. That is, a service provider may provide to generate, maintain, support, etc., a process for generating a scaling plan for an external system. In this case, the service provider may generate, maintain, support, etc., a computer infrastructure for performing the process steps for one or more customers. In return, the service provider may receive payments from the customer(s) under a subscription or fee agreement, or the service provider may receive payments from the sale of advertising content to one or more third parties, or a combination thereof.
[0066] The present disclosure may be a system, method, or computer program product, or combination thereof, that includes a computer-readable recording medium (or media) (i.e., memory 404 and computer data storage unit 412) having computer-readable program instructions 414 thereon for causing a processor (e.g., CPU 402) to perform aspects of the present disclosure.
[0067] A computer readable medium may be a tangible device capable of holding and storing a plurality of instructions (e.g., program code 414) for use by an instruction execution device (e.g., computer 102). A computer readable medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. More specific examples of computer readable medium include the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a punch card, or a mechanically encoded device having protruding structures within a groove having instructions recorded therein, and any suitable combination thereof. As used herein, a computer-readable recording medium is not to be construed as a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves such as wave guides or other communications media (e.g., light pulses passing through fiber optic cable), or electrical signals communicated through wires.
[0068] The computer program instructions (e.g., program code 414) described herein can be downloaded from a computer readable recording medium into the respective computing / processing device (e.g., computer 102) or can be downloaded to an external computer or external recording device (e.g., computer data storage unit 412) via a network, such as the Internet, a local area network, a wide area network, or a wireless network, and combinations thereof. The network can include copper cables, fiber optics, wireless communications, routers, firewalls, switches, gateway computers, and edge servers, or combinations thereof. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and transfers the computer readable program instructions into a computer readable recording medium in the respective computing / processing device for storage.
[0069] The computer readable program instructions (e.g., program code 414) for performing the operations of the present invention can be either source code or object code written in any combination of programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or one or more procedural programming languages, such as Smalltalk®, object oriented programming languages such as C++, the “C” programming language, or similar programming languages. The computer readable program instructions can be executed entirely on the user computer, partially on the user computer as a stand-alone software package, partially on the user computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user computer through any type of network, including a local area network (LAN), a wide area network (WAN), or the connection can be to an external computer (e.g., through an Internet service provider). In some embodiments, computer readable program instructions may be executed by electrical circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), and state information of the computer readable program instructions may be used to personalize the electrical circuitry to perform features of the present invention.
[0070] Features of the invention described herein have been described with reference to flowchart illustrations (e.g., FIG. 2) and / or block diagrams (e.g., FIGS. 1 and 4) of methods, apparatus (systems), and computer-readable storage media and computer programs according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions (e.g., program code 414).
[0071] These computer-readable program instructions can be provided to a general purpose computer, special purpose computer, or other processor (e.g., CPU 402) or other programmable data processing device to create a machine, and execution by the processor of the computer or other programmable data processing device (e.g., computer 102) creates means for implementing the functions / operations specified in the block or blocks of the flowcharts and block diagrams, or combinations thereof. These computer-readable program instructions that direct a computer, programmable data processing device, and other device, or combinations thereof to function in a particular manner, can also be stored on a computer-readable recording medium (e.g., computer-readable recording medium 412), and the computer-readable recording medium having instructions stored therein constitutes an article of manufacture including instructions that implement the functional / operational features specified in the block or blocks of the flowcharts and block diagrams, or combinations thereof.
[0072] The computer readable program instructions (e.g., program code 414) may also be loaded onto a computer, other programmable data processing apparatus, or other device and cause a computer-implemented process to execute a series of operational steps on the computer (e.g., computer 102), other programmable apparatus, or other device to implement the functions / acts identified in the blocks of the flowcharts and block diagrams or in a combination thereof.
[0073] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and possible implementation operations of systems, methods, and computer programs according to various embodiments of the present invention. In this respect, the flowcharts or block diagrams may represent modules, segments, or portions of instructions, which include one or more executable instructions for implementing a particular logical function(s) (or functions). In some alternative implementations, the functions described in the blocks may be performed other than as illustrated. For example, two blocks shown in succession may be performed in a step that is in effect performed simultaneously, substantially simultaneously, partially or completely overlapped in time, or the blocks may sometimes be performed in reverse order, depending on the functionality involved. It is also noted that the illustration of the blocks in the block diagrams and / or the illustration of the flowcharts or combinations thereof may be implemented by a system based on special purpose hardware that performs a particular function or operation or executes specific purpose hardware and computer instructions.
[0074] While embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art. It is therefore intended by the appended claims to cover all such modifications and changes as fall within the true spirit and scope of the invention.
[0075] Cloud Computing Environment Although this disclosure includes a detailed description of cloud computing, implementation of the teachings recited herein is not limited to a cloud computing environment. Rather, embodiments of the invention may be implemented in combination with any other type of computing environment now known or later developed.
[0076] Cloud computing is a service delivery model for on-demand network access with the convenience of accessing a shared pool of rapidly provisioned and open configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) with minimal administrative effort or interaction with a service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0077] Its features are as follows: On-Demand Self-Service: Cloud consumers are automatically provisioned with computing power - server time and network storage - on an as-needed basis without the need for human interaction with the service provider. Pervasive Network Access: Capabilities are available over the network and accessed through standard mechanisms facilitating use by different thin- and thick-client platforms (eg, mobile phones, laptops, and PDAs). Resource Sharing: Using a multi-tenant model, a provider's computing resources are shared to serve multiple consumers, with different physical and virtualized resources dynamically allocated and reallocated as needed. A sense of location independence exists, such that consumers generally have no control or knowledge of the exact location (e.g., country, state, or data center) of the resources provided, but can specify the location at a higher layer of abstraction. Rapid Elasticity: Capabilities can be provisioned quickly and elastically, sometimes automatically, to quickly scale out and quickly release to quickly scale in. To the consumer, the capabilities available for provisioning often appear unlimited and can be purchased in any quantity at any time. Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at several levels 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 to provide transparency to both providers and consumers of the services being used.
[0078] The service model is as follows: Software as a Service (SaaS): The functionality provided to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or individual application functionality, except for limited user-specific application configuration settings. Platform as a Service (PaaS): The capability offered to a consumer is to deploy applications that the consumer has created or acquired, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does control the deployed applications and, potentially, the configuration of the application hosting environment. Infrastructure as a Service (IaaS): The functionality provided to the consumer is the provision of processing, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, deployed applications, and possibly limited control over select networking components (e.g., host firewalls).
[0079] The layout model is as follows: Private Cloud: The cloud infrastructure operates solely for one organization. It can be managed by that organization or a third party and can exist on-premises or off-premises. Community Cloud: The cloud infrastructure is shared by several organizations to support a specific community with common interests (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by those organizations or by a third party and can exist on-premises or off-premises. Public Cloud: Cloud infrastructure is made available to the public or large industry groups and is owned by organizations that sell cloud services. Hybrid Cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound to each other by standardized or proprietary technologies that allow portability of data and applications (e.g., cloud bursting for load balancing between clouds).
[0080] Cloud computing environments are service-oriented with a focus on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure, which contains multiple interconnected nodes.
[0081] Referring to FIG. 5, an exemplary 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 consumers, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, communicate. The cloud computing nodes 10 can communicate with each other. They can be physically or virtually grouped in one or more networks, such as the private, community, public, or hybrid clouds described above, or combinations thereof (not shown). This allows the cloud computing environment 50 to provide infrastructure, platform, or software-as-a-service, or combinations thereof, as a service without the cloud consumer having to maintain resources on a local computing device. The types of computing devices 54A, 54B, 54C, and 54N shown in FIG. 5 are for illustrative purposes only, and it will be understood that the computing node 10 and cloud computing environment 50 can communicate with any type of computerized device through any type of network or addressable network connection (e.g., a web browser), or both.
[0082]
[0033] Referring now to Figure 6, there is shown a set of functional abstraction layers provided by cloud computing environment 50 (Figure 5). It should be understood in advance that the components, layers, and functions shown in Figure 6 are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0083] The hardware and software layer 60 includes hardware and software components. Examples of the hardware components may include a mainframe 61, a plurality of servers based on a RISC (reduced instruction set computer) architecture 62, a plurality of servers 63, a plurality of blade servers 64, a plurality of storage devices 65, and a network and networking components 66. In some embodiments, the software components include network application server software 67 and database software 68.
[0084] The visualization layer 70 provides an abstraction layer from which embodiments of virtual entities are provided, as described below: virtual servers 71; virtual storage 72; virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.
[0085] In one embodiment, the management layer 80 may provide the following functions: A resource provisioning unit 81 provides dynamic acquisition of computing resources and other resources used to perform tasks within the cloud computing environment. A metering and pricing unit 82 provides cost tracking as resources are used within the cloud computing environment and provides billing or charging for the consumption of these resources. In one embodiment, these resources may include application software licenses. A security unit provides identification and authentication of cloud consumers and tasks as well as protection of data and other resources. A user portal unit 83 provides accessibility to the cloud computing environment and system administrators for consumers. A service level management unit 84 provides allocation and management of cloud computing resources to meet required service levels. A service level agreement (SLA) planning and fulfillment unit 85 provides pre-provisioning and acquisition of cloud computing resources as future requests are required according to SLAs.
[0086] The workload layer 90 provides examples of functionality for utilizing a cloud computing environment. Examples of workloads and functionality provided by this layer may include mapping and navigation 91; software development and lifetime management 92; virtual classroom instructional delivery 93; data analytics processing 94; transaction processing 95; and functionality 96.
Claims
1. 1. A computer-implemented method for generating a scaling plan, the method comprising: receiving, by one or more processors, a plan for onboarding a first one or more tenants of a cloud computing environment and offboarding a second one or more tenants of the cloud computing environment; receiving, by the one or more processors, historical data regarding behavior of tenants of the cloud computing environment; generating, by the one or more processors, based on the received plans for the on-boarding and the off-boarding and based on the historical data, a scaling plan for scaling computer resources of an external system between the on-boarding and the off-boarding, the scaling plan identifying a timeline indicating dates and times when a change in workload associated with the external system is required for the on-boarding and the off-boarding; determining, by the one or more processors based on the scaling plan, that scaling is required for one or more computer resources of an external system included in the external system; and Triggering, by the one or more processors, in response to determining that scaling is required, scaling for the one or more computer resources of the external system at a date and time specified in the timeline. A method comprising:
2. moreover, determining, by the one or more processors, whether one or more scaling actions are required for each of one or more other external systems included in the external system; and determining, by the one or more processors, to trigger the scaling action according to the timeline if it is determined that a scaling action is required for a given external system included in the one or more external systems, or to not trigger the scaling action by the one or more processors if it is determined that the scaling action is not required for the given external system; determining whether the one or more scaling actions are necessary until no external systems included in the one or more other external systems are left outstanding; The method of claim 1 , further comprising an optional iterative step.
3. moreover, receiving, by the one or more processors, a new plan for onboarding or offboarding tenants of the cloud computing environment subsequent to triggering the scaling of the one or more computer resources of the external system; receiving, by the one or more processors, other historical data regarding the behavior of the tenant; generating, by the one or more processors, a second scaling plan for the computer resources of the external system during the onboarding or offboarding of the tenant based on the received new plan for the onboarding and offboarding of the tenant and based on the other historical data; and determining, by the one or more processors based on the second scaling plan, that scaling is required for one or more computer resources of a second external system included in the external system. The method of claim 1 or 2, comprising:
4. triggering the scaling of the one or more computer resources of the external system at the dates and times specified by the timeline includes ensuring that performance of a cloud management platform in the cloud computing environment exceeds a first threshold and that a service down condition does not exceed a second threshold. The method according to any one of claims 1 to 3.
5. the plan for the onboarding and the offboarding includes a schedule for completing the onboarding and the offboarding. The method according to any one of claims 1 to 4.
6. the plan for the onboarding and the offboarding includes an onboarding request of the first one or more tenants and an offboarding request of the second one or more tenants; The method according to any one of claims 1 to 5.
7. the plan for the onboarding and offboarding includes a specification of the architecture and interfaces of one or more external systems required to onboard a tenant of the cloud computing environment; The method according to any one of claims 1 to 6.
8. moreover, providing at least one support service for at least one of generating, integrating, hosting, maintaining, and deploying computer readable program code executed by a processor of the computer to receive the plan for the onboarding and offboarding, receive the historical data, generate the scaling plan, determine that the scaling is necessary for the one or more computer resources of the external system, and trigger the scaling of the one or more computer resources of the external system; The method according to any one of claims 1 to 7, comprising the steps of:
9. A computer-executable computer program for generating a scaling plan, the computer program causing a computer to perform a method according to any one of claims 1 to 7. A computer-executable computer program.
10. A computer program according to claim 9, A computer-readable recording medium.
11. 1. A computer system comprising: A central processing unit (CPU); a memory associated with said CPU; a computer-readable storage medium coupled to the CPU, the computer-readable storage medium including instructions executable by the CPU via the memory; receiving, by the computer system, a plan for onboarding a first one or more tenants of a cloud computing environment and offboarding a second one or more tenants of the cloud computing environment; receiving, by the computer system, historical data regarding behavior of tenants of the cloud computing environment; generating, by the one or more processors, based on the received plans for the on-boarding and the off-boarding and based on the historical data, a scaling plan for scaling computer resources of an external system between the on-boarding and the off-boarding, the scaling plan identifying a timeline indicating dates and times when a change in workload associated with the external system is required for the on-boarding and the off-boarding; determining, based on the scaling plan, that scaling is required for one or more computer resources of an external system included in the external system; and Triggering, by the one or more processors, in response to determining that scaling is required, scaling for the one or more computer resources of the external system at a date and time specified in the timeline. A computer system for performing the method.
12. The method further comprises: determining whether one or more scaling actions are required for each of one or more other external systems included in the external system; and triggering, by the one or more processors, the scaling action according to the timeline if it is determined that a scaling action is required for a given external system included in the one or more external systems, or determining that the computer system does not trigger the scaling action if it is determined that the scaling action is not required for the given external system; determining whether the one or more scaling actions are necessary until no external systems included in the one or more other external systems are left outstanding; [0046] including an iterative step by 12. The computer system of claim 11.
13. The method further comprises: subsequent to triggering the scaling of the one or more computing resources of the external system, the computing system receiving a new plan for onboarding or offboarding a tenant of the cloud computing environment; receiving, by the computer system, other historical data about the behavior of the tenant; generating, by the computer system based on the received new plan for the onboarding and offboarding of the tenant and based on the other historical data, a second scaling plan for the computer resources of the external system during the onboarding or offboarding of the tenant; and determining, based on the second scaling plan, by the computer system that scaling is required for one or more computer resources of a second external system included in the external system; Including, 13. A computer system according to claim 11 or 12.
14. triggering the scaling of the one or more computer resources of the external system at the dates and times specified by the timeline includes ensuring that performance of a cloud management platform in the cloud computing environment exceeds a first threshold and that a service down condition does not exceed a second threshold. A computer system according to any one of claims 11 to 13.
15. the plan for the onboarding and the offboarding includes a schedule for completing the onboarding and the offboarding. A computer system according to any one of claims 11 to 14.
16. the plan for the onboarding and the offboarding includes an onboarding request of the first one or more tenants and an offboarding request of the second one or more tenants; A computer system according to any one of claims 11 to 15.
Citation Information
Patent Citations
Method and system for information technology resource management
CN104657411A
Load balancing in data networks
JP2015534769A
Systems and methods for providing an end-to-end lifecycle in a multi-tenant application server environment
JP2017532678A
Auto scale processing device, auto scale method and program
JP2019028538A
Creating a virtual network across multiple public clouds
JP2020536403A