Всем привет! Меня зовут Искандер, я отвечаю за продуктовое развитие A/B-платформы Avito – Trisigma, а раньше работал в EXPF и также отвечал за A/B-платформу, которая называлась Sigma.
В июне произошло важное событие для российского рынка продуктовой аналитики: платформа Sigma официально стала частью Trisigma. Объединение двух систем для проведения экспериментов открывает новые возможности как для разработчиков, так и для бизнеса. В этой статье я рассказываю, чем уникальна Sigma, как она устроена под капотом и какие плюсы появление новой платформы сулит пользователям объединённой системы.

Содержание:
Что такое Sigma и Trisigma
Trisigma — крупная платформа для запуска и управления экспериментами. Она покрывает полный цикл A/B-тестирования: от заведения экспериментов до аналитики, координации между командами и согласования релизов.
Sigma — система, сфокусированная на запуске экспериментов на стороне клиента (client side). Это важное отличие: в Sigma вся логика расчёта — включая сплитование пользователей — происходит прямо в браузере или в приложении, а не на сервере.
Больше о возможностях и функционале Trisigma можно узнать на сайте платформы и в технической документации. А еще у ребят из Trisigma есть канал в телеграмме, там про эксперименты, статистику и анализ данных, подписывайтесь.
Зачем объединять платформы
Объединение Sigma с Trisigma — не просто интеграция команд и инфраструктуры. Это шаг к созданию единой, гибкой, многоуровневой платформы. В планах добавить в Sigma мощный client side-функционал, который раньше был недоступен. Переход позволит:
оптимизировать издержки на инфраструктуру;
расширить спектр типов экспериментов;
улучшить стабильность и независимость от серверов;
предложить бизнесу больше сценариев тестирования без участия разработчиков.
Как устроена Sigma
В центре Sigma — SDK, встраиваемые в клиентские приложения.
SDK-библиотека Sigma периодически, с интервалом в несколько секунд, запрашивает у сервера актуальную конфигурацию фича-флагов и параметров A/B-тестов, сохраняя полученные данные в локальном кэше.
Алгоритм распределения пользователей по вариантам эксперимента выполняется непосредственно в SDK на пользовательском устройстве, поэтому при переходе между страницами или перезагрузке приложения повторный сетевой запрос не требуется — все калькуляции происходят локально. Детерминированный хэш-алгоритм в SDK Sigma гарантирует, что при одинаковых входных параметрах (например, идентификатор пользователя и ключ эксперимента) всегда будет выбираться один и тот же вариант при бесконечном вызове функции.
Благодаря механизму локальной работы библиотеки, частоту обновления конфигураций разработка задает сама, что позволяет соответствовать целевым показателям по перфомансу и меньше зависеть от внешнего решения.

Что это даёт:
автономность: все данные обрабатываются на стороне клиента, так что доступность всех серверов сервиса не важна для производительности;
скорость и надежность: нет задержек на сетевые запросы;
безопасность: Sigma не собирает данные пользователей, они остаются на стороне клиента и не уходят на серверы Sigma.
SDK — наше все
Давайте рассмотрим, как выглядит работа с библиотекой на примере NodeJS.
Первое, что необходимо сделать разработчику, — установить SDK для своей платформы. На момент написания этой статьи мы поддерживаем JavaScript, NodeJS, Kotlin и Swift.
Например, для NodeJS достаточно установить пакет через npm:
npm i expf-sigma-node.js
Инициализация клиента и создание объекта пользователя выполняются так же просто — достаточно вызвать:
const Sigma = require('expf-sigma-node.js').default;
const sigma = new Sigma(<токен проекта>);
const userData = {
userId: 'userId', // например, clientId из счетчика google analytics
profileId: 'profileId', // например, ID пользователя при регистрации
deviceId: 'deviceId', // например, ID устройства, с которого зашел пользователь
email: 'example@mail.ru',
custom: { // если основных полей не хватает, всегда можно добавить свои
new_user: true,
level: 2
}
}
const sigma = new Sigma(token, userData);
На этом этапе мы завершили подготовку к основной работе. Теперь необходимо создать эксперимент и фича-флаг. Для этого используется следующий метод — .checkFlag().
Как он устроен?
При разработке нашего продукта мы в первую очередь вдохновлялись философией Trunk-Based Development. Ее суть заключается в ускорении доставки изменений в продукт за счет того, что работа ведется сразу в основной ветке репозитория (main/master) без долгоживущих feature-веток. Такой подход был бы невозможен без системы управления фича-тогглами.
Представим, что мы создали фича-тоггл для новой кнопки на сайте — showButton, которая по умолчанию выключена (false).

Разработчик выкатывает изменения в main/master с новой кнопкой и может переходить к другим задачам. Тогда обертка для отображения кнопки выглядит следующим образом:
if (sigma.checkFlag("showButton")) {
// показываем кнопку пользователю
} else {
// скрываем кнопку
}
Позже аналитик решает запустить эксперимент, в рамках которого будет тестироваться эта кнопка. Ему достаточно связать фича-тоггл с экспериментом и задать правило: пользователи, попавшие в группу Тест, будут видеть кнопку, а для группы Контроль она останется скрытой.

Самое главное — разработчику не нужно предпринимать никаких дополнительных действий, так как кнопка уже находится в production-среде, а управление полностью осуществляется через фича-тоггл.
Какая еще есть польза у интеграции?
Интеграция Sigma в Trisigma — это не только про разработку. Есть также множество преимуществ, которые будут полезны бизнесу:
снижение времени на запуск тестов — благодаря визуальному редактору не нужно ждать разработчиков;
экономия на инфраструктуре — расчёты на клиенте минимизируют серверные издержки;
отказоустойчивость — эксперименты продолжают работать даже при проблемах с сервером;
безопасность данных — соответствие требованиям приватности и безопасности (EBA);
гибкость экспериментов — больше типов тестов, больше сценариев;
инструмент для продуктовой разработки — отдельные фича-флаги дают контроль над релизами без изменения кода.
Что дальше?
Пока команды работают над переносом инфраструктуры Sigma в контур Trisigma и Авито. Финальная архитектура объединённой платформы ещё формируется. Но уже понятно: Sigma станет важным звеном в экосистеме Trisigma, усиливая её за счёт client-side подхода.
Что думаете о преимуществах Sigma?
А если хотите вместе с нами помогать людям и бизнесу через технологии — присоединяйтесь к командам. Свежие вакансии есть на нашем карьерном сайте. И подписывайтесь на канал Trisigma!