Highly Distributed Load Test

My company, Neocortix, operates a fleet of thousands of powerful 64-bit Arm compute nodes around the world. For several months, we have been doing highly distributed “last mile” load testing using Locust, and we would like to do the same thing, only better, using K6.

We already have the “local” (standalone) mode of K6 running on our systems.

I know there is a not-yet-supported “clustered” mode, and the K6 cloud offering does something like this already. Is the K6 cloud service open-sourced? Or, does anyone have a recommendation on how to implement a similar kind of orchestration of highly distributed testing using K6?

Is this the best place to ask this type of question?

Hey @neocortix_0

The SaaS k6 cloud offering is not open source. Load Impact AB is the for-profit commercial company developing and stewarding the k6 project. The k6 cloud is our commercial offering that complements k6 OSS. I’m sure you can understand our interests in that regard :slight_smile:

Regarding clustered mode - As you can see from the issue it’s still an open issue for k6 OSS. It’s something our k6 devs plan to develop, but there has been work prioritized ahead of it for a variety of reasons (PR 1007 being a major one as it refactors a lot). We welcome comments and PRs from the community so I encourage you to participate in the particular issue on GitHub.

A final thing to note as it sounds like you are exploring building a service that uses k6, do note that k6 is licensed under the AGPLv3.0 and there are some restrictions that come with that license. Earlier this year a question was asked regarding the license that touches on those restrictions: K6 licensing AGPLv3 - #2 by robin

Hi @neocortix_0,

My company is doing something similar. I have a dedicated server running InfluxDB and Grafana. An automation pipeline uses Terraform to create/configure (including installing k6) a bunch of vmware VMs, execute a test simultaneously on all of them, then destroy the VMs. The metrics are reported to the central InfluxDB instance (which is not destroyed, of course).

This allows a k6 script and Terraform config (VM count, CPUs, RAM) to be created for each team and/or project that can be executed on-demand across a desired number of VMs.



Hi Steve,

That sounds pretty interesting. Approximately how many instances do you use, and how often do you do the tests?

Hi @neocortix_0,

The VMs are spread across two VMware datacenters. We’re still building this out, but our goal is to support a max of 25 VMs per DC (total of 50). Each running a single instance of k6 with 500+ virtual users. During testing, I’ve been executing multiple tests per hour :slight_smile:

A lot of it is specific to our infrastructure, so I’m not sure if sharing more technical details would be helpful to you, but the core technology is Terraform automated by GitLab-CI. In general, I’m pretty happy with how it’s turning out.