Состав платформы Rockstat
Rockstat состоит из множества компонентов: хранилищ, инструментов для работы с данными, специально разработанных сервисов, выполняющих свою часть общего дела, средств администрирования.
На схеме приведены только основные сервисы, разработанные специально для Rockstat, и сторонние инструменты, которые были интегрированы с остальными частями платформы. Только представьте, сколько еще всего...
Основные компоненты
- Band-py Framework - framework для разработки сервисов Rockstat, используя Python
- Band Director - сервис для создания и управления контейнерами
- Rockme-ts Framework - фреймворк для разработки микросервисов Rockstat, используя TypeScript
- Front service - сервис для получения данных, а также обработки жизненного цикла входящих запросов
- ChWriter service - сервис, управляющий схемой данных в ClickHouse, а также записи входящих данных, учитывая структуру БД
- Ebaloger service - сервис, принимающий данные через UDP Socket, собирающий логи Docker контейнеров, передающий по Websocket
SDK
- Web SDK - браузерная библиотека для отслеживания поведения посетителей на сайтах. Объединяет события в сессии, отслеживает активность, клики и взаимодействия с формами.
- Mobile SDK's - используются от Countly или SnowPlow
Стандартные обогатители данных
- UserAgent parser service - сервис извлечения полезной информации из User-Agent браузера
- MaxMind geolocation service - сервис геолокации по ip адресу на основе базы данных MaxMind
- Sypex geolocation service - сервис геолокации по ip адресу на основе базы данных SypexGeo
Другие сервисы:
- Send Mixpanel - сервис стриминга данных в MixPanel, как пример создания аналогичных сервисов
- Heavyload service - сервис приема больших файлов
- TgHelloBot service - пример реализации чатбота
Стороннее ПО адаптированное для Rockstat
- Grafana - инструмент для построение дашбордов на основе данных из ClickHouse и других источников. Дополнения: драйвер Сlickhouse и расширенный набор виджетов
- Anaconda - аналитическая сборка Python, включающая библиотеки для анализа данных. Дополнения: дополнительные, часто используемые пакеты, автозапуск Jupyter.
- Theia IDE - специальная сборка персональной среды разработки под Rockstat. Поддерживается разработка на Python, TypeScript и Javascript. Проброшен удобный терминал (zsh + zprezto) с сервера. Предусмотрен запуск сервисов для отладки.
- ClickHouse Proxy service - посредник при работе с ClickHouse. Контролирует нагрузку на СУБД, обрабатывает лимиты, ставит запросы в очередь, поддерживает CORS
- Netdata - слежение за показателями сервера, агрегация метрик с сервисов платформы, на основе которых определяется стабильность работы.
Остальное ПО,
- Docker - инструмент контейнеризации, по сути сердце микросервисов.
- ClickHouse - открытая колоночная СУБД от Yandex. Хранит данные в сжатом виде, сохраняя высокую производительность.
- Redis - многофункциональное im-memory хранилище. Используется для быстрого обмена данными между микросервисами.
- Nginx - реверсивный прокси сервер. Используется для распределения запросов между сервисами доступными по http.
- Acme.sh (LetsEncrypt) - клиенты для получения SSL сертификатов. Сервис, предоставляющий бесплатные сертификаты.
- Множество других...
Исходный код