Отладка прикладного решения
Contents
Отладка прикладного решения#
Предупреждение
Экспериментальная функция, работает только на Java 21
Иногда программную ошибку не получается воспроизвести на тестовых стендах. В таких случаях, gs-ctk позволяет создать среду для отладки прикладного решения в условиях, максимально приближенных к тем, в которых работает основной кластер.
Для этого создается под, в котором стартует тот же сервер приложений, что и обычно, но с включенной подсистемой отладки Java. В поде также есть дополнительный сопровождающий контейнер со средой OpenVSCode Server, подключенной к данной подсистеме. Обычные пользователи не могут подключиться к данному поду без особой ссылки.
Инструкция по отладке#
Требования:
gs-ctk версии
>=5.0
настроенная работающая группа ресурсов с включенными книгами ресурсов
global_server_share
иhaproxy
наличие в комплекте приложений архива
appsrc.zip
, содержащего исходные файлы проекта.
Администратор включает отладку при помощи команды nsctl:
~/nsctl $ ./cloud_debugger.sh start --group [имя группы ресурсов]
Выберите книгу ресурсов, которую необходимо взять за основу облачного отладчика:global-server-share Введите запрос CPU для debugger:2 Введите запрос MEMORY для debugger:2G Введите лимиты CPU для debugger:4 Введите лимиты MEMORY для debugger:12G Желаете посмотреть или изменить характеристики и значения книги ресурсов отладчика?[да,нет]:нет Укажите максимальную длительность работы облачного отладчика в секундах:3600 Запускаем облачный отладчик! Облачный отладчик будет доступен до 10:25:54 UTC 19.03.2025 Ожидаем готовности облачного отладчика... Ожидаем готовности облачного отладчика... Ожидаем готовности облачного отладчика... Облачный отладчик готов к использованию! Для доступа к отладчику перейдите по ссылке: (http://example.ru)/debugger/open/gs-cluster-1-debugger-1b0e4084?debugger%2Fvscode%2F%3Ftkn%3Dba0211cf-cd8a-4ba5-b2a2-a5d1791e587b%26folder%3D%2Fuser%2Fapplication Чтобы подключиться к серверу приложений, связанному с отладчиком, перейдите по ссылке: (http://example.ru)/debugger/open/gs-cluster-1-debugger-1b0e4084?login%2Flogin.html
Совет
Команду можно запустить в неинтерактивном режиме, читайте подробнее справку
./cloud_debugger.sh start --help
Подстроку
(https://example.ru)
надо подменить на имя хоста, к которому обращается пользователь для подключения к HAProxy. Например:https://globalerp.mycompany.ru/debugger/open/gs-cluster-1-debugger-1b0e4084?debugger%2Fvscode%2F%3Ftkn%3Dba0211cf-cd8a-4ba5-b2a2-a5d1791e587b%26folder%3D%2Fuser%2Fapplication
Администратор передает ссылки лицам, проводящим отладку (далее - разработчикам).
Разработчик переходит в отладчик и на сервер приложений по ссылкам.
Разработчик подтверждает, что он находится в доверенном каталоге
/user/application
, и переходит во вкладку Metals на боковой панеле.В течении 30 секунд должна начаться индексация проекта. Дождитесь завершения. После этого в верхней части вкладки Metals появится список используемых модулей и библиотек.
Если индексация не началась, или после ее завершения модули не появились, нажмите «Import build» в секции «Build Commands» вкладки Metals.
Разработчик открывает нужные модули или библиотеки, устанавливает точки остановы, кликая слева от номера нужной строки.
Разработчик переходит на вкладку Run and Debug боковой панели, нажимает кнопку «Start Debugging».
Отладчик включен и подключен к серверу приложений, интерфейс которого доступен через вторую ссылку. Лог сервера приложений доступен по адресу /user/application/globalserver.log
.
Неуправляемый режим#
Облачный отладчик доступен как класс книги ресурсов debugger
. Добавьте эту книгу в конфигурацию неуправляемого режима при помощи ./namespace.sh configure_unmanaged
(читайте подробнее в статье о неуправляемом режиме), затем создайте и примените новые ресурсы. Ссылки для подключения, можно получить, выполнив в контейнере отладчика команду ./service.sh get_urls
.
Безопасность#
В ссылку для отладчика вписан токен для подключения, который используется для авторизации в OpenVSCode Server. Следовательно, без этой ссылки подключиться к отладчику невозможно.
В будущих версиях, способ авторизации может измениться.
OpenVSCode Server работает в отдельном контейнере от имени непривилегированного пользователя, не имеет прямого доступа к секретам и файловым системам других контейнеров.
Доступ к логам и подсистеме отладки предоставляет пользователю OpenVSCode Server широкие возможности по взаимодействию с системой. В будущем они будут ограничены специальным прокси-сервером протокола отладки.