CN117331696A - Service providing system and method based on multiple tenants - Google Patents
Service providing system and method based on multiple tenants Download PDFInfo
- Publication number
- CN117331696A CN117331696A CN202311307727.XA CN202311307727A CN117331696A CN 117331696 A CN117331696 A CN 117331696A CN 202311307727 A CN202311307727 A CN 202311307727A CN 117331696 A CN117331696 A CN 117331696A
- Authority
- CN
- China
- Prior art keywords
- resource
- tenant
- performance
- resources
- tenants
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012544 monitoring process Methods 0.000 claims abstract description 63
- 238000002955 isolation Methods 0.000 claims abstract description 53
- 238000013468 resource allocation Methods 0.000 claims abstract description 23
- 238000003860 storage Methods 0.000 claims abstract description 16
- 238000005457 optimization Methods 0.000 claims abstract description 12
- 238000012552 review Methods 0.000 claims abstract description 12
- 230000000737 periodic effect Effects 0.000 claims abstract description 10
- 230000009467 reduction Effects 0.000 claims abstract description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000007726 management method Methods 0.000 claims description 12
- 238000013515 script Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 230000008602 contraction Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 5
- 238000012550 audit Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 4
- 230000006872 improvement Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000006378 damage Effects 0.000 claims description 3
- 230000036541 health Effects 0.000 claims description 3
- 230000008439 repair process Effects 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention discloses a service providing system and method based on multi-tenant, comprising the following steps: step 1: dividing computing and storage resources of the system into a plurality of resource pools; step 2: dynamically distributing resources according to the resource demands of tenants and the available resource conditions of a current resource pool; step 3: setting a performance monitoring system, and monitoring the resource use condition of each tenant in real time; step 4: implementing an elastic expansion strategy, and allowing automatic expansion or reduction of resources according to load requirements; step 5: distributing incoming requests using a load balancer in a multi-tenant environment; step 6: defining performance isolation policies and rules to ensure that each tenant is aware of their resource quota and restrictions on resource usage; step 7: periodic reviews of performance isolation policies and resource allocations. The invention emphasizes performance isolation and resource optimization through comprehensive technology and strategy to ensure that the system is still stable under high load condition.
Description
Technical Field
The present invention relates to the field of computer technologies, and in particular, to a service providing system and method based on multiple tenants.
Background
A Multi-Tenant (Multi-Tenant) system is a computer software architecture or cloud computing model in which a single software instance or service can simultaneously serve multiple independent clients or tenants and physically or logically isolate the data and operations of those tenants. This means that different organizations or users may share the same software or services, but their data and operations are often independent and isolated from each other to ensure security and privacy. Multi-tenant systems, while having many advantages in terms of resource sharing and cost effectiveness, also face several technical problems and challenges, such as: the high load of one tenant can affect the performance of other tenants, with "neighbor effects" occurring.
Disclosure of Invention
In order to solve the problems, the invention provides a service providing system and a service providing method based on multiple tenants.
In order to achieve the above purpose, the technical scheme adopted by the invention is as follows:
in one aspect, the invention discloses a service providing method based on multiple tenants, comprising the following steps:
step 1: dividing computing and storage resources of the system into a plurality of resource pools, each resource pool being assigned to one or more tenants; allocating an appropriate resource quota for each tenant, wherein the quota is determined according to the requirements and subscription levels of the tenant;
step 2: dynamically distributing resources according to the resource demands of tenants and the available resource conditions of a current resource pool;
step 3: setting a performance monitoring system, and monitoring the resource use condition of each tenant in real time; according to the performance monitoring data, an automatic adjustment mechanism is realized, and when the load of one tenant is too high, more resources are automatically allocated to the tenant so as to maintain the performance level of the tenant; when the load is reduced, recovering redundant resources for other tenants to use;
step 4: implementing an elastic expansion strategy, and allowing automatic expansion or reduction of resources according to load requirements;
step 5: distributing incoming requests in a multi-tenant environment using a load balancer to ensure that loads are evenly distributed on application program instances of different tenants;
step 6: defining performance isolation policies and rules to ensure that each tenant is aware of their resource quota and restrictions on resource usage;
step 7: performance isolation policies and resource allocations are periodically reviewed to ensure that they remain applicable to changing tenant requirements and system performance.
Further: the step 1 comprises the following steps:
creating a container resource pool using a container orchestration platform, wherein each container can be isolated independently, and containers of different tenants run on the same physical host but are isolated from each other;
ensuring that each container or virtual machine has independent network and storage isolation;
setting resource limits and quotas to ensure that each container or virtual machine can only access its allocated resources;
implementing a monitoring system to monitor the performance and resource usage of each container or virtual machine in real time;
managing creation, destruction and expansion of containers or virtual machines in view of automation tools and scripts;
enforcing security policies to ensure isolation between containers or virtual machines and to prevent possible attacks or exploits;
making a backup and disaster recovery strategy of a container or a virtual machine to protect tenant data and application programs from data loss or hardware faults;
the operating system and application programs of the container or virtual machine are updated periodically to repair vulnerabilities and ensure the security and stability of the system.
Further: the step 2 comprises the following steps:
establishing a resource pool monitoring system to monitor the resource use condition of each resource pool in real time;
knowing the resource requirements and priorities of each tenant to define the resource requirements and service level agreements;
implementing a resource scheduling algorithm to dynamically allocate resources according to tenant requirements and available resource conditions, the algorithm determining resource allocation based on several factors:
priority of tenant: ensuring that high priority tenants obtain more resources;
resource requirements of tenant: allocating resources to tenants requiring more resources;
load balancing: load balance among all tenants in the resource pool is maintained;
elastic expansion and contraction: automatically expanding or reducing resources as required;
realizing an automatic resource scheduling system to automatically allocate and recycle resources according to a scheduling algorithm;
resource reservation or reservation policies are set for critical or high priority tenants to ensure that they can obtain stable resources when needed.
Further: the step 3 comprises the following steps:
deploying a performance monitoring system and a monitoring agent or agent aggregator to collect performance data from the multi-tenant system;
defining key performance indexes, and determining a proper threshold of performance according to tenant requirements and system characteristics;
creating a visual instrument board for monitoring performance indexes in real time;
an automatic adjustment strategy is formulated, and resources are automatically allocated or recovered according to the performance monitoring data;
setting an alarm rule for the abnormal performance condition, and triggering an alarm when the performance index exceeds or is lower than a preset threshold value;
the automation scripts and tools are configured to implement automated resource adjustment.
Further: the step 4 comprises the following steps:
determining a flexible resource, and defining a threshold value and a rule for triggering the flexible;
the system is integrated with a monitoring system to monitor the use condition and performance index of resources, and is provided with alarm rules, and when the telescopic condition is triggered, the telescopic operation is automatically triggered.
Further: the step 5 comprises the following steps:
configuring load balancing rules to specify how incoming requests are distributed to different tenant application instances;
for applications that need to maintain session state, session sticky is enabled to ensure that the same user's request is always routed to the same application instance
Configuring a load balancer to monitor health of the back-end application instance, the load balancer automatically transferring traffic from the failed instance to the normal instance when an abnormal instance is detected;
ensuring that the load balancer has a safety function;
configuring a horizontal expansion load balancer to handle more traffic and improve availability;
periodically evaluating and adjusting the configuration of a load balancer according to the system load and performance requirements;
failover and redundancy are implemented at the load balancer level to prevent single point failure.
Further: the step 6 comprises the following steps:
defining a resource quota for each tenant explicitly, the quota being determined based on the needs of the tenant, the subscription level and the contractual agreement;
making a service level agreement, wherein the service level agreement comprises performance indexes, support levels and problem response time; the service level agreement is consistent with the resource quota and the tenant demand to ensure that the expectations of the tenant are met;
implementing a supervision mechanism, and periodically checking whether the resource use condition of the tenant accords with defined strategies and rules; if the non-compliance behavior is found, taking appropriate measures;
establishing a transparent communication channel with tenants, and ensuring that the tenants know the resource quota, the service level agreement and the performance isolation policy of the tenants; providing easy-to-understand documents and guidelines to explain how to effectively utilize its resources;
managing tenant contracts, and ensuring that resource allocation and service level agreements are complied with within contract deadlines; before the contract expires, re-evaluating the resource requirement with the tenant, and adjusting according to the requirement;
considering implementation of an elastic policy, allowing a tenant to dynamically adjust its resource quota according to requirements;
establishing a dispute resolution policy to deal with resource disputes or dissatisfaction between tenants;
periodically auditing the resource usage and performance data, generating a report to track compliance and performance isolation of the tenant, the report for transparency between the inside and the tenant;
strategies and rules are periodically evaluated and refined to reflect changing needs and techniques; based on performance data and user feedback, strategies for performance isolation and resource allocation are continually improved.
Further: the step 7 comprises the following steps:
making a periodic review plan including review frequency, scope of review and stakeholders involved, determining which aspects need to be reviewed;
collecting relevant performance data and resource use condition data, including actual resource demands, system loads and performance indexes of tenants, and acquiring the data by using a performance monitoring tool, a log and an audit record;
evaluating performance isolation of the system to check whether there is evidence of performance problems or insufficient resources; and comparing the actual performance with the performance index specified in the service level agreement to ensure that the expectations of the tenants are met.
Analyzing the use condition of the resources, determining which tenants use a large amount of resources and which tenants possibly need additional resources, and checking whether the tenants misuse the resources or underutilize the resource quota;
if the performance problem is found, analyzing the root cause and taking corrective action;
optimizing a performance isolation strategy and a resource quota according to the examination result;
recording the censoring results and optimization measures, generating a report for viewing by stakeholders, the report including findings of censoring, measures taken, improvement plans, and schedules;
ensuring compliance of performance isolation policies and resource allocation, whether to comply with regulations and contractual agreements, and ensuring that any security and compliance requirements are not violated;
the above steps are repeated periodically to ensure that the multi-tenant system continuously meets tenant requirements and performance requirements.
In another aspect, the present invention discloses a multi-tenant based service providing system, comprising:
a resource pool management module: dividing computing and storage resources of the system into a plurality of resource pools, each resource pool being assigned to one or more tenants; allocating an appropriate resource quota for each tenant, wherein the quota is determined according to the requirements and subscription levels of the tenant;
resource scheduling and management module: dynamically distributing resources according to the resource demands of tenants and the available resource conditions of a current resource pool;
monitoring and feedback module: setting a performance monitoring system, and monitoring the resource use condition of each tenant in real time; according to the performance monitoring data, an automatic adjustment mechanism is realized, and when the load of one tenant is too high, more resources are automatically allocated to the tenant so as to maintain the performance level of the tenant; when the load is reduced, recovering redundant resources for other tenants to use;
elastic expansion module: implementing an elastic expansion strategy, and allowing automatic expansion or reduction of resources according to load requirements;
load balancing module: distributing incoming requests in a multi-tenant environment using a load balancer to ensure that loads are evenly distributed on application program instances of different tenants;
and an implementation strategy module: defining performance isolation policies and rules to ensure that each tenant is aware of their resource quota and restrictions on resource usage;
periodic review and optimization module: performance isolation policies and resource allocations are periodically reviewed to ensure that they remain applicable to changing tenant requirements and system performance.
Compared with the prior art, the invention has the following technical progress:
the method employs multi-layer policies and techniques to ensure high performance isolation between tenants. By comprehensively implementing the steps of resource pool management, containerization/virtualization, resource scheduling, monitoring, feedback and the like, the performance of other tenants can be prevented from being adversely affected by the high load of one tenant. This helps to avoid "neighbor effects", i.e. the activity of one tenant can negatively impact its neighbors. Through the steps of periodical examination and optimization, the method can dynamically adjust the resource allocation strategy according to actual demands and system performance, and ensures the efficient utilization of resources. This helps to reduce resource waste and cost. And an elastic expansion strategy is implemented, so that the system can automatically expand or reduce resources according to load requirements. This not only improves the flexibility of the system, but also ensures that the tenant can still obtain sufficient performance during peak hours without wasting resources during off-peak hours. And a load balancer is adopted to balance incoming requests, so that traffic is ensured to be uniformly distributed to application program instances of different tenants. This helps prevent excessive traffic for a tenant, thereby improving the performance stability of the overall system. : by cooperating with tenants, help them optimize their applications, reduce resource consumption and improve performance. This helps the tenant to better utilize its resource quota, improving overall performance. Policies and rules are enforced to define performance isolation, ensuring that each tenant is aware of their resource quota and restrictions on resource usage. This provides transparency and predictability of the tenant. The present approach emphasizes the importance of periodic review and optimization to ensure that performance isolation policies and resource allocation policies remain consistent with changing demands and system performance. This helps the system to continuously meet the performance requirements of the tenant.
The method emphasizes performance isolation and resource optimization through comprehensive technology and strategy to ensure that the system is still stable under the condition of high load, provide expandability and elasticity, be beneficial to improving the usability of the multi-tenant system, reduce the resource cost and improve the satisfaction of tenants.
Drawings
The accompanying drawings are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate the invention and together with the embodiments of the invention, serve to explain the invention.
In the drawings:
FIG. 1 is a flow chart of the present invention.
Detailed Description
The following embodiments may be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments. Embodiments of the present invention will be described below with reference to the accompanying drawings.
Example 1
As shown in fig. 1, a service providing method based on multi-tenants includes the steps of:
step 1: resource pool management
Dividing a resource pool: first, the computing and storage resources of the system are partitioned into a plurality of resource pools. Each resource pool is assigned to one or more tenants. The resource pool may be created based on virtualization technology, containerization, or cloud resource allocation.
Resource quota allocation: each tenant is allocated an appropriate resource quota, including CPU, memory, storage, and bandwidth. These quotas should be determined based on the needs and subscription levels of the tenants.
Step 2: resource scheduling and management
A resource scheduler: a resource scheduler is implemented that can dynamically allocate resources based on the tenant's resource requirements and the current pool's available resources. This scheduler needs to take into account the priorities of the different tenants to ensure that higher priority tenants get more resources.
Step 3: monitoring and feedback
And (3) performance monitoring: setting a performance monitoring system to monitor the resource use condition of each tenant in real time, wherein the resource use condition comprises CPU utilization rate, memory use, network bandwidth and the like. These monitoring data can be used for performance analysis and problem investigation.
Automatic adjustment: and realizing an automatic adjustment mechanism according to the performance monitoring data. When the load of one tenant is too high, more resources are automatically allocated to the tenant to maintain its performance level. When the load drops, the redundant resources are recovered for other tenants to use.
Step 4: elastic expansion and contraction
Elastic expansion and contraction: implementing the flexible policy allows for automatic expansion or contraction of resources according to load requirements. This may be achieved by an auto-scaling function or custom script of the cloud service provider.
Step 5: load balancing
Load balancer: load balancers are used in a multi-tenant environment to distribute incoming requests, ensuring that the load is evenly distributed across application instances of different tenants. The load balancer may also detect and handle abnormal instances.
Step 6: enforcing policies
Policy and rules: defining performance isolated policies and rules ensures that each tenant is aware of their resource quota and restrictions on resource usage. This may be defined explicitly by a Service Level Agreement (SLA).
Step 7: periodic inspection and optimization
Periodic inspection: performance isolation policies and resource allocations are periodically reviewed to ensure that they remain applicable to changing tenant requirements and system performance.
Through the steps, the problem of multi-tenant performance isolation is solved, and the high load of each tenant is ensured not to influence the performance of other tenants.
Specifically, step 1 includes:
dividing a resource pool:
a container orchestration platform is used to create a pool of container resources. Each container may be isolated independently, so containers of different tenants may run on the same physical host, but isolated from each other.
Resource quota allocation:
isolation network and storage: each container or virtual machine is ensured to have independent network and storage isolation. This helps prevent network interference and data leakage between different tenants.
Resource limitations and quota: resource limits and quotas are set to ensure that each container or virtual machine can only access its allocated resources. This includes CPU, memory, storage, and bandwidth.
Monitoring and logging: a monitoring system is implemented to monitor the performance and resource usage of each container or virtual machine in real time. At the same time, configuration log records are ensured for troubleshooting and security auditing.
And (3) automatic management: automation tools and scripts are considered to manage the creation, destruction, and expansion of containers or virtual machines. This helps to quickly respond to tenant demand and load fluctuations.
Security policy: security policies are enforced to ensure isolation between containers or virtual machines and to prevent possible attacks or exploits.
Backup and disaster recovery: backup and disaster recovery policies for containers or virtual machines are formulated to protect tenant data and applications from data loss or hardware failures.
Periodic updating and maintenance: the operating system and application programs of the container or virtual machine are updated periodically to repair vulnerabilities and ensure the security and stability of the system.
By implementing these steps, the workload of a tenant may be isolated using a containerization or virtualization technique, ensuring physical isolation to prevent the high load of one tenant from affecting the performance of other tenants. This isolation provides an efficient way to manage resources and ensure performance isolation.
Specifically, step 2 includes:
and (3) monitoring a resource pool: firstly, a resource pool monitoring system is established to monitor the resource use condition of each resource pool in real time, wherein the resource use condition comprises a CPU, a memory, a storage and a bandwidth. This may be done using a monitoring tool, agent or cloud service.
Tenant resource demand analysis: knowing the resource requirements and priorities of each tenant. This may require negotiations and contracts with tenants to clarify resource requirements and Service Level Agreements (SLAs).
Resource scheduling algorithm: a resource scheduling algorithm is implemented to dynamically allocate resources according to tenant requirements and available resource conditions. These algorithms may decide the resource allocation based on several factors:
priority of tenant: ensuring that higher priority tenants get more resources.
Resource requirements of tenant: resources are allocated to tenants that need more resources.
Load balancing: load balance among all tenants in the resource pool is maintained as much as possible.
Elastic expansion and contraction: the resources are automatically expanded or contracted as needed.
Automated resource scheduling: an automated resource scheduling system is implemented to automatically allocate and reclaim resources according to a scheduling algorithm. This may be accomplished by writing a script, using a container orchestration tool (e.g., kubernetes), or a virtualization manager.
Resource reservation and reservation: consider setting up resource reservation or reservation policies for key tenants or high priority tenants to ensure that they can obtain stable resources when needed.
Monitoring and feedback: a monitoring system is built to track the effect of the resource allocation. The monitoring data may be used for performance analysis and problem investigation. At the same time, an alarm mechanism is set to take action in time in case of insufficient resources or anomalies.
And (3) periodically optimizing: and periodically checking a resource scheduling algorithm and a strategy, and optimizing according to tenant requirements and performance data. This helps ensure efficient use of resources and meets performance isolation requirements.
Security and compliance: ensuring that the resource scheduling and allocation policies meet security and compliance requirements to prevent resource abuse and security risks.
By implementing the steps, an effective resource scheduling and management system can be established, and resources are ensured to be dynamically allocated according to the needs and priorities of the tenants, so that performance isolation is realized, and the high load of one tenant is prevented from affecting the performance of other tenants. The automation and monitoring system will help manage and maintain resource scheduling policies.
Specifically, step 3 includes:
the performance monitoring system is deployed:
an appropriate performance monitoring tool and system is selected, e.g., prometheus, grafana, ELK Stack, etc., or a monitoring solution using a cloud service provider.
A monitoring agent or agent aggregator is deployed to collect performance data from the multi-tenant system.
Index definition:
key performance indicators such as CPU utilization, memory usage, network bandwidth, disk I/O, etc. are defined. These metrics should be associated with tenant, resource pool and system overall performance.
And determining a proper threshold of the performance according to the needs of the tenants and the characteristics of the system.
Data visualization:
a visual dashboard is created for real-time monitoring of performance metrics. These dashboards should be able to clearly display per tenant performance data as well as overall system performance.
Charts, graphics, and alarms are used to highlight abnormal situations.
Automatic adjustment strategy:
and formulating an automatic adjustment strategy, and automatically distributing or recycling resources according to the performance monitoring data.
These policies may include dynamically expanding tenant resources, migrating tenant workloads to idle resources, dynamically adjusting container resources, and so forth.
Alarm setting:
alarm rules are set for performance anomalies. An alarm is triggered when the performance index exceeds or falls below a predetermined threshold.
The alert may send a notification to notify an administrator or responsible personnel to take action.
Automation scripts and tools:
automated scripts and tools are developed or configured to implement automated resource tuning. These scripts and tools should be capable of being integrated with the monitoring system, triggering automated tuning operations based on alarm and performance data.
By implementing these steps, a powerful performance monitoring and automation tuning system can be built to ensure that the multi-tenant system is always able to accommodate load changes, prevent the high load of one tenant from affecting the performance of other tenants, and provide high availability and reliability.
Specifically, step 4 includes:
elastic telescoping strategy definition:
it is determined which resources are flexible, such as CPU, memory, storage, or container instances.
Thresholds and rules are defined that trigger scaling, such as triggering an expansion operation when CPU utilization reaches a certain percentage, or curtailing resources when load drops.
Custom scripts and tools:
if the system is not deployed on the cloud or requires more custom elastic scaling policies, development of custom scripts and tools to implement the elastic scaling may be considered.
Custom flex logic is written using a scripting programming language (e.g., python, bash) or an automation tool (e.g., ansible, chef, puppet).
Resource monitoring and alerting:
integrated with a monitoring system to monitor resource usage and performance metrics.
And configuring alarm rules, and automatically triggering telescopic operation when a telescopic condition is triggered.
Elastic telescoping strategy test:
before the production environment, it is necessary to test the elastic expansion strategy in the test environment to ensure that its normal operation does not cause unnecessary resource waste or problems.
By implementing these steps, an elastic telescoping system can be built that enables multi-tenant systems to automatically expand or contract resources according to load demands to ensure performance isolation and provide high availability. The elasticity and stability of the system can be obviously improved by elastic expansion and contraction.
Specifically, step 5 includes:
selecting a proper load balancer:
load balancers, such as hardware load balancers, software load balancers, cloud load balancers, etc., are selected for the multi-tenant environment. Various load balancers have different characteristics and application scenarios.
Load balancing rules are configured:
load balancing rules are configured to specify how incoming requests are distributed to different tenant application instances. This may be configured based on algorithms such as polling, least concatenation, IP hashing, etc.
Session stiction:
for applications that need to maintain Session state, a Session Affinity function is enabled to ensure that the same user's request is always routed to the same application instance.
Monitoring and automatic detection:
the load balancer is configured to monitor the health of the backend application instances. When an abnormal instance is detected, the load balancer should automatically divert traffic from the failed instance to the normal instance.
Safety considerations:
the load balancer is ensured to have security functions, such as DDoS attack protection, access Control List (ACL) and the like, so as to prevent malicious traffic and security holes.
Horizontal expansion load balancer:
a horizontally extended load balancer can be considered to handle more traffic and improve availability if desired. This may be accomplished by adding a load balancer instance or using an auto-scaling function of the cloud load balancer.
And (3) performance adjustment:
the configuration of the load balancer is periodically evaluated and adjusted according to system load and performance requirements. This may include increasing or decreasing the number of backend application instances, or adjusting the load balancing algorithm.
Failover and redundancy:
failover and redundancy are implemented at the load balancer level to prevent single point failure. This may be achieved by using redundant load balancer instances or hot backups.
By implementing these steps, a robust load balancing system can be established that ensures uniform distribution of incoming requests to application instances of different tenants while providing fault recovery capabilities to provide high availability and performance. Load balancing is a key component of a multi-tenant system, helping to ensure performance isolation between tenants.
Specifically, step 6 includes:
defining a resource quota:
resource quota is explicitly defined for each tenant, including CPU, memory, storage, and bandwidth. These quotas should be determined based on the needs of the tenant, the subscription level, and the contractual agreement.
Service Level Agreements (SLAs) are formulated:
explicit SLAs are formulated, including performance metrics (e.g., response time, availability), support levels, problem response time, etc.
The SLA should be consistent with the resource quota and tenant requirements to ensure that the tenant's expectations are met.
Supervision and compliance checking:
and (3) implementing a supervision mechanism, and periodically checking whether the resource use condition of the tenant accords with defined strategies and rules.
If an out-of-compliance behavior is found, appropriate measures are taken, such as resource limitation, lowering the service level, or notifying the tenant.
Transparent communication:
a transparent communication channel is established with the tenant, ensuring that they are aware of their resource quota, SLAs, and performance isolation policies.
An easy-to-understand document and guide is provided to explain how to efficiently utilize its resources.
Contract management:
and managing tenant contracts, and ensuring that resource allocation and SLAs are complied with within contract deadlines.
Before the contract expires, re-evaluating the resource requirement with the tenant, and adjusting according to the requirement.
Elasticity strategy:
considering implementing an elastic policy, a tenant is allowed to dynamically adjust its resource quota according to requirements.
This may be a self-service based approach, where tenants can expand or contract resources as needed.
Dispute resolution:
dispute resolution policies are formulated to deal with resource disputes or discontents between tenants.
Providing a fast dispute resolution channel ensuring fair and reasonable handling.
Audit and reporting:
resource usage and performance data is periodically audited, and reports are generated to track compliance and performance isolation of tenants.
Reports may be used for transparency between the inside and the tenant.
By implementing these steps, each tenant can be assured of having explicit knowledge of its resource quota and performance isolation policies, while establishing effective supervision and compliance mechanisms to ensure effective implementation of resource usage and performance isolation. This helps maintain the stability and fairness of the multi-tenant system.
Specifically, step 7 includes:
making an inspection plan:
regular censoring plans are formulated, including censoring frequency, scope of censoring and stakeholders involved.
Which aspects need to be reviewed, such as performance isolation policies, resource quotas, SLAs, load balancing, elastic scaling policies, etc.
And (3) data collection:
and collecting relevant performance data and resource use condition data, including actual resource requirements, system loads, performance indexes and the like of the tenant.
The data is obtained using performance monitoring tools, logs, and audit records.
Performance evaluation:
the performance isolation of the system is evaluated to check for signs of performance problems or insufficient resources.
And comparing the actual performance with performance indexes specified in the SLA, and ensuring that the expectations of the tenants are met.
And (3) resource analysis:
the resource usage is analyzed to determine which tenants use a large amount of resources and which tenants may require additional resources.
It is checked whether there is a tenant misusing the resource or underutilizing its resource quota.
Performance problem investigation:
if a performance problem is found, root cause analysis is performed and corrective action is taken, it may be necessary to adjust resource allocation, improve performance optimization strategies, or update hardware devices.
Optimizing strategies:
and optimizing a performance isolation strategy, a resource quota or other strategies according to the examination result.
Consider whether a load balancing rule needs to be changed, a resource pool extended, an automatic scaling rule modified, etc.
Documents and reports:
the results of the censoring and optimization measures are recorded and a report is generated for viewing by stakeholders.
Reports should include findings of reviews, measures taken, improvement plans, and schedules.
Compliance checking:
ensuring compliance with performance isolation policies and resource allocation, whether compliance with regulations and contractual agreements.
Ensuring that any security and compliance requirements are not violated.
Periodically repeating:
the above steps are repeated periodically to ensure that the multi-tenant system continuously meets tenant requirements and performance requirements.
Consider formulating long-term planning to accommodate future growth and changes.
Example two
A multi-tenant-based service providing system, comprising:
a resource pool management module: dividing computing and storage resources of the system into a plurality of resource pools, each resource pool being assigned to one or more tenants; allocating an appropriate resource quota for each tenant, wherein the quota is determined according to the requirements and subscription levels of the tenant;
resource scheduling and management module: dynamically distributing resources according to the resource demands of tenants and the available resource conditions of a current resource pool;
monitoring and feedback module: setting a performance monitoring system, and monitoring the resource use condition of each tenant in real time; according to the performance monitoring data, an automatic adjustment mechanism is realized, and when the load of one tenant is too high, more resources are automatically allocated to the tenant so as to maintain the performance level of the tenant; when the load is reduced, recovering redundant resources for other tenants to use;
elastic expansion module: implementing an elastic expansion strategy, and allowing automatic expansion or reduction of resources according to load requirements;
load balancing module: distributing incoming requests in a multi-tenant environment using a load balancer to ensure that loads are evenly distributed on application program instances of different tenants;
and an implementation strategy module: defining performance isolation policies and rules to ensure that each tenant is aware of their resource quota and restrictions on resource usage;
periodic review and optimization module: performance isolation policies and resource allocations are periodically reviewed to ensure that they remain applicable to changing tenant requirements and system performance.
The above modules are used to implement the functions in the embodiments.
Finally, it should be noted that: the foregoing description is only a preferred embodiment of the present invention, and the present invention is not limited thereto, but may be modified or substituted for some of the technical features described in the foregoing embodiments by those skilled in the art, even though the present invention has been described in detail with reference to the foregoing embodiments. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the scope of the claims of the present invention.
Claims (9)
1. A multi-tenant-based service providing method, comprising the steps of:
step 1: dividing computing and storage resources of the system into a plurality of resource pools, each resource pool being assigned to one or more tenants; allocating an appropriate resource quota for each tenant, wherein the quota is determined according to the requirements and subscription levels of the tenant;
step 2: dynamically distributing resources according to the resource demands of tenants and the available resource conditions of a current resource pool;
step 3: setting a performance monitoring system, and monitoring the resource use condition of each tenant in real time; according to the performance monitoring data, an automatic adjustment mechanism is realized, and when the load of one tenant is too high, more resources are automatically allocated to the tenant so as to maintain the performance level of the tenant; when the load is reduced, recovering redundant resources for other tenants to use;
step 4: implementing an elastic expansion strategy, and allowing automatic expansion or reduction of resources according to load requirements;
step 5: distributing incoming requests in a multi-tenant environment using a load balancer to ensure that loads are evenly distributed on application program instances of different tenants;
step 6: defining performance isolation policies and rules to ensure that each tenant is aware of their resource quota and restrictions on resource usage;
step 7: performance isolation policies and resource allocations are periodically reviewed to ensure that they remain applicable to changing tenant requirements and system performance.
2. The multi-tenant-based service providing method of claim 1, wherein step 1 comprises:
creating a container resource pool using a container orchestration platform, wherein each container can be isolated independently, and containers of different tenants run on the same physical host but are isolated from each other;
ensuring that each container or virtual machine has independent network and storage isolation;
setting resource limits and quotas to ensure that each container or virtual machine can only access its allocated resources;
implementing a monitoring system to monitor the performance and resource usage of each container or virtual machine in real time;
managing creation, destruction and expansion of containers or virtual machines in view of automation tools and scripts;
enforcing security policies to ensure isolation between containers or virtual machines and to prevent possible attacks or exploits;
making a backup and disaster recovery strategy of a container or a virtual machine to protect tenant data and application programs from data loss or hardware faults;
the operating system and application programs of the container or virtual machine are updated periodically to repair vulnerabilities and ensure the security and stability of the system.
3. The multi-tenant based service providing method of claim 2, wherein step 2 comprises:
establishing a resource pool monitoring system to monitor the resource use condition of each resource pool in real time;
knowing the resource requirements and priorities of each tenant to define the resource requirements and service level agreements;
implementing a resource scheduling algorithm to dynamically allocate resources according to tenant requirements and available resource conditions, the algorithm determining resource allocation based on several factors:
priority of tenant: ensuring that high priority tenants obtain more resources;
resource requirements of tenant: allocating resources to tenants requiring more resources;
load balancing: load balance among all tenants in the resource pool is maintained;
elastic expansion and contraction: automatically expanding or reducing resources as required;
realizing an automatic resource scheduling system to automatically allocate and recycle resources according to a scheduling algorithm;
resource reservation or reservation policies are set for critical or high priority tenants to ensure that they can obtain stable resources when needed.
4. A multi-tenant based service providing method according to claim 3, wherein said step 3 comprises:
deploying a performance monitoring system and a monitoring agent or agent aggregator to collect performance data from the multi-tenant system;
defining key performance indexes, and determining a proper threshold of performance according to tenant requirements and system characteristics;
creating a visual instrument board for monitoring performance indexes in real time;
an automatic adjustment strategy is formulated, and resources are automatically allocated or recovered according to the performance monitoring data;
setting an alarm rule for the abnormal performance condition, and triggering an alarm when the performance index exceeds or is lower than a preset threshold value;
the automation scripts and tools are configured to implement automated resource adjustment.
5. The multi-tenant based service providing method of claim 4, wherein step 4 comprises:
determining a flexible resource, and defining a threshold value and a rule for triggering the flexible;
the system is integrated with a monitoring system to monitor the use condition and performance index of resources, and is provided with alarm rules, and when the telescopic condition is triggered, the telescopic operation is automatically triggered.
6. The multi-tenant based service providing method of claim 5, wherein step 5 comprises:
configuring load balancing rules to specify how incoming requests are distributed to different tenant application instances;
for applications that need to maintain session state, session sticky is enabled to ensure that the same user's request is always routed to the same application instance
Configuring a load balancer to monitor health of the back-end application instance, the load balancer automatically transferring traffic from the failed instance to the normal instance when an abnormal instance is detected;
ensuring that the load balancer has a safety function;
configuring a horizontal expansion load balancer to handle more traffic and improve availability;
periodically evaluating and adjusting the configuration of a load balancer according to the system load and performance requirements;
failover and redundancy are implemented at the load balancer level to prevent single point failure.
7. The multi-tenant based service providing method of claim 6, wherein step 6 comprises:
defining a resource quota for each tenant explicitly, the quota being determined based on the needs of the tenant, the subscription level and the contractual agreement;
making a service level agreement, wherein the service level agreement comprises performance indexes, support levels and problem response time; the service level agreement is consistent with the resource quota and the tenant demand to ensure that the expectations of the tenant are met;
implementing a supervision mechanism, and periodically checking whether the resource use condition of the tenant accords with defined strategies and rules; if the non-compliance behavior is found, taking appropriate measures;
establishing a transparent communication channel with tenants, and ensuring that the tenants know the resource quota, the service level agreement and the performance isolation policy of the tenants; providing easy-to-understand documents and guidelines to explain how to effectively utilize its resources;
managing tenant contracts, and ensuring that resource allocation and service level agreements are complied with within contract deadlines; before the contract expires, re-evaluating the resource requirement with the tenant, and adjusting according to the requirement;
considering implementation of an elastic policy, allowing a tenant to dynamically adjust its resource quota according to requirements;
establishing a dispute resolution policy to deal with resource disputes or dissatisfaction between tenants;
periodically auditing the resource usage and performance data, generating a report to track compliance and performance isolation of the tenant, the report for transparency between the inside and the tenant;
strategies and rules are periodically evaluated and refined to reflect changing needs and techniques; based on performance data and user feedback, strategies for performance isolation and resource allocation are continually improved.
8. The multi-tenant based service provision method of claim 7, wherein step 7 comprises:
making a periodic review plan including review frequency, scope of review and stakeholders involved, determining which aspects need to be reviewed;
collecting relevant performance data and resource use condition data, including actual resource demands, system loads and performance indexes of tenants, and acquiring the data by using a performance monitoring tool, a log and an audit record;
evaluating performance isolation of the system to check whether there is evidence of performance problems or insufficient resources; and comparing the actual performance with the performance index specified in the service level agreement to ensure that the expectations of the tenants are met.
Analyzing the use condition of the resources, determining which tenants use a large amount of resources and which tenants possibly need additional resources, and checking whether the tenants misuse the resources or underutilize the resource quota;
if the performance problem is found, analyzing the root cause and taking corrective action;
optimizing a performance isolation strategy and a resource quota according to the examination result;
recording the censoring results and optimization measures, generating a report for viewing by stakeholders, the report including findings of censoring, measures taken, improvement plans, and schedules;
ensuring compliance of performance isolation policies and resource allocation, whether to comply with regulations and contractual agreements, and ensuring that any security and compliance requirements are not violated;
the above steps are repeated periodically to ensure that the multi-tenant system continuously meets tenant requirements and performance requirements.
9. A multi-tenant-based service providing system, comprising:
a resource pool management module: dividing computing and storage resources of the system into a plurality of resource pools, each resource pool being assigned to one or more tenants; allocating an appropriate resource quota for each tenant, wherein the quota is determined according to the requirements and subscription levels of the tenant;
resource scheduling and management module: dynamically distributing resources according to the resource demands of tenants and the available resource conditions of a current resource pool;
monitoring and feedback module: setting a performance monitoring system, and monitoring the resource use condition of each tenant in real time; according to the performance monitoring data, an automatic adjustment mechanism is realized, and when the load of one tenant is too high, more resources are automatically allocated to the tenant so as to maintain the performance level of the tenant; when the load is reduced, recovering redundant resources for other tenants to use;
elastic expansion module: implementing an elastic expansion strategy, and allowing automatic expansion or reduction of resources according to load requirements;
load balancing module: distributing incoming requests in a multi-tenant environment using a load balancer to ensure that loads are evenly distributed on application program instances of different tenants;
and an implementation strategy module: defining performance isolation policies and rules to ensure that each tenant is aware of their resource quota and restrictions on resource usage;
periodic review and optimization module: performance isolation policies and resource allocations are periodically reviewed to ensure that they remain applicable to changing tenant requirements and system performance.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311307727.XA CN117331696A (en) | 2023-10-10 | 2023-10-10 | Service providing system and method based on multiple tenants |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311307727.XA CN117331696A (en) | 2023-10-10 | 2023-10-10 | Service providing system and method based on multiple tenants |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117331696A true CN117331696A (en) | 2024-01-02 |
Family
ID=89276860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311307727.XA Pending CN117331696A (en) | 2023-10-10 | 2023-10-10 | Service providing system and method based on multiple tenants |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331696A (en) |
-
2023
- 2023-10-10 CN CN202311307727.XA patent/CN117331696A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12079667B2 (en) | Virtual systems management | |
US10838803B2 (en) | Resource provisioning and replacement according to a resource failure analysis in disaggregated data centers | |
US20200099592A1 (en) | Resource lifecycle optimization in disaggregated data centers | |
US10044550B2 (en) | Secure cloud management agent | |
US20190340007A1 (en) | Virtual machine consolidation | |
US9680708B2 (en) | Method and apparatus for cloud resource delivery | |
US9882828B1 (en) | System, method, and computer program for planning distribution of network resources in a network function virtualization (NFV) based communication network | |
US20150263906A1 (en) | Method and apparatus for ensuring application and network service performance in an automated manner | |
US20040186905A1 (en) | System and method for provisioning resources | |
US20130007261A1 (en) | Virtual data center monitoring | |
KR20140061524A (en) | Providing dynamic reliability and security in communications environments | |
US20200097348A1 (en) | Health check diagnostics of resources by instantiating workloads in disaggregated data centers | |
US11188408B2 (en) | Preemptive resource replacement according to failure pattern analysis in disaggregated data centers | |
US20150309825A1 (en) | Method and system for supporting a change in state within a cluster of host computers that run virtual machines | |
US9582347B2 (en) | Electronic system configuration management | |
US10761915B2 (en) | Preemptive deep diagnostics and health checking of resources in disaggregated data centers | |
US10944581B2 (en) | Increasing processing capacity of processor cores during initial program load processing | |
US20150263960A1 (en) | Method and apparatus for cloud bursting and cloud balancing of instances across clouds | |
US20200097349A1 (en) | Diagnostic health checking and replacement of resources in disaggregated data centers | |
Luo et al. | Improving failure tolerance in large-scale cloud computing systems | |
US11644876B2 (en) | Data analytics for mitigation of data center thermal issues | |
US11775654B2 (en) | Anomaly detection with impact assessment | |
KR101070431B1 (en) | Physical System on the basis of Virtualization and Resource Management Method thereof | |
Guitart et al. | Risk-driven proactive fault-tolerant operation of iaas providers | |
Endo et al. | Highly available clouds: System modeling, evaluations, and open challenges |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |