Usługi / Testy obciążeniowe

Wydajność

Wiemy, gdzie system pęka, zanim zrobi to produkcja

k6 odtwarza ruch. Grafana pokazuje p95, błędy i saturację. Kubernetes mówi, czy limit i autoscaling trzymają. ntopng widać, gdy wąskie gardło jest w sieci, nie w aplikacji. Wynik to decyzja o architekturze, nie sam wykres.

Model Scenariusz z analityki, nie z losowego RPS
p95 Wynik związany z SLO, nie z samym throughput
Soak Wyciek i dryf widać po godzinach
Harness Skrypt w repo, do powtórki przed pikem
Jak to składa się w całość

Obciążenie, obserwacja, pojemność, sieć

Sam generator bez dashboardu nie mówi, co skalować. Składamy k6, Grafanę, klaster i widok sieci w jeden wniosek dla architektury.

  • Pierwszy test wydajności i ćwiczenie failover to dwa osobne terminy.
  • Software house może dostać ten sam harness na kolejnym kliencie, ze zmianą modelu ruchu.
k6, web dashboard, request rate, latencja i VUs
01, k6

Scenariusz z analityki, nie z losowej liczby RPS

k6 (i JMeter tam, gdzie już jest) dostaje model: logowanie, checkout, webhook, raport nocny. Spike, soak i stress są osobnymi sesjami. Harness zostaje w repo, da się odpalić przed pikem.

Model

Udział ścieżek z produkcji. Think time, cache, warmup. Bez tego test kłamie.

Rodzaje

Load, spike, soak, stress. Soak łapie wyciek po godzinach, nie po dwóch minutach.

Bramka

SLO w teście: p95, błąd, saturacja. Fail pipeline, gdy budżet pęka.

Powtórka

Ten sam skrypt na stagingu klienta software house i przed kampanią.

Grafana, katalog dashboardów i źródeł danych
02, Grafana

Wykres związany z aplikacją, bazą i kolejką

k6 bez observacji to RPS w próżni. Patrzymy na p95 API, locki bazy, CPU, GC, długość kolejki. Decyzja: indeks, cache, więcej poda, inny limit, nie „dołóż instancji w ciemno”.

Korelacja

VU, latencja, błąd i saturacja na jednej osi czasu.

Warstwy

App, baza, cache, kolejka, storage. Wąskie gardło ma nazwę.

Porównanie

Przed zmianą i po. Ten sam scenariusz, inny build.

Raport

Dla engineeringu i dla produktu: co pęka przy jakim ruchu.

Kubernetes Dashboard, pody, CPU i pamięć
03, Kubernetes

Autoscaling i limity pod ruchem, nie na slajdzie

HPA, PDB i requesty widać dopiero pod obciążeniem. Test pokazuje, czy dobijacie do limitu CPU, do puli połączeń, czy do IP w węźle. Capacity planning wychodzi z pomiaru.

Limity

Throttle CPU wygląda jak wolne API. W teście to widać.

Skala

HPA, node pool, PDB. Czy nowy pod wstaje zanim p95 ucieknie.

Sąsiedztwo

Noisy neighbor i limit namespace. Test na wspólnym klastrze ma osobne wnioski.

Koszt

Większy node group bez potrzeby jest wnioskiem FinOps, nie sukcesem testu.

ntopng, przepływy, aplikacje i klasyfikacja ruchu
04, Sieć

Gdy pęka łącze, DNS albo peer, nie kod

ntopng i metryki krawędzi pokazują, czy test uderza w aplikację, czy w firewall, NAT albo łącze. Chaos i failover są osobną sesją, nie mieszamy ich z pierwszym pomiarem wydajności.

Ścieżka

Generator, krawędź, load balancer, pod. Każdy skok latencji ma warstwę.

Aplikacje

TLS, baza, kolejka. Klasyfikacja ruchu podpowiada, co skalować.

Failover

Osobna sesja: utrata AZ, restart bazy, przełączenie DNS.

Granica

Test DDoS to nie load test produktu. Inny cel, inny playbook.

Operacja

Od modelu ruchu do decyzji

Najpierw analityka i SLO. Potem harness i obserwacja. Na końcu soak, wniosek i ewentualny chaos.

  1. Model Ścieżki, udział, SLO, środowisko, dane testowe.
  2. Harness k6 w CI albo sesja sterowana, dashboardy, baseline.
  3. Pomiar Load, spike, soak. Wąskie gardło z nazwą warstwy.
  4. Decyzja Zmiana architektury, limitu albo kosztu. Ponowny test.
Rozmowa

Omówimy scenariusz ruchu i SLO

Na tej podstawie przygotujemy harness, sesje i raport dla architektury.

Skontaktuj się