📣 Virtual Clusters with Zilla: Simplifying Multi-Tenancy in Kafka
Read the Blog Post ➔

Virtual Clusters with Zilla: Simplifying Multi-Tenancy in Kafka

Logically segment a single Kafka cluster to enable multiple independent client groups to operate in isolation.
Ankit Kumar
Team Aklivity

The Problem: Multi-Tenancy and Cluster Management

As more & more teams start using a shared Kafka cluster, managing multiple teams, applications, and workloads presents both operational and organizational challenges. This is a common challenge faced by Kafka administrators in organizations.

To list out few such challenges here:

  • Lack of Isolation: Without logical separation, consumer groups and topics can overlap, causing unintended interactions.
  • ACL Management: Implementing fine-grained access control lists (ACLs) manually across teams is super complicated.
  • Resource utilization: Clients from different teams may consume excessive resources, leading to performance degradation for others.
  • Operational Overhead: Managing such shared Kafka clusters increases maintenance effort, requiring additional monitoring, scaling, and troubleshooting.

Now an obvious thought might be that why don’t we deploy multiple Kafka clusters, depending on the requirements of individual/group of teams/workloads. That comes with its own set of challenges:

  • Resource Inefficiency: Separate clusters often lead to underutilized resources, with some overprovisioned while others struggle with capacity.
  • Higher Costs: Running multiple Kafka clusters increases infrastructure costs.
  • Cross-Cluster Complexity: Sharing data between clusters requires additional tools like MirrorMaker, adding latency and complexity.
  • Operational Overhead: Managing multiple Kafka clusters increases maintenance effort.

A more efficient solution is to logically segment a single Kafka cluster rather than physically separating workloads.

The Solution: Virtual Clusters in Zilla Plus

Virtual Clusters, a feature of Zilla Plus, enable logical segmentation of a single Kafka cluster. This allows multiple independent groups of clients to operate in isolation while sharing the same physical Kafka environment.

Zilla Plus acts as a Kafka proxy, providing this functionality seamlessly while preserving full compatibility with Kafka clients and applications. You can define multiple virtual clusters over the same physical Kafka system, allowing different teams or applications to have isolated environments.

drawing

Key Features

1. Stateless Approach
Zilla’s implementation of Virtual Cluster is stateless, thus eliminating the need to manage custom metadata. Also, enabling the user to spin up additional Zilla Plus instances without the need to bootstrap.

2. Cluster Management
Kafka administrators can manage virtual clusters by issuing namespace-scoped commands to the Kafka cluster. This allows operations like topic creation, ACL updates, and configuration changes to be performed within the context of a specific virtual cluster, while interacting directly with the underlying Kafka Cluster.

3. Virtual Topics
Kafka topics within virtual clusters follow a structured naming pattern:
<virtual_cluster_name>.<topic_name>
This ensures that different virtual clusters can manage topics independently.

4. Virtual Consumer Groups
Consumer groups are also logically segmented using the same naming pattern:<virtual_cluster_name>.<consumer_group_name>
This prevents overlap and interference between different teams or workloads.

5. Virtual Partitions
Partitions in virtual topics are mapped directly to partitions in system topics, maintaining the integrity of Kafka’s partitioning model.

6. Access Control
Virtual ACLs map to Kafka system ACLs, enforcing security rules at the virtual cluster level.

7. Client Quotas
Client quotas can be applied per virtual cluster, ensuring that resource consumption is balanced across tenants.

Mapping

| Virtual Component | System Component | |------------------------|-----------------------------| | Virtual Topic | System Topic (1:1) | | Virtual Partitions | System Partitions (1:1) | | Virtual Consumer Group | System Consumer Group (1:1) | | Virtual ACL | System ACL (1:1) | | Virtual Cluster Quota | System Client Quota (1:1) |

Conclusion

Virtual Clusters in Zilla Plus provide a simple yet powerful way to logically segment Kafka workloads. Whether you need multi-tenancy, enhanced security, or resource isolation, Virtual Clusters enable seamless partitioning of Kafka without modifying your existing infrastructure.

What’s Next?

Virtual Clusters is an exclusive feature available in our Zilla Plus Enterprise Edition. If you're ready to explore how Virtual Clusters can simplify multi-tenancy in Kafka, head over to our AWS Marketplace product page to get started.

Explore the Virtual Clusters documentation for detailed configuration and deployment instructions. Start your free trial of Zilla Plus Enterprise Edition and experience Virtual Clusters in action.

💬 Join the Zilla Community! Share your experiences and questions on Slack. 🚀

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.