Дискорд-боты

Выберите чистый стек для размещения бота Discord

Большинство ботов терпят неудачу не только из-за кода. Они терпят неудачу, потому что среда неопрятна: открытые секреты, отсутствующие журналы, случайные перезапуски или отсутствие контроля.

1. Choose a runtime that you know how to maintain

Прежде чем искать самый быстрый, выберите наиболее читабельный для вашего проекта. Node.js и Python уже охватывают большую часть случаев использования Discord. Реальный выигрыш достигается за счет воспроизводимой среды: фиксированная версия времени выполнения, известные зависимости и переменные среды, отделенные от кода.

Четко определите версию среды выполнения, используемой в производстве.
Never store the bot token in the repository.
Задокументируйте минимальные ожидаемые переменные и разрешения.

2. Логи, здоровье и перезагрузка

Автоматический перезапуск полезен, но этого недостаточно. Если бот зацикливается на тихой ошибке, он немедленно перезапустится, не исправляя проблему. Поэтому необходимо объединить политику перезапуска, читаемые журналы и контрольную точку работоспособности.

Зафиксируйте ошибки инициализации библиотеки Discord.
Сохраняйте критические события: подключение, отключение, квоты, сбои.
Check that a restart does not erase the index useful for debugging.

3. Раздельное исполнение, хранение и модерация

Когда бот растет, его проблемы больше не связаны только с кодом. Необходимо уточнить базу данных, временные файлы, разрешения Discord и ведение журналов. Чем больше проект становится основанным на сообществе, тем больше необходимо отличать уровень приложения от уровня модерации и поддержки.

Определите, что должно пережить передислокацию.
Спланируйте, куда будут помещаться резервные копии и кто сможет получить к ним доступ.
Определите канал поддержки до инцидента, а не во время него.