Сторонние сервисы на страже вашего приложения. Самостоятельно админоботим
Столкнулся с такой ситуацией, что когда одновременно существует несколько сервисов, которые запущены на разных vps, и работа над этими сервисами в текущий момент времени особо активно не ведется, то при возникновении каких-либо проблем (вырубились все докер контейнеры или pm2 перестал поддерживать запущенный процесс), о данном факте узнаешь не сразу и приходится оперативно ручками через ssh и консоль лезть на впс и решать проблему. В большинстве случаев такие ситуации решаются банальным повторным запуском pm2 и докер контейнеров, но нервотрепка по итогу та еще, в общем, отстой.
Конечно, я посмотрел на готовые решения и из оказалось вагон и маленькая тележка.
Часть решений была в виде телеграм ботов, часть решений была специализированная. У специализированных решений для себя отметил следующие недостатки:
1) Разные инструменты для pm2 и докера. Смысл ради упрощения работы с vps устанавливать две программы и усложнять по итогу работу?
2) Излишний функционал на текущий момент готовых решений. Ирония, какого-то функционала нет, а какой-то излишний;
С телеграмм ботами все просто, такого и я могу написать и попрактиковаться.
Поэтому я вооружился языковыми моделями, средой разработки и решил писать своего телеграмм бота, назовём его «админобот», у которого будет возможность показывать текущий статус докер контенейров, pm2 и перезапускать их. Плюсом к этому решил бота написать на котлине, так как не имел полноценного опыта работы с ним, а так, только баловался.
Код представлять не буду, если проект покажет свою состоятельность и удобность, то просто выложу его в публичный доступ на гитхабе. А сейчас просто расскажу и покажу, что по итогу получилось. В первую очередь, админобот запускается в докер контейнере и абсолютно никак не связан с другими сервисами и приложениями.
Минимальный функционал и максимально быстро в реализации, все, как я люблю. Дабы не заморачиваться с гитхабом/гитлабом решил просто собирать проект у себя на компьютере и копировать .jar файл на впс, неплохое решение в итоге оказалось. Для полноценного использования админобота необходимо будет сделать следующее:
Сейчас бот запускается в докер контейнере, если докер по какой-то причине упадет, вместе с ним упадет и админобот, проблема, надо как-то решать данную задачу. Есть парочка мыслей;
Добавить пинг, чтобы через определённый момент времени бот писал, что все процессы запущенны и корректно работают;
Добавить возможность запуска (не перезапуска) необходимых процессов, возможность выключения и сборки (build) контейнеров.
Вроде все, кажется, ничего не забыл.
Ну а так вроде все пацаны и пацанята, коты и котанята. Надеюсь, стало немножечко понятнее, что вообще в этом мире происходит. Ну и не забываем, я разработал чат-рулетку в виде мини-приложение в telegram, как говорится welcome t.me/Twittly_bot/twittly. Затестите, вам не сложно, мне приятно!!!))).
Ссылка на мой telegram канал t.me/socionyxchannel, you are welcome too, где я пишу про будни разработчика.







