Назад | Перейти на главную страницу

Проблемы и стратегии включения / отключения параметров jmx и xdebug для jvms в подах

Я работаю над кодом для одной службы, которая является частью более крупного проекта. Большинство приложений - это службы Java REST, все они работают в контейнерах в модулях.

Для отладки того, что происходит в JVM, удобно добавить один или оба из типичных параметров JMX и Xdebug, чтобы разрешить интроспекцию производительности JVM или пошагово выполнить код в отладчике.

В образе есть сценарий оболочки, запускающий Java. Мне пришло в голову, что было бы удобно, если параметры JMX и Xdebug не присутствуют по умолчанию, но добавить их, если установлена ​​конкретная переменная среды (по одной для каждого набора). Я мог устанавливать или не устанавливать эти переменные среды в спецификации развертывания.

Мне интересно, как оптимизировать рабочий процесс разработчика. Предполагая, что контейнер в настоящее время работает без параметров JMX, например, как я могу упростить для разработчика переход в состояние, в котором JVM теперь работает с этими параметрами JMX?

В нашем процессе сборки / развертывания в настоящее время используется процесс Ansible, с которым я не знаком, что приводит к развертыванию развертывания (я могу видеть его, используя «статус развертывания kubectl», чтобы потом проверить статус).

Предполагая, что мы по-прежнему используем эту стратегию включения env var, «официальный» процесс потребует от разработчика внесения изменений git в спецификацию развертывания, которая будет перестраивать и повторно развертывать все.

Какие шаги я мог бы предпринять, чтобы оптимизировать этот процесс, чтобы минимизировать количество шагов и времени, которые разработчик должен предпринять для переключения параметров JMX (или Xdebug)?

Еще меня интересует, нужно ли мне вообще беспокоиться о том, чтобы параметры JMX присутствовали все время. Он не использует auth или ssl, но неудобно (не невозможно) установить соединение JMX с портом (обычно требуется механизм «переадресации порта»). Мы слишком параноики, чтобы отключить их по умолчанию?