The Proactive Pivot from VMs to Strimzi
Running Kafka on virtual machines (VMs) can feel like a familiar, albeit laborious, path. For Celestina Amadi, leader of Moniepoint's Cloud Engineering team, the existing setup was functional, but a clear-eyed assessment revealed its limitations. The team manages infrastructure powering critical payment and savings products for millions, handling vast transaction and savings data streams. While their Kafka on VMs deployment wasn't actively failing, Amadi recognized the writing on the wall: it wouldn't scale effectively for their projected growth.
The decision to migrate to Strimzi, a Kubernetes-native Kafka operator, wasn't born from a crisis. Reacting to incidents is straightforward; fixing a broken system is a clear objective. Proactive architectural shifts, however, demand foresight. Amadi’s team made a deliberate choice to rebuild, anticipating future bottlenecks before they materialized. This proactive stance is often more challenging than incident response, requiring a deep understanding of systems and a willingness to invest in future stability.
The core motivation was simple: the current setup did not scale. The team concluded that they could engineer a better, more robust solution. This required looking beyond the immediate operational status of their Kafka clusters and envisioning the demands of millions of daily transactions and an expanding user base.
Why Strimzi? The Case for Kubernetes-Native Management
Strimzi simplifies the deployment and management of Apache Kafka on Kubernetes. It abstracts away much of the complexity associated with running distributed systems like Kafka, providing a declarative, operator-based approach. For Moniepoint, this meant moving from manual configuration and management of individual VMs to a more automated, Kubernetes-native paradigm.
Key advantages of Strimzi include:
- Automated Operations: Strimzi handles tasks like rolling upgrades, scaling, and cluster rebalancing, reducing manual intervention and the potential for human error.
- Declarative Configuration: Kafka clusters and their associated components (like Kafka Connect and MirrorMaker) are defined as custom resources in Kubernetes. This allows for version control, GitOps workflows, and easier disaster recovery.
- Resource Optimization: Running Kafka directly on Kubernetes, managed by Strimzi, can lead to better resource utilization compared to managing dedicated VMs. Kubernetes orchestrates pods, containers, and their resource requests and limits more efficiently.
- Developer Experience: For teams already invested in Kubernetes, Strimzi offers a consistent operational model. Developers can interact with Kafka resources through familiar Kubernetes tools and APIs.
The migration wasn't just about adopting new technology; it was about embedding a new way of thinking about infrastructure. Running Kafka on VMs often leads to a mindset focused on individual machine health. Migrating to Strimzi on Kubernetes shifts this focus to the cluster as a whole, treating Kafka as a service managed by an intelligent orchestrator.
Systems Thinking in Practice
The experience underscored several critical lessons in systems thinking, particularly relevant for engineers managing high-throughput, distributed systems. Celestina Amadi's team embraced a philosophy that views the entire infrastructure as an interconnected web, rather than a collection of independent components.
Interdependencies and Bottlenecks
Running Kafka on VMs often masks complex interdependencies. Network latency between brokers, disk I/O contention, and CPU limitations on individual VMs can create subtle bottlenecks. When these issues arise, debugging can become a painstaking process of isolating the failing component, often leading to reactive fixes.
With Strimzi on Kubernetes, these interdependencies are managed more transparently. Kubernetes handles pod scheduling, networking, and resource allocation. Strimzi, in turn, ensures Kafka brokers communicate effectively and are configured optimally within this environment. This shift allows engineers to focus on higher-level system behavior rather than low-level machine performance. The team learned to ask not just "Is this VM healthy?" but "Is the Kafka cluster performing as expected within its Kubernetes environment, and are the upstream/downstream applications consuming/producing data efficiently?"
The Value of Proactive Architecture
The decision to migrate before a critical failure occurred is a testament to robust systems thinking. It requires anticipating future load, understanding the scaling limitations of the current architecture, and having the courage to undertake a significant refactor. This is akin to a city planner deciding to upgrade a bridge's capacity based on projected population growth, rather than waiting for traffic jams to become unbearable.
This proactive approach minimizes costly downtime and the reputational damage associated with service disruptions. It also fosters a culture of continuous improvement, where the team is empowered to build and maintain systems that are not just functional today, but resilient for tomorrow.
Observability as a Foundation
Effective systems thinking is impossible without comprehensive observability. Amadi, a Grafana Champion, emphasizes the importance of metrics, logs, and traces. The transition to Strimzi likely involved refining their observability stack to gain insights into Kafka's behavior within Kubernetes. This includes monitoring Kafka-specific metrics (e.g., request latency, consumer lag, under-replicated partitions) alongside Kubernetes resource utilization (CPU, memory, network). Understanding these interconnected data points is crucial for identifying performance regressions, diagnosing issues, and validating architectural changes.
The team’s experience highlights that running complex distributed systems like Kafka requires more than just technical skill; it demands a strategic, forward-looking perspective on infrastructure management. By choosing Strimzi, Moniepoint is not just managing Kafka; it's building a more scalable, resilient, and observable data streaming platform for the future.

The Broader Implications
Moniepoint's journey from self-managed Kafka on VMs to a Kubernetes-native approach with Strimzi offers valuable lessons for any organization running distributed systems. The move signals a broader trend: as companies scale, the operational overhead and inherent limitations of managing stateful applications on raw VMs become increasingly untenable. Kubernetes, with its robust orchestration capabilities, provides a more scalable and manageable foundation.
For engineers, this means embracing tools and platforms that abstract complexity and enable automation. It also means cultivating a systems-thinking mindset, where the focus shifts from individual components to the holistic behavior of the entire system. This proactive approach, driven by foresight rather than crisis, is the hallmark of mature engineering organizations building for the long term.
