Analytics Space
Оставить заявку
Для чего нужен deployCraft
Устанавливать и настраивать инструменты для сбора, обработки данных на серверы, например, Airflow, Matomo или генератор UTM-меток utmCraft (ссылки).

Вам понадобится один или несколько серверов (физических или облачных) с установленной ОС Linux (поддерживаются разные дистрибутивы). Нужно указать доступы к этим серверам и список программ, которые вам нужны. Далее запускаете deployCraft — он скачает, установит и сконфигурирует программы так, чтобы они были готовы для продакшена и слаженно работали друг с другом.

Кому нужен deployCraft
Тем, кто занимается установкой и обслуживанием серверного ПО в компании: девопсам, системным администраторам. В некоторых компаниях этим занимаются пользователи аналитических инструментов: инженеры данных, аналитики или маркетологи, если у них есть технические навыки.

Какие технические навыки нужны
Для базового использования deployCraft достаточно просто следовать инструкции. У каждой компании свои требования к набору используемого ПО и тому, как оно должно взаимодействовать с уже существующей IT-инфраструктурой.

Чтобы кастомизировать работу и решать возникающие проблемы, понадобятся знания Linux, сетей (в частности VPN Wireguard), Docker и Ansible (про него будет дальше). Пригодится умение подключиться к серверу по SSH, посмотреть логи и параметры конфигурации разных программ, а также при необходимости скорректировать установочный скрипт Ansible.

Зачем нужен deployCraft, если есть инструкция по установке
У каждой программы на сайте есть инструкция по тому, как ее разворачивать на сервере, по ней всегда можно пройти и поставить нужный инструмент. У такого подхода есть несколько недостатков:
  1. Инструкция обычно не учитывает, что программе придется работать вместе с другими. Например, часто инструмент создает отдельный инстанс PostgreSQL. Если у вас будет 10 инструментов, то появится 10 запущенных СУБД, каждую из которых придется обслуживать отдельно.
  2. Также за рамками инструкции обычно остаются вопросы регулярных бэкапов, мониторинга и обеспечения безопасности.
  3. Вам придется документировать каждый шаг, чтобы вы или ваши коллеги смогли повторить все действия, если нужно поставить программу на другой сервер или обновить ее версию.
  4. Обычно выполнение инструкции занимает время, как минимум полчаса на каждый инструмент.

Что такое Ansible
Это платформа автоматизации, которая позволяет устанавливать и конфигурировать программы на серверах. Ansible подключается к серверу по SSH и выполняет скрипты — плэйбуки, которые говорят, что именно нужно сделать.

В плэйбуках используются библиотеки — роли. Каждая роль настраивает одну программу или набор программ. Если есть готовая роль, пользователю достаточно задать настройки хостов (IP-адреса, логины и пароли серверов) и переменные — настройки, предусмотренные автором роли, которые пользователь может поменять. Например, версия устанавливаемой программы или название аккаунта, который нужно создать.

Настройки хостов и переменные задаются в текстовом виде в формате YAML. После того, как пользователь это сделал, он может запустить установку всех программ одной командой из консоли или через веб-интерфейс. Этих интерфейсов несколько, мы используем Semaphore.

Зачем нужен deployCraft, если есть Ansible
Ansible — платформа, из которой можно приготовить разные продукты. deployCraft — готовое решение для конкретной задачи: быстро получить готовые к работе инструменты для сбора, обработки и визуализации данных. В deployCraft мы заложили лучшие практики, к которым пришли, настраивая эти программы для клиентов из разных сфер бизнеса.

Почему еще мы рекомендуем deployCraft:
  1. Большое внимание мы уделяли тому, чтобы разные программы работали между собой слаженно. Например, мы создаем VPN-сеть, чтобы веб-сервер, база данных с настройками, аналитическая база данных и BI-система могли общаться между собой так, будто они находятся в одной локальной сети, при этом извне у них был бы ограниченный доступ.
  2. Мы делаем общие инстансы PostgreSQL, Redis и Nginx, к которым обращаются все инструменты. Это позволяет сократить затраты на обслуживание и поддержку и резервное копирование.
  3. Мы подключаем централизованный мониторинг Prometheus ко всем серверам, чтобы у администратора было одно окно, через которое можно следить за работоспособностью отдельных компонентов системы.
Даже если у вас нестандартный сценарий, вы можете взять скрипты deployCraft за основу, так как они предполагают возможность изменения и расширения.

Как выглядит работа в deployCraft
Пользователь вводит настройки хостов, перечисляет, на какие серверы какие инструменты нужно поставить, и задает переменные для разных программ. Это можно сделать с помощью текстовых файлов или заполнив поля в веб-приложении. После этого пользователь дает команду на запуск.

deployCraft по SSH подключается к серверам и выполняет необходимые шаги:
  • настраивает параметры операционной системы;
  • скачивает и запускает установочные файлы нужных программ;
  • настраивает подключения к базам данных;
  • вносит необходимые изменения в файрволл для обеспечения безопасной работы;
  • проводит базовую конфигурацию установленных программ, чтобы с ними можно было сразу работать.

Какие программы можно установить с помощью deployCraft
Docker — фреймворк для изолированного запуска отдельных компонентов системы и организации связи между ними.

PostgreSQL — СУБД, в которой хранятся метаданные сервисов.

ClickHouse — СУБД, в которой организовано хранилище данных.

Redis — СУБД, в которой хранятся данные кэша сервисов.

NFS — система для обмена файлами логов и задач по сети. Предназначена для взаимодействия отдельных компонентов системы, расположенных на разных машинах.

Wireguard — VPN для обеспечения безопасного канала связи между машинами.

Nginx — веб-сервер, который проксирует запросы к сервисам, обеспечивает соединение по протоколу HTTPS и парольную защиту Basic Auth (только для Airbyte).

Airbyte — система загрузки данных из различных источников.

Airflow — оркестратор задач, который предоставляет интерфейс для ручного и автоматического запуска задач, оповещает администраторов о возникших ошибках, отображает логи выполнения задач.

Prometheus — инструмент мониторинга.

Grafana — система визуализации для данных Prometheus Superset, Redash, Metabase — BI-системы.

Semaphore — веб-интерфейс для Ansible и deployCraft.

dbt — фреймворк для построения пайплайнов на основе SQL.

jupyter — средство для разработки и запуска кода на Python.

Matomo — система веб-аналитики и контейнер тегов.

Также deployCraft позволяет поставить все компоненты dataCraft (ссылка):
utmCraft (ссылки)
qualityCraft
credentialsCraft
modelCraft
tableCraft
pivotCraft
linkCraft

Какие облака поддерживаются
deployCraft можно использовать для развертывания программ на собственных физических серверах и на серверах любых провайдеров, предоставляющих услугу VPS, в том числе:
  • Yandex Cloud
  • VK Cloud
  • Selectel
  • Sbercloud

Какая лицензия у deployCraft
deployCraft доступен под двумя лицензиями. Версия open source распространяется под лицензией MIT. В этой версии доступна установка всех компонентов dataCraft (ссылка), а также PostgreSQL, Redis, NFS, Wireguard и Nginx.

Вторая лицензия — коммерческая. Она позволяет изучать и изменять код, но ограничивает использование внутри одной компании. В этой версии доступен полный функционал deployCraft.

Для получения доступа к deployCraft, свяжитесь с нами.
Получить доступ к deployCraft
О проекте
Analytic Space
Лицензия