Multi-tenant Redis Cluster via Envoy Proxy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Redis instance provisioning and de-provisioning processes are time-consuming and costly, and PaaS vendors' predefined tiers may not align with the Service Consumer's workload needs, leading to inefficient resource usage and increased costs.
Innovation Solution
Implementing a shared cluster platform with a protocol-aware proxy that allows multiple tenants to share a single large data store instance, using unique key elements and authorization passwords to maintain tenant isolation, and leveraging container orchestration for rapid provisioning and de-provisioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a dedicated Redisinstance is provisioned for each tenant, then data isolation and security are ensured, but provisioning time increases and resource usage becomes inefficient
Solution Approach 1:
Multiple tenants share a single physical Redis instance through a multi-tenant architecture, consolidating what were previously separate dedicated instances into one shared resource. This merging reduces provisioning time while maintaining data isolation through logical separation mechanisms.
Solution Approach 2:
The shared Redis instance is logically segmented into separate tenant spaces using key prefixing and authorization mechanisms. Each tenant receives a unique key prefix that prefixes all their keys, effectively dividing the shared memory space into isolated tenant domains while using a single physical instance.
2Reliability
If a dedicated Redisinstance is provisioned for each tenant, then data isolation is ensured, but resource usage efficiency decreases and costs increase
Solution Approach 1:
Multiple tenants share a single physical Redis instance, consolidating resource usage across multiple dedicated instances. This merging improves resource utilization efficiency by eliminating idle resources in underutilized dedicated instances while maintaining data isolation through logical separation.
Solution Approach 2:
The shared Redis instance serves multiple tenants simultaneously, making it a universal platform that can accommodate various workloads. The instance performs multiple functions for different tenants while maintaining isolation, improving overall resource efficiency compared to dedicated single-tenant instances.
3Ease of manufacture
If PaaS vendor predefined tiers are used, then setup is simplified, but workload-specific optimization is lost leading to inefficient resource usage
Solution Approach 1:
The system provides dynamic resource allocation where tenants can request and receive customized resource configurations based on their actual workload needs. The shared instance can be dynamically configured with different memory allocations, retention policies, and access controls tailored to each tenant's requirements, moving away from static predefined tiers.
Solution Approach 2:
The system allows changing resource parameters such as memory allocation, instance size, and configuration settings based on actual workload demands. Tenants can adjust these parameters dynamically to optimize performance for their specific workloads while sharing the physical infrastructure, rather than being locked into fixed PaaS tiers.
4Productivity
If a shared cluster platform is implemented, then provisioning time is reduced and resource efficiency is improved, but system complexity increases
Solution Approach 1:
An intermediary layer is introduced between the tenant applications and the shared Redis instance. This intermediary manages the complexity of multi-tenancy by handling key prefixing, authorization, and resource allocation automatically, shielding tenants from the underlying shared infrastructure complexity while enabling rapid provisioning.
Solution Approach 2:
The system implements self-service mechanisms where tenants can autonomously provision, configure, and manage their own spaces within the shared Redis instance. Automatic key prefix assignment, authorization token generation, and resource allocation occur without manual intervention, reducing provisioning time while the system manages the complexity internally.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A GUI controller design support device is provided that can support the programming of a controller device that is capable of changing control and/or graphic representation flexibly and in real time. The GUI controller design support device supports the designing of a GUI controller that is displayed on a touch-sensitive panel display of an input device and that receives an operation input for operating a target device. The GUI controller design support device is provided with: a GUI controller editing unit for editing a controller set, the controller set being configured by a plurality of controller parts and defining the GUI controller; and a user program editing unit for editing a user program, the user program defining control of the target device in response to the operation input to the GUI controller.