Внедрение ошибок задержки в приложениях инфраструктуры VertX / Spring на уровне приложений - PullRequest
0 голосов
/ 22 апреля 2020

Я проверил ChaosMonkey , который предназначен только для платформы Springboot. Кроме того, Pumba tool , но это похоже на внедрение ошибок на уровне инфраструктуры, требующее root доступа к системе.

Я ищу помощь, чтобы вызвать инжекцию ошибок задержки на уровне приложений в приложениях VertX на OpenShift. Есть ли рекомендуемая библиотека / инструмент для использования?

1 Ответ

1 голос
/ 23 апреля 2020

В 2018 году я представил в Codemotion Amsterdam разговор о хаосе. Для этого разговора я использовал pumba и vert.x. Для справки, ChaosMonkey не имеет отношения к Spring, его можно использовать с любым приложением, но если вы проверите презентацию https://www.jetdrone.xyz/presentations/codemotion-amsterdam-2018, вы увидите, как использовать pumba.

В ореховая скорлупа:

Если вы хотите проверить нагрузку / DDoS, вы можете использовать wrk или любой другой инструмент для нагрузочного тестирования, например:

wrk -t4 -c400 -d60s http://paas-myproject.127.0.0.1.nip.io/

Вы можете проверить отключение сети:

# package loss
pumba --debug netem --duration 1m \
  --tc-image gaiadocker/iproute2 \
  loss -p 20 -c 10 "re2:.*paas.*"

# Introduce latency
pumba --debug netem --duration 1m \
  --tc-image gaiadocker/iproute2 \
  delay --time 500 "re2:.*paas.*"

# Introduce latency (2)
pumba --debug netem --duration 1m \
  --tc-image gaiadocker/iproute2 delay \
  --time 100 \
  --jitter 30 \
  --correlation 20 \
  "re2:.*paas.*"

Или сбой / сбой сервера:

pumba --random --interval 1m \
  kill --signal SIGKILL "re2:.*paas.*"

Обратите внимание, что во всех примерах есть регулярное выражение "re2:.*paas.*". Это сделано для того, чтобы pumba влияла только на контейнеры, относящиеся к нашему приложению, а не на другие необходимые контейнеры из openshift или других приложений.

Для этого вам нужно быть уверенным, что ваше приложение названо простым способом. отфильтровать при выполнении:

docker ps
...