К основному содержимому
COBALT CAPITAL
← Вся команда
Платформа, исполнение, инфраструктура

Сергей «Mr. Kernel»

Технический директор
Лет опыта
15
Направление
Технический директор
Специализация
Платформа, исполнение, инфраструктура

О специалисте

Mr. Kernel начинал ещё в эпоху, когда подтверждение сделки означало звонок и голос на другом конце линии, а не запись в базе данных. Голосовой дилинг научил его тому, что современные логи и трассировки часто скрывают: у любой торговой операции есть человек или процесс, который несёт ответственность за конкретную секунду её исполнения, и если эту секунду нельзя предъявить — система не готова к продакшену, сколько бы у неё ни было автотестов.

В Cobalt он пришёл на этапе, когда компания выходила из формата разовых заказов в формат платформы: то же ядро исполнения нужно было одновременно продавать партнёрам как продукт и держать под собственным капиталом как боевую систему. С тех пор он отвечает за то, чтобы это было буквально одно и то же ядро, а не два похожих, разошедшихся в критический момент. Через его руки прошли все технологические поколения компании — от систем с голосовым подтверждением до агентов, которые сейчас принимают решения на основе моделей и исполняют их без участия человека.

Опыт

2014
Присоединился к команде на этапе перехода от проектной разработки к продуктовой платформе
2016
Возглавил перевод расчётного контура с ручных сверок на автоматическое подтверждение сделок
2019
Ввёл единый релизный конвейер для партнёрских поставок и внутренней прод-версии платформы
2022
Перестроил процесс инцидент-менеджмента после серии откатов релизов у двух партнёров подряд
2025
Запустил инфраструктуру для агентов, принимающих торговые решения без ручного подтверждения

Результаты: что сработало и что нет

Успешные стратегии
Единое ядро для партнёров и прайм-контура
с 2019 года партнёрские поставки и внутренняя система исполняются одним кодом с разными конфигурациями, а не двумя параллельными ветками — расхождений в логике исполнения не фиксировалось ни разу за шесть лет
Канареечные релизы вместо релизов «на всех сразу»
после перехода на поэтапную раскатку в 2022 году доля релизов с последующим откатом упала с 14% до 2% за год
Автоматическая сверка состояния позиций
внедрённая в 2021 году система сверки между торговым ядром и учётным контуром сама находит расхождение раньше, чем оно попадает в отчётность — обнаруживает несовпадения на сумму от 0.3% от объёма счёта
Ошибки и уроки
Миграция схемы хранения позиций, 2020
запустили миграцию базы данных в азиатскую сессию, посчитав объём торгов низким, — за 40 минут состояние позиций по трём счетам разошлось с реальным, и часть ордеров пришлось сверять вручную. Урок: «тихое время» — понятие для человека, а не для очереди сообщений, и любая миграция состояния теперь идёт только через теневую копию с параллельной сверкой, а не по расписанию торговых часов
Раскатка версии протокола у партнёра, 2022
выпустили минорное обновление протокола обмена ордерами, посчитав его обратно совместимым; у одного партнёра со старой версией клиента это привело к четырёхминутному окну дублирования заявок на стороне их шлюза. Формально ошибка была партнёрская, но версионирование протокола с тех пор жёстче нашего собственного кода: любое изменение поля в сообщении — это новая мажорная версия, без исключений
← Вся команда

Как Mr. работает

Я не измеряю платформу по одному показателю — есть три числа, которые смотрю каждый день вместе: время безотказной работы основного контура, время от коммита до релиза и доля релизов, которые пришлось откатить. По отдельности каждое можно улучшить обманом: снизить частоту релизов ради стабильности или гнать код без проверок ради скорости. Вместе они не дают срезать угол — если время от коммита до релиза падает, а доля откатов растёт, это не прогресс, а перенос риска на прод.

Граница моей ответственности заканчивается там, где начинается сигнал стратегии: какую модель запускать, какой размер позиции держать, когда закрывать сделку — это решает не платформа и не я. Моя зона — чтобы решение, каким бы оно ни было, исполнилось ровно так, как задумано, без потерь на пути, без искажения из-за задержки и без права на «система была недоступна» как оправдание. Если модель ошиблась — это к коллегам, отвечающим за исследования и риск. Если ордер ушёл не туда или не в то время — это ко мне, и я не делю эту ответственность с внешними факторами вроде провайдера или биржи.

Главная ошибка в моей области — принимать работу в собственной торговле за доказательство готовности продукта для партнёра. Наша внутренняя нагрузка имеет свой профиль: свои объёмы, свои паттерны всплесков, свои редкие случаи. Партнёр с другим профилем трафика вскрывает баги, которые год не проявлялись у нас — история 2022 года с протоколом ордеров ровно об этом. Поэтому с того момента любое изменение протокола или API проходит через синтетическую нагрузку с профилем, специально построенным непохожим на наш собственный, а не только через наши обычные нагрузочные тесты.

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

Рабочие принципы

  • Одно ядро, а не два похожих
    Партнёрская поставка и внутренняя система работают на одном коде с разными настройками. Как только код расходится «для скорости», расхождение неизбежно найдёт себя в проде в худший момент.
  • Хвост важнее среднего
    Средние показатели времени отклика и аптайма ничего не говорят о том, что происходит в редкие плохие секунды. Я слежу за перцентилями и худшими случаями, а не за средней температурой по системе.
  • Миграция состояния не по расписанию торговых часов
    «Тихое время» на рынке — понятие для человека. Любое изменение схемы данных идёт через теневую копию с параллельной сверкой, независимо от того, какая сейчас сессия.
  • Версия протокола — не мелочь
    Изменение поля в межсервисном сообщении — это новая мажорная версия, а не патч. Обратная совместимость проверяется нагрузкой с чужим профилем трафика, а не только своим.

Частые вопросы

Чем платформа для партнёров отличается от той, на которой торгует сама компания?

Конфигурацией и лимитами, а не кодом. С 2019 года это буквально одно ядро исполнения: партнёр получает те же механизмы подтверждения и защиты от сбоя, что несут наши собственные деньги. Разошедшиеся версии — источник самых дорогих ошибок, поэтому мы сознательно не даём им появиться.

Как вы обнаруживаете сбой раньше, чем он скажется на счёте?

Автоматическая сверка состояния позиций между торговым ядром и учётным контуром работает постоянно и ловит расхождения от 0.3% объёма счёта раньше, чем они попадают в отчётность. Это результат истории 2020 года, когда миграция базы в «тихую» сессию разошлась с реальными позициями на 40 минут.

Что происходит при отказе основного контура исполнения?

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