Multi-tenant software is architected to host multiple tenants sharing the same infrastructure. Amazon Web Services, Microsoft Azure, SalesForce, etc. are popular examples of multi-tenancy. Redis Enterprise Cloud, offered by Redis, is also a multi-tenant service with over 500,000 Redis databases sharing the Redis Cloud platform.
Redis Enterprise software allows you to create such a multi-tenant environment on-premises or in any infrastructure you control. But why would you need such an environment?
If your organization develops a series of in-house applications and microservices, then a multi-tenant environment can save you time and money. Application lifecycles typically include development, testing and staging before production deployment. For fast time-to-market, you need a solution that will take your application through development, testing, staging and production rapidly. A multi-tenant architecture eliminates the setting up of new physical infrastructure for your software, and installing new supporting software (a database for example) in your development, testing and production environment. It enables you to execute multiple development efforts and testing cycles in parallel with little effort.
A multi-tenant architecture is different from a multi-instance architecture. In the latter, you install a new instance of the software for each tenant. The picture below illustrates an example of multi-instance architecture for Redis. In this type of scenario, you spawn a new Redis instance for every tenant. As the number of your tenants grow, the complexity of deploying, monitoring, maintaining and upgrading multiple software instances grow exponentially.
In this case, you deploy Redis as a container or a virtual appliance and allow the underlying management solution to spawn a new Redis instance. Multi-tenancy is achieved at the server/infrastructure layer. In many ways, this technique of achieving multi-tenancy is not very different from the multi-instance setup. While the management layer reduces the complexity of provisioning and starting a new Redis service, you still have the same number of Redis services to monitor and manage. Typically, third party Redis-as-a-Service vendors such as Elasticache, Azure Redis, Google Redis and Heroku Redis follow this method. These solutions are priced per Redis instance. The effects of scale and scope economies benefit these service providers more than you.
Redis Enterprise offers software multi-tenancy in which a single deployment of Redis Enterprise Software (often deployed as a cluster of nodes) serves hundreds of tenants. Each tenant has its own Redis database endpoint which is completely isolated from the other Redis databases.
When you deploy Redis Enterprise in your data center, private cloud or a virtual private cloud, you benefit from the scope economies of the multi-tenant architecture. With a single Redis Enterprise cluster of a few nodes, you can support your development and testing efforts and then take it to production.
Redis Enterprise architecture implements multiple layers of abstraction to deliver multi-tenancy, high availability, linear scaling, high throughput, etc. Redis Enterprise architecture is comprised of the following components:
You may deploy multiple databases in a Redis Enterprise cluster; you are only limited by the total memory size. Every database endpoint has an FQDN. The zero-latency proxies on all of the nodes in a cluster can redirect client requests to the appropriate primary (master) database.
Redis Enterprise’s multi-tenancy solves many problems:
Redis Enterprise is a market-proven, multi-tenant solution. Redis Cloud is indeed Redis Enterprise’s multi-tenant service. Built-in controls within Redis Cloud ensure that all databases’ throughput and latency requirements are being met, while being shielded from “noisy neighbors” and while staying highly available in scaled out, distributed environments.
Redis runs more than 500,000 database endpoints on all the popular public cloud platforms: AWS, Azure, GCP and SoftLayer. Redis Enterprise Software is deployed as a multi-tenant software in over 300 enterprises. Read our documentation to learn how to create and maintain databases in a multi-tenant environment.