Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Distributed Execution Proposal #3218

Open
4 of 14 tasks
na-- opened this issue Jul 20, 2023 · 1 comment
Open
4 of 14 tasks

Distributed Execution Proposal #3218

na-- opened this issue Jul 20, 2023 · 1 comment
Labels

Comments

@na--
Copy link
Member

na-- commented Jul 20, 2023

I know that #140 already exists! 😅 However, that issue has a lot history, unrelated discussion and comments, so at this point it isn't very suitable for actually tracking the work that has been done and that remains to be done on the topic...

#140 is also a generic tracking issue for the "distributed execution" capability and will remain open until that is natively supported by k6, however that happens. While I needed some central place that allows me to link up and explain all of the parts of my specific proposal for how to get there. More specifically, this issue is for tracking the full implementation and delivery of a stable version of the distributed execution PoC that originally started as #2438 and was later further developed in #2816. From the design document that explains it, to the PRs that implement parts of it, to the missing parts that haven't been implemented yet. This issue is for all of that, and I'll just link to it in a #140 comment 😅

I will also be taking a long vacation/sabbatical for the next few months and then gradually moving to another team. Because of that (and somewhat prompted by @ragnarlonn's comments in #140 😅), I thought it made sense to try and write down my thoughts and ideas on the topic. It's very unlikely that I will be able to finish the distributed execution work myself, so I've tried to make what exists as code and ideas in my head as easy to adopt and built upon as it's practical to do before I go away for a while.

Since I won't be around (I might not have been as diligent otherwise... 😅), I've written a design document and refactored the original proofs of concept into backwards-compatible (and so, hopefully merge-able) PRs 🤞

Here is a (hopefully mostly complete) list of tasks that remain:

Planning

Preview Give feedback

Experimental version

Preview Give feedback

Integrate with other k6 products

Preview Give feedback

Local metrics

Preview Give feedback

UX refinement

Preview Give feedback

I've written these tasks in the order I think it makes sense to do them to get the end result with the least amount of effort and time. Though a lot of them can also be done out of order (e.g. HDR histograms can be done first, as was the case originally in the PoC, or tests can be added before some existing PR is merged 😊 😅).

This whole issue and items in the list above can be reordered, removed, added to and checked off at the discretion of whoever picks up this work. And this whole issue can be closed if the approach is considered nonviable and a better alternative exists, without affecting #140.

@dhairav
Copy link

dhairav commented Jul 18, 2024

Hi, we have a similar set of requirements, where we want to spawn up X number of machines for hitting and trying to choke the network of 1 server. Sadly - due to the network interfaces of the target machine being north of 20Gbps capable, we aren't able to choke the server/network using only 1 client machine.
All I want is to be able to run 4 EC2 instances hitting 1 target server and aggregate reports from K6-Agents in one single Grafana dashboard/HTML report.
Any plans to take this proposal live without Kubernetes (I know about k6-operator already)?

@joanlopez joanlopez removed their assignment Jul 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants