Я работаю над кодом для одной службы, которая является частью более крупного проекта. Большинство приложений - это службы Java REST, все они работают в контейнерах в модулях.
Для отладки того, что происходит в JVM, удобно добавить один или оба из типичных параметров JMX и Xdebug, чтобы разрешить интроспекцию производительности JVM или пошагово выполнить код в отладчике.
В образе есть сценарий оболочки, запускающий Java. Мне пришло в голову, что было бы удобно, если параметры JMX и Xdebug не присутствуют по умолчанию, но добавить их, если установлена конкретная переменная среды (по одной для каждого набора). Я мог устанавливать или не устанавливать эти переменные среды в спецификации развертывания.
Мне интересно, как оптимизировать рабочий процесс разработчика. Предполагая, что контейнер в настоящее время работает без параметров JMX, например, как я могу упростить для разработчика переход в состояние, в котором JVM теперь работает с этими параметрами JMX?
В нашем процессе сборки / развертывания в настоящее время используется процесс Ansible, с которым я не знаком, что приводит к развертыванию развертывания (я могу видеть его, используя «статус развертывания kubectl», чтобы потом проверить статус).
Предполагая, что мы по-прежнему используем эту стратегию включения env var, «официальный» процесс потребует от разработчика внесения изменений git в спецификацию развертывания, которая будет перестраивать и повторно развертывать все.
Какие шаги я мог бы предпринять, чтобы оптимизировать этот процесс, чтобы минимизировать количество шагов и времени, которые разработчик должен предпринять для переключения параметров JMX (или Xdebug)?
Еще меня интересует, нужно ли мне вообще беспокоиться о том, чтобы параметры JMX присутствовали все время. Он не использует auth или ssl, но неудобно (не невозможно) установить соединение JMX с портом (обычно требуется механизм «переадресации порта»). Мы слишком параноики, чтобы отключить их по умолчанию?