Автор:
Шеннон Куртас, директор по продукту, Pro & Institutional Trading
Макс Каплан, старший технический директор, основная инфраструктура и разработка данных
Сукету Ганди, старший технический директор, Trading Technology
Стив Хант, вице-президент по инженерным вопросам
Почти двенадцать лет назад Kraken начал свою новаторскую миссию, чтобы стать одной из первых и самых успешных бирж цифровых активов. Мы начали торговать только четырьмя криптовалютами, но теперь поддерживаем более 220 активов в 67 блокчейнах и более 700 рынков.
Мы быстро выросли. Благодаря нашим продуктовым и инженерным группам, в том числе экспертам в области технологии блокчейн, безопасности, сетей, инфраструктуры и торговых систем, мы смогли удовлетворить огромный спрос.
По мере взросления и развития отрасли менялись и размер, и характер нашей клиентской базы. Хотя мы продолжаем обслуживать индивидуальных инвесторов и трейдеров через нашу Kraken и Кракен Про платформы, растущая часть нашего потока заказов поступает алгоритмически через наш API от профессиональных и институциональных клиентов. К ним относятся корпорации, хедж-фонды, проприетарные торговые фирмы, первичные брокеры, финтех-компании, а также другие биржи, полагающиеся на высокую ликвидность Kraken.
Наши торговые системы должны были масштабироваться, чтобы удовлетворить эти повышенные требования, особенно те, которые сильно зависят от скорости, стабильности и времени безотказной работы, чтобы снизить затраты на исполнение, управлять рыночным риском и извлечь выгоду из торговых возможностей. Мы достигли всего этого без ущерба для нашего главного приоритета — безопасность.
Сегодня мы рады рассказать о некоторых из наших недавних усилий, успехов и результатов такого масштабирования.
Приоритет производительности
Мы уделяем большое внимание инструментированию кода, чтобы наблюдать и понимать производительность нашей системы в тяжелых реальных условиях. Мы также используем конкурентный бенчмаркинг, чтобы подтвердить, как мы развиваемся с течением времени. Давайте рассмотрим некоторые из этих результатов.
Скорость и задержка
Мы измеряем скорость торговли в виде задержки. Задержка — это задержка приема-передачи, и мы определяем ее как время между отправкой торгового запроса (например, добавить ордер) клиентскими системами и его подтверждением на бирже.
В отличие от традиционных бирж, криптовалютные площадки, как правило, менее географически сконцентрированы и не предлагают полное размещение. Во многих случаях они полностью основаны на облаке.
Клиенты, чувствительные к задержкам, будут развертывать код там, где он физически ближе всего к месту проведения. Таким образом, справедливое сравнение включает измерение задержки из региона, наиболее подходящего для данного конкретного места.
Задержка также будет различаться между торговыми запросами, даже при постоянном соединении между одним клиентом и биржей. Это связано как с различиями, так и с изменчивостью интернет-торговли, а также с тем, как биржа справляется с нагрузкой. Следовательно, мы должны обсуждать задержки с точки зрения процентилей, а не отдельных цифр. Например, задержка P25 относится к задержке 25-го процентиля. Другими словами, P25, равный 5 мс, означает, что 25% всех торговых запросов в течение заданного периода выборки имели задержку 5 мс или выше.
Здесь вы видите лучшую задержку пути P25 Kraken по сравнению с некоторыми из наших основных конкурентов в разных регионах, нормализованную по местоположению, во время базового измерения в прошлом месяце.
Наша базовая задержка приема-передачи около 2.5 мс представляет собой улучшение более чем на 97% по сравнению с первым кварталом 1 года.
Стабильность
Как упоминалось ранее, реальная производительность при высокой нагрузке так же важна, если не важнее, как производительность в лучшем случае и абсолютные показатели задержки.
Улучшение стоимости исполнения, снижение проскальзывания и управление рыночным риском зависят от минимизации изменчивость задержки между каждым торговым запросом. Мы называем эту изменчивость джиттером и измеряем разницу между разными значениями процентилей задержки для одного и того же интервала времени выборки.
Измеряя джиттер с задержками P25 и P95, мы можем зафиксировать значительный диапазон производительности и наблюдаемого поведения с течением времени. Например, мы измерили, как наш джиттер соотносится с более широким набором основных конкурентов в течение недели с 5 по 12 ноября 2022 г., когда волатильность рынка была острой из-за кризиса и окончательного закрытия FTX.
Здесь вы можете увидеть, как наша торговая инфраструктура вела себя исключительно хорошо, несмотря на резко возросшую волатильность и нагрузку. Ни разу в течение недели этот джиттер не превышал 30 мс. Между тем, для многих других обменов время регулярно достигало нескольких сотен миллисекунд, или время ожидания запросов полностью истекло, на что указывают вертикальные всплески.
Увеличить пропускную способность
Пропускная способность отражает количество успешных торговых запросов (добавить ордер, отменить ордер, изменить ордер и т. д.), обработанных биржей за определенный период времени.
Подобно задержке, мы обсуждаем пропускную способность либо в теоретическом, либо в наблюдаемом выражении.
Наблюдаемая пропускная способность более актуальна, поскольку она отражает множество взаимосвязанных факторов, включая ограничения скорости. Мы устанавливаем эти ограничения, чтобы предотвратить DDoS-атаки и удерживать трафик в пределах теоретических ограничений. Размер клиентской базы, общий рыночный спрос, поток заказов (на который сильно влияет волатильность цен и торговая активность в других местах) и производительность под нагрузкой (поскольку после определенного уровня ухудшения обслуживания клиенты начнут ограничивать свои собственные запросы) — все это влияет на эти пределы.
Здесь мы проиллюстрировали более чем 4-кратное улучшение нашей максимальной наблюдаемой пропускной способности между 1 кварталом 2021 года и 1 кварталом 2023 года. Это изменение представляет собой переход от 250 тыс. улучшенная теоретическая максимальная пропускная способность.
Uptime
В этом году мы приложили усилия, чтобы свести к минимуму время простоя из-за планового обслуживания, снизить частоту и влияние незапланированных простоев, а также увеличить скорость обновления функций и улучшения производительности без негативного влияния на время безотказной работы.
Эти изменения включали как технические, так и операционные усовершенствования, такие как более зрелая и крупная оперативная команда по обеспечению устойчивости, которая работает круглосуточно и без выходных.
Хотя время безотказной работы в наш худший месяц в 2021 году было близко к 99%, эти улучшения позволили нам установить более агрессивные бюджеты ошибок и целевой показатель времени безотказной работы на уровне 99.9+%.
Усилия
Синие/зеленые и скользящие развертывания
Мы все чаще использовали сине-зеленая стратегия развертывания через наши шлюзы API и многие внутренние службы. Вы можете увидеть очень упрощенную иллюстрацию этого, выделенную на рисунке 6. За счет параллельной работы нескольких полноценных стеков кода мы можем развертывать функции, не нарушая основной стек, который в настоящее время получает клиентский трафик. После этого трафик можно перенаправить в новый стек, что приведет к развертыванию с нулевым воздействием или к очень быстрой процедуре отката, если что-то пойдет не так. Кроме того, для многих наших служб, которые работают с несколькими экземплярами для балансировки нагрузки, обновления этих экземпляров происходят на непрерывной основе, а не по принципу «все или ничего». Эти подходы теперь позволяют нам проводить более частые обновления без последствий для подавляющего большинства нашего технического стека.
Инфраструктура как код
Кракен активно использует Инфраструктура как код (IaC) Terraform и кочевник, в значительной степени для обеспечения согласованности всех развертываний кода, а также повторяемости. Мы автоматизируем наши репозитории Terraform с помощью непрерывной интеграции и непрерывной доставки, чтобы мы могли быстро и надежно вносить изменения. За последние два года мы развернули новую инфраструктуру с использованием IaC, и сегодня почти вся наша инфраструктура использует этот шаблон. Этот шаг стал важной вехой, и мы используем IaC как для облачных, так и для локальных приложений.
Связь и сеть
Мы используем частное подключение между AWS и нашими локальными центрами обработки данных. Это подключение позволяет Kraken гарантировать минимально возможную задержку, максимально возможную безопасность и избыточные пути, чтобы мы всегда могли связаться с AWS. Недавние улучшения в сети и маршрутизации позволили значительно сократить базовую задержку при двусторонней торговле, о которой говорилось выше.
Инструментарий и телеметрия
Подробное и точное ведение журнала, метрики и отслеживание запросов позволили нам быстро выявлять, диагностировать и устранять любые непредвиденные узкие места и проблемы с производительностью в режиме реального времени. Помимо этой телеметрии и нашего собственного конкурентного мониторинга, мы также недавно обновили наши показатели задержки и времени безотказной работы API на status.kraken.com с развертыванием внешних мониторов, чтобы, как правило, более точно отражать эти цифры с точки зрения клиентов.
Оптимизированные развертывания API
В любой момент наши API-интерфейсы и торговый стек поддерживают десятки тысяч подключений, торгующих алгоритмически через наши веб-сокеты или REST API. Наши платформы пользовательского интерфейса, в том числе наша новая высокопроизводительная Кракен Про Платформа. Хотя эти платформы обладают многими из тех же основных преимуществ торговой инфраструктуры, описанных в этом посте, рабочие нагрузки принципиально различаются и предъявляют разные требования. Индивидуальные развертывания API для поддержки наших платформ пользовательского интерфейса с определенными потоками данных, сжатием, регулированием, агрегированием и т. д. позволили нам еще больше повысить скорость и сократить неиспользуемую полосу пропускания и, следовательно, увеличить общую пропускную способность клиента.
Улучшения основного кода
Мы внесли ряд существенных улучшений в стек посредством реинжиниринга основных сервисов в Ржавчина и С++. Эти изменения позволяют более широко использовать асинхронный обмен сообщениями и сохраняемость данных, где это возможно, и помогают нам встроить надежное профилирование производительности в большее количество наших конвейеров CI/CD. Они также позволяют нам использовать самые известные методы статического и динамического анализа кода. Некоторые из этих улучшений привели к тому, что средняя задержка механизма сопоставления сократилась с миллисекунд до микросекунд. Это улучшение более чем на 90% по сравнению с двумя годами ранее, при этом поддерживается более чем 4-кратное увеличение пропускной способности.
Что дальше?
Собственный FIX API
Мы также скоро запустим собственный FIX API для данных спотового рынка и торговли. FIX, что означает «обмен финансовой информацией», представляет собой мощный и универсальный, но гибкий стандартный отраслевой API, который многие учреждения используют для торговли акциями, валютой и фиксированным доходом в больших масштабах. Это надежный и проверенный протокол с обширным программным обеспечением сторонних производителей и поддержкой открытого исходного кода, что упрощает и ускоряет для учреждений интеграцию с Kraken и начало торговли.
Собственный API-интерфейс Kraken FIX также имеет архитектурные нюансы и преимущества по сравнению с нашими API-интерфейсами Websockets и REST, включая отмену при отключении на основе сеанса, гарантированную доставку сообщений по порядку, восстановление сеанса и воспроизведение. Наш FIX API в настоящее время находится в стадии бета-тестирования — тянуться если вы хотите помочь пнуть шины!
Развертывание механизма сопоставления с нулевым временем простоя
Мы значительно увеличили частоту беспроблемного развертывания шлюзов API и различных серверных служб (аутентификация, аудит, телеметрия и т. д.). Тем не менее, существенные обновления нашего механизма сопоставления по-прежнему требуют планового обслуживания и кратковременного простоя, которые мы проводим примерно раз в две недели.
Тем не менее, наша команда приложила значительные усилия, чтобы перестроить некоторые из наших внутренних систем обмена сообщениями с помощью технологии многоадресной рассылки, используя Aeron, чрезвычайно производительный и надежный набор инструментов для отказоустойчивых систем высокой доступности. Результатом этого станет запланированное развертывание торгового стека с нулевым временем простоя, которое будет доступно позже в 2023 году.
Нужна помощь? Протянуть руку
Пожалуйста, свяжитесь с нашим отделом управления учетными записями и отделом институциональных продаж, используя адрес электронной почты чтобы узнать больше о любом из этих обновлений, обсудить, как оптимизировать ваше торговое подключение, или провести бета-тестирование будущих функций, таких как наш FIX API.
Нужно больше доказательств? Следите за новостями и подписывайтесь на обновления status.kraken.com для любого запланированного обслуживания, сервисной информации и статистики задержек и времени безотказной работы.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://blog.kraken.com/post/17936/performance-at-kraken/
- :является
- $UP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- в состоянии
- О нас
- выше
- Absolute
- Учетная запись
- управление счетами
- точный
- точно
- достигнутый
- через
- деятельность
- адрес
- влиять на
- агрегирование
- агрессивный
- алгоритмически
- Все
- позволяет
- количество
- анализ
- и
- API
- API
- Приложения
- подходы
- архитектурный
- МЫ
- Прибыл
- AS
- активы
- Активы
- At
- нападки
- аудит
- Аутентификация
- автоматизировать
- свободных мест
- доступен
- в среднем
- AWS
- Backend
- Пропускная способность
- Использование темпера с изогнутым основанием
- Базовая линия
- основа
- BE
- становиться
- до
- начал
- начинать
- не являетесь
- бенчмаркинг
- Преимущества
- ЛУЧШЕЕ
- beta
- Лучшая
- между
- Beyond
- блокчейн
- Технологии блочейна
- блокчейны
- широкий
- шире
- Брокеры
- Бюджеты
- строить
- by
- C + +
- призывают
- CAN
- Пропускная способность
- капитализировать
- захватить
- нести
- случаев
- случаев
- Центры
- определенный
- изменение
- изменения
- График
- клиент
- клиентов
- Закрыть
- код
- как
- сравнение
- конкурентоспособный
- конкурентов
- комплексный
- компромат
- концентрированный
- Условия
- Проводить
- подтвердить
- связи
- Коммутация
- связь
- продолжать
- (CIJ)
- Основные
- Корпорации
- Цена
- Расходы
- крипто-
- криптовалюты
- В настоящее время
- данным
- центров обработки данных
- DDoS
- десятилетие
- глубоко
- задерживать
- Обрадованный
- поставка
- Спрос
- запросы
- зависит
- развертывание
- развернуть
- развертывание
- развертывания
- описано
- Несмотря на
- DID
- разница
- Различия
- различный
- Интернет
- Цифровой актив
- директор
- обсуждать
- бедствие
- Dont
- время простоя
- драматично
- драматично
- Опустившись
- в течение
- динамический
- e
- каждый
- легче
- усилие
- усилия
- или
- в другом месте
- акцент
- включен
- Двигатель
- Проект и
- полностью
- Рынок акций
- ошибка
- и т.д
- Даже
- эволюционировали
- пример
- превышать
- обмена
- Биржи
- выполнение
- опытные
- эксперты
- Больше
- и, что лучший способ
- чрезвычайно
- Глаза
- факторы
- ярмарка
- Особенность
- Особенности
- фигура
- цифры
- финансовый
- финансовая информация
- fintechs
- Компаний
- Во-первых,
- фиксированный
- фиксированной
- фиксированный доход
- гибкого
- поток
- Что касается
- форма
- предстоящий
- КАДР
- частота
- частое
- от
- FTX
- полный
- принципиально
- средства
- далее
- Более того
- FX
- Общие
- в общем
- данный
- Go
- Рост
- взрослый
- Рост
- гарантия
- гарантированный
- Управляемость
- происходить
- Есть
- габаритная высота
- сильно
- тяжелый
- живая изгородь
- Хедж-фонды
- помощь
- High
- наивысший
- Выделите
- Выделенные
- Как
- How To
- HTTPS
- Сотни
- определения
- Влияние
- влияние
- важную
- улучшать
- улучшенный
- улучшение
- улучшение
- in
- В других
- включают
- включены
- включает в себя
- В том числе
- доход
- Увеличение
- расширились
- повышение
- все больше и больше
- указанный
- individual
- промышленность
- информация
- Инфраструктура
- Институциональная
- институциональные клиенты
- учреждения
- интегрировать
- интеграции.
- в нашей внутренней среде,
- Интернет-
- Инвесторы
- вопросы
- IT
- ЕГО
- Сохранить
- удар
- известный
- Kraken
- большой
- Фамилия
- Задержка
- запуск
- ведущий
- УЧИТЬСЯ
- Lets
- уровень
- Кредитное плечо
- такое как
- рамки
- Ликвидность
- загрузка
- расположение
- сделанный
- Главная
- техническое обслуживание
- основной
- Большинство
- сделать
- Создание
- управлять
- управление
- управления
- многих
- рынок
- Данные рынка
- Волатильность рынка
- Области применения:
- массивный
- согласование
- материала
- зрелый
- макс-ширина
- максимальный
- означает
- Между тем
- проводить измерение
- измерение
- Встречайте
- упомянутый
- сообщение
- обмен сообщениями
- методы
- Метрика
- веха
- минимизация
- минимальный
- Наша миссия
- момент
- монитор
- Мониторинг
- Месяц
- БОЛЕЕ
- самых
- двигаться
- MS
- с разными
- родной
- природа
- почти
- отрицательно
- сетей
- Новые
- следующий
- Ноябрь
- номер
- номера
- of
- предлагают
- on
- ONE
- открытый
- с открытым исходным кодом
- работать
- работает
- операционный
- оперативный
- операционная устойчивость
- Возможности
- Оптимизировать
- заказ
- Другое
- общий
- собственный
- Параллельные
- часть
- особенно
- вечеринка
- мимо
- путь
- шаблон
- производительность
- настойчивость
- Физически
- Новаторская
- запланированный
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- возможное
- После
- мощный
- предотвращать
- цена
- Простое число
- Предварительный
- приоритет
- частная
- Pro
- Продукт
- профессиональный
- профилирование
- доказательство
- ( изучите наши патенты),
- защищенный
- протокол
- целей
- положил
- Q1
- САЙТ
- быстрее
- быстро
- ассортимент
- Обменный курс
- скорее
- достигать
- достиг
- реальный мир
- реального времени
- получение
- последний
- недавно
- выздоровление
- уменьшить
- снижение
- понимается
- отражать
- отражает
- область
- районы
- регулярно
- соответствующие
- представляет
- запросить
- Запросы
- требовать
- Требования
- упругость
- ОТДЫХ
- результат
- Итоги
- Снижение
- надежный
- Катить
- Подвижной
- грубо
- главная
- то же
- Шкала
- масштабирование
- планирование
- безопасность
- Серии
- служить
- обслуживание
- Услуги
- Сессия
- набор
- несколько
- должен
- выключение
- значительный
- упрощенный
- с
- одинарной
- Размер
- проскальзывание
- So
- Software
- некоторые
- Источник
- конкретный
- скорость
- шипы
- Спотовая торговля
- спотовом рынке
- Стабильность
- стек
- сложены
- Стеки
- стоит
- Начало
- и политические лидеры
- статистика
- По-прежнему
- подписаться
- успешный
- такие
- suite
- поддержка
- поддержки
- система
- системы
- цель
- команда
- команды
- технологии
- Технический
- Технологии
- terms
- Terraform
- тестXNUMX
- Тестирование
- Спасибо
- который
- Ассоциация
- их
- теоретический
- следовательно
- Эти
- В третьих
- тысячи
- Через
- пропускная способность
- время
- Временные ряды
- Timed
- раз
- в
- сегодня
- инструменты
- топ
- трассировка
- Торговцы
- Торговля
- традиционный
- трафик
- надежных
- ui
- окончательный
- под
- понимать
- Неожиданный
- обновление
- Updates
- Провел на сайте
- us
- использование
- различный
- Огромная
- Скорость
- место встречи
- центры
- Против
- с помощью
- Изменчивость
- vs
- Смотреть
- неделя
- ЧТО Ж
- который
- в то время как
- будете
- в
- без
- слова
- Наихудший
- бы
- Неправильно
- год
- лет
- Ты
- ВАШЕ
- зефирнет