Slide 1

Slide 1 text

Paul Balogh Developer Advocate, k6 OSS @javaducky Running distributed load tests with k6

Slide 2

Slide 2 text

By bringing k6 and Grafana together, we enable teams to radically improve the time to prevent, detect, and remediate problems before they impact end users. Raj Dutt Grafana Labs CEO/Co-founder

Slide 3

Slide 3 text

Overview 1 2 3 4 What is k6? What is load testing? Introducing the k6-operator Where do we go from here?

Slide 4

Slide 4 text

A reliability testing tool.

Slide 5

Slide 5 text

Integration Testing Contract Testing k6: a reliability testing tool Browser Automation (E2E) Load Testing Functional Testing Chaos Testing

Slide 6

Slide 6 text

Although it’s easy to get started with k6 [OSS] all on its own, it really shines with its ease of integration into a developer ecosystem. Thoughtworks Technology Radar April 2021

Slide 7

Slide 7 text

OSS is at the heart of what we do and helps leave the world a little better than we found it CLI and API designed for automating your tests with pass/fail criteria using JavaScript syntax A k6 engine written in Go making it one of the the best performing tools available Use Go(lang) code to add support for new outputs, protocols, and products from within your test scripts OpenSource Scriptable Performant Extensible k6: a reliability testing tool

Slide 8

Slide 8 text

JAVASCRIPT RUNTIME GOJA (https://github.com/dop251/goja) GO xk6 EXTENSIONS k6: a reliability testing tool JAVASCRIPT

Slide 9

Slide 9 text

Overview 1 2 3 4 What is k6? What is load testing? Introducing the k6-operator Where do we go from here?

Slide 10

Slide 10 text

Load testing is the process of putting demand on a system and measuring its response. The Internet Knower of all things

Slide 11

Slide 11 text

● Performance testing == load testing ● It is only for large companies ● Is expensive to do ● Should only be in production ● Unnecessary if you have o11y Myths about load testing

Slide 12

Slide 12 text

UX Why do load testing today?

Slide 13

Slide 13 text

Why do load testing today? SLOs Proactively test

Slide 14

Slide 14 text

Common types of load tests Average and Peak test Soak test Spike test Breakpoint test

Slide 15

Slide 15 text

Constant Arrival Rate Ramping Arrival Rate Ramping VUs Per VU iterations Constant VUs Shared iterations Modeling your load tests

Slide 16

Slide 16 text

Overview 1 2 3 4 What is k6? What is load testing? Introducing the k6-operator Where do we go from here?

Slide 17

Slide 17 text

Same k6 test script, multiple execution modes! Custom Resource Definition (CRD) launcher kubectl create cm test-scripts –from-file=script.js

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

57 configurable options → https://k6.io/docs/using-k6/k6-options/reference/ CLI flags ENV variables Script options Default Config file Order of preference Worker nodes

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Overview 1 2 3 4 What is k6? What is load testing? Introducing the k6-operator Where do we go from here?

Slide 22

Slide 22 text

The “Golden Signals” Network quality, Geolocation Special events, Cyber attacks Bugs, 500s, Security/Auth Underprovisioning, Infra issues

Slide 23

Slide 23 text

Pre-production Production Virtual User traffic Real User traffic Virtual User traffic System in Pre-prod System in production Proactively improve reliability

Slide 24

Slide 24 text

k6.io/slack grafana/k6 community.k6.io Connect with Paul as @javaducky or linkedin/in/pabalogh Demonstration project available at github.com/javaducky/demo-k6-operator Thanks for participating!