In the fast-paced world of cloud-native development, speed is often prioritized over stability. Yet, as systems grow in complexity, the "move fast and break things" mantra hits a wall: the production environment. In a recent episode of his podcast, consultant and testing expert Richard Seidl sat down with Stephan Schwarz, a Senior DevOps Consultant at iits-consulting, to dissect a critical, often neglected aspect of the software lifecycle: load testing in Kubernetes environments.

The conversation reveals a startling reality—most enterprises avoid load testing entirely, treating it as an afterthought or a "nice-to-have." For those who do engage, the approach is frequently flawed. According to Schwarz, the industry needs a paradigm shift in how we view performance: it is not merely a technical benchmark, but a fundamental business decision.


The Core Philosophy: Performance as a Business Decision

Stephan Schwarz cuts through the technical jargon with a provocative assertion: "If I don’t test my product, my customer will."

For Schwarz, a load test is not just a collection of metrics or a green-check-mark exercise in a CI/CD pipeline. Instead, it serves as the foundation for high-stakes business decision-making. Every company operates under a certain risk profile. Does the enterprise accept the risk of a system crash during a Black Friday surge? Or is the cost of mitigation—through optimized infrastructure or refactored code—lower than the cost of downtime?

A load test, when executed correctly, provides the empirical data required to answer these questions. It quantifies the risk, proves whether a mitigation strategy actually works, and allows stakeholders to align technical constraints with business objectives.


Chronology of a Failed Strategy: Why Enterprises Hesitate

During the discussion, Seidl and Schwarz explored why organizations, despite the maturity of modern tooling, continue to shy away from performance engineering. The trajectory of this neglect usually follows a predictable, albeit detrimental, path:

  1. The "It Works on My Machine" Fallacy: Early in the development cycle, performance is ignored because individual microservices seem lightweight. The complexity of the interconnected Kubernetes cluster is underestimated.
  2. The Infrastructure Over-Provisioning Trap: Instead of testing, teams often rely on over-provisioning—simply throwing more RAM and CPU at the cluster to "solve" latency. This leads to massive cloud bills and masks underlying performance bottlenecks.
  3. The Fear of the "Lab": When companies do decide to test, they often create overly complicated, isolated lab setups that bear little resemblance to reality. They disable autoscaling to get "clean" numbers, inadvertently removing the very mechanisms that keep the system alive under real-world pressure.
  4. The CI/CD Bottleneck: Finally, when teams try to integrate load tests into their pipelines, they fail due to brittle test suites, slow execution times, or lack of clear ownership. The tests become an annoyance rather than a guardrail, and they are eventually silenced.

Supporting Data: Common Failure Points in Kubernetes

Drawing from his extensive project experience, Schwarz highlighted the recurring technical culprits that lead to system failure under load. These are not merely bugs, but architectural vulnerabilities inherent to the Kubernetes paradigm:

1. The "Invisible" Caching Issues

Many applications fail not because of processing power, but because of improper cache management. In a distributed environment, if a cache is not configured for horizontal scalability, it becomes a single point of failure (SPOF) that collapses under even moderate traffic.

2. External Dependencies (The OIDC Provider Trap)

A common oversight is testing the application in isolation while forgetting the external services it relies on. Schwarz notes that many systems fall over because their OIDC (OpenID Connect) providers or external authentication services cannot handle the authentication volume generated by a high-load scenario. The application itself might be perfect, but the bottleneck lies in the external handshake.

3. The Resource Neglect

Before even discussing advanced performance tuning, Schwarz emphasizes the "basics": Resource Requests and Limits. Many teams deploy containers to Kubernetes without defining explicit CPU and memory limits. This leads to "noisy neighbor" scenarios where one microservice consumes cluster resources, starving others and causing non-deterministic system behavior that is impossible to debug during a production incident.

Software Testing: Ein Lasttest ohne Risikofrage ist verschwendete Lebenszeit

The Path Forward: Integration and Ownership

Richard Seidl questioned how to transition from these isolated, often siloed, testing efforts into a cohesive, organization-wide culture. The solution, according to the experts, lies in breaking down the barriers between DevOps, Developers, and QA.

Shifting Left and Right

Performance testing cannot be the sole domain of a "Test Team." It must be a shared responsibility.

  • Developers need to write code with performance implications in mind.
  • DevOps Engineers must build platforms that are inherently "testable."
  • QA must move beyond functional testing and act as performance advocates, providing the tools and context for others to run tests.

Pragmatic Lab Setups

Rather than creating an exact, expensive replica of the production environment, Schwarz advocates for "pragmatic labs." By using tools that simulate traffic patterns effectively, teams can gain actionable insights without needing to recreate the entire enterprise footprint. The focus should be on the behavior of the system under stress, not on perfect architectural replication.


Implications for Modern Software Development

The implications of this conversation are clear: the industry is entering an era where reliability is a competitive advantage. As software architectures move toward deeper integration with Kubernetes, the complexity of these systems will only increase.

The Cost of Inaction

Companies that fail to adopt a rigorous approach to load testing are essentially operating on borrowed time. When a system fails in production, the cost of the outage—measured in lost revenue, customer trust, and developer burnout—far outweighs the investment required to build a sustainable testing culture.

A New Mindset

Stephan Schwarz’s approach is a plea for sanity. He envisions a world where performance testing is not a "therapeutic" experience required after a major incident, but a proactive, continuous part of the development lifecycle. By setting clear resource limits, understanding external dependency constraints, and tying testing to business risk, organizations can build software that doesn’t just function, but excels.


Conclusion: The Expert Perspective

Richard Seidl’s podcast series continues to serve as a vital resource for the software engineering community, emphasizing that quality is not just a technical metric, but a reflection of the people, context, and processes behind the product.

As we look toward the future, the integration of performance testing into the CI/CD pipeline—and more importantly, into the mindset of the engineering team—will be the defining factor for companies that succeed in the cloud-native landscape.

For those looking to dive deeper, the full conversation between Seidl and Schwarz provides a roadmap for this transition, offering both technical guidance and the strategic vision necessary to lead high-performing teams.

The full interview is available on Richard Seidl’s blog and YouTube.