Multi-tenant Cloud Deployment Architecture with Pre-configured Environment Pools
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Deploying complex enterprise computing systems in cloud environments is time-consuming and resource-intensive due to the need for automated processes like creating new server environments, which can take several hours even when steps are automated.
Innovation Solution
A multi-tenant computing system architecture with a management cluster and environment clusters, where the management cluster uses a deployment controller to manage and coordinate the creation of computing environments, and environment clusters have configuration modules to efficiently create and manage environments, utilizing pre-generated unassigned environments to reduce latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If conventional automated processes are used to create new server environments, then the deployment can be performed without manual intervention, but the process still takes several hours to complete
Solution Approach 1:
The system pre-creates computing environments in advance and maintains them in an unassigned pool before they are actually needed. When a deployment request arrives, the system can immediately assign a pre-configured environment from the pool rather than creating a new one from scratch, thereby eliminating the several-hour creation process while maintaining full automation.
2Productivity
If computing environments are created on-demand without pre-configured pools, then resource utilization is optimized, but deployment latency increases significantly
Solution Approach 1:
The system performs preliminary actions by pre-creating and configuring computing environments ahead of time, storing them in an unassigned pool. This allows the system to respond to deployment requests immediately by assigning pre-configured environments, thus achieving low-latency provisioning while maintaining resource optimization through on-demand assignment.
Solution Approach 2:
The system changes the state parameter of computing environments from 'unassigned' to 'assigned' when deploying, rather than creating entirely new environments. This parameter change approach allows rapid provisioning by simply changing the status and configuration bindings of existing environments, significantly reducing deployment latency.
3Device complexity
If a single cluster manages all computing environments, then system complexity is reduced, but scalability and geographical distribution capabilities are limited
Solution Approach 1:
The system segments the cluster management into two distinct types: management clusters that handle control plane functions (deployment requests, environment lifecycle management) and environment clusters that handle data plane functions (actual computing environment execution). This segmentation allows the system to scale horizontally across multiple geographical locations while maintaining manageable complexity through clear separation of concerns.
Solution Approach 2:
The management cluster acts as an intermediary between users and environment clusters. It receives deployment requests, selects appropriate environment clusters based on geographical and resource criteria, and coordinates environment creation or assignment. This intermediary approach enables geographical distribution and scalability while keeping the management interface simple and unified.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on computer-storage media, for a deployment architecture for multi-tenant cloud computing systems. In some implementations, a first cluster of processing nodes is configured to run tenant computing environments on behalf of different tenants. A second cluster of processing nodes runs a deployment controller configured to manage and monitor tenant computing environments allocated for the first cluster of processing nodes. A pool of unassigned computing environments is hosted in the first cluster of processing nodes. After receiving a request for a new environment, the deployment controller running in the second cluster of processing nodes coordinates with one or more modules running in the first cluster of processing nodes to update and assign one of the previously unassigned computing environments to be used.


