Как я Telegram бота на Go писал. Часть пятая. Dockerизируй это!

На днях наконец-то решил добраться до такой хайповой темы как Docker:

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами. Изначально использовал возможности LXC, с 2015 года применял собственную библиотеку, абстрагирующую виртуализационные возможности ядра Linux — libcontainer. С появлением ​Open Container Initiative начался переход от монолитной к модульной архитектуре. (Википедия)

И, в качестве эксперимента, решил развернуть одного из своих ботов на VDS внутри контейнера для простоты переноса и развёртывания. Бот написан на Go и, соответсвенно, это делает развёртывание немного нетривиальным (на самом деле, если читать документацию и уметь пользоваться поисковыми системами, то всё довольно просто).

Continue reading

Advertisements

Как я Telegram бота на Go писал. Часть четвёртая. Аналитическая.

После того, как бот был написан, прокачан и опубликован (на vscale или на heroku, например) возникает вопрос отслеживания того, как пользователи с ним общаются. Для этих целей можно воспользоваться, например, решением botan.io от Yandex.

Botan – обёртка над AppMetric – версии Метрики для мобильных приложений. Платформа позволяет собирать большинство событий бота и отображать их в панели Метрики (со всеми доступными отчётами). Сейчас ботан умеет работать только с ботами для Telegram, но мне этого вполне достаточно.

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

Continue reading

Как я Telegram бота на Go писал. Часть третья. Публикация.

В предыдущих частях был разработан и улучшен бот, помогающий найти заклинания для Dungeon and Dragons.

Теперь требуется разместить бота на какой-либо платформе. Рассмотрим два варианта: vscale.ru и heroku.
Continue reading

Как я Telegram бота на Go писал. Часть вторая. Прокачиваем бота.

В предыдущей части был написан бот, который по заданному имени или части имени находит подходящие и показывает пользователю в отдельных сообщениях.

В этот раз немного улучшим его: улучшим форматирование, добавим inline-режим и реализуем пару команд. Continue reading

Как я Telegram бота на Go писал. Часть первая. Начало.

В этой серии заметок хотел бы немного коснуться данной темы. Серия будет включаться в себя три раздела:

  1. Разработка бота на Go для поиска заклинаний для Dungeon And Dragons
  2. Публикация бота на платформе heroku
  3. Добавление аналитики использования бота

Continue reading