Автор:
Шеннон Куртас, директор із продуктів, Pro & Institutional Trading
Макс Каплан, старший технічний директор, базова інфраструктура та розробка даних
Сукету Ганді, старший технічний директор відділу торгівельних технологій
Стів Хант, віце-президент з інженерних питань
Майже дванадцять років тому Kraken розпочав новаторську місію стати однією з перших і найуспішніших бірж цифрових активів. Ми почали торгувати лише чотирма криптовалютами, але тепер підтримуємо понад 220 активів у 67 блокчейнах і понад 700 ринках.
Ми швидко виросли. Завдяки нашим продуктам і командам інженерів, включаючи експертів з технології блокчейн, безпеки, мереж, інфраструктури та торгових систем, ми змогли задовольнити величезний попит.
Оскільки індустрія розвивалася та розвивалася, розмір і характер нашої клієнтської бази також змінювалися. Хоча ми продовжуємо обслуговувати індивідуальних інвесторів і трейдерів через наш Кракена та KrakenPro платформи, все більша частина потоку наших замовлень надходить через алгоритм наш 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 тисяч запитів/хв до понад 1 мм запитів/хв, і між цим рівнем і нашим різким залишається значний запас покращена теоретична максимальна пропускна здатність.
Uptime
Цього року ми доклали зусиль, щоб мінімізувати час простою через планове технічне обслуговування, зменшити частоту та вплив незапланованих простоїв, а також збільшити швидкість оновлення функцій і підвищення продуктивності без негативного впливу на час безвідмовної роботи.
Ці зміни включали як технічні, так і операційні вдосконалення, такі як дедалі зріліша та велика команда операційної стійкості, яка працює 24/7.
Хоча час безвідмовної роботи за наш найгірший місяць у 2021 році становив близько 99%, ці вдосконалення дозволили нам встановити дедалі агресивніші бюджети помилок і цільовий час безвідмовної роботи для торгівлі на рівні 99.9+%.
Зусилля
Синій/зелений і рухоме розгортання
Ми все частіше використовуємо a синьо-зелена стратегія розгортання через наші API-шлюзи та багато внутрішніх служб. Ви можете побачити дуже спрощену ілюстрацію цього, виділену на малюнку 6. Паралельно працюючи з кількома повноцінними стеками коду, ми можемо розгортати функції, не порушуючи основний стек, який зараз отримує клієнтський трафік. Після цього трафік можна перенаправити до нового стеку, що призведе до розгортання без наслідків або дуже швидкої процедури відкату, якщо щось піде не так. Крім того, для багатьох наших служб, які обслуговують кілька екземплярів з метою балансування навантаження, оновлення цих екземплярів відбуваються на постійній основі, а не за принципом «все або нічого». Тепер ці підходи дозволяють нам проводити частіші оновлення переважної більшості нашого стеку технологій без жодного впливу.
Інфраструктура як код
Кракен використовує великі важелі Інфраструктура як код (IaC) з Terraform та Кочівник, значною мірою для гарантії узгодженості всіх розгортань коду, а також повторюваності. Ми автоматизуємо наші репозиторії Terraform за допомогою безперервної інтеграції та безперервної доставки, щоб ми могли швидко та надійно вводити зміни. За останні два роки ми розгорнули нову інфраструктуру з використанням IAC, і майже вся наша інфраструктура сьогодні використовує цей шаблон. Цей крок став важливою віхою, і ми використовуємо IAC як для хмарних, так і для локальних програм.
Підключення та мережа
Ми використовуємо приватне підключення між AWS і нашими локальними центрами обробки даних. Це підключення дозволяє Kraken гарантувати, що ми маємо найнижчу можливу затримку, найвищу можливу безпеку та резервні шляхи, щоб гарантувати, що ми можемо завжди зв’язуватися з AWS. Нещодавні вдосконалення мережі та маршрутизації дозволили значно скоротити базову затримку двосторонньої торгівлі, виділену вище.
Прилади та телеметрія
Точне та точне ведення журналів, показники та відстеження запитів дозволили нам швидко виявляти, діагностувати та вирішувати будь-які несподівані вузькі місця та проблеми з продуктивністю в режимі реального часу. Окрім цієї телеметрії та нашого власного моніторингу конкуренції, ми також нещодавно оновили показники затримки API та часу безвідмовної роботи на status.kraken.com із розгортанням зовнішніх моніторів, щоб загалом точніше відображати ці цифри на основі досвіду клієнтів.
Оптимізовані розгортання API
У будь-який момент наші API і торговий стек підтримують десятки тисяч з’єднань, які алгоритмічно торгують через наші Websockets або REST API. Сотні тисяч додаткових з’єднань надходять з наших платформ інтерфейсу користувача, включаючи нашу нову високопродуктивну KrakenPro платформа. Хоча ці платформи користуються багатьма перевагами основної торговельної інфраструктури, описаними в цій публікації, робочі навантаження принципово відрізняються та мають різні вимоги. Індивідуальне розгортання API для підтримки наших платформ інтерфейсу користувача з певними каналами даних, стисненням, обмеженням, агрегацією тощо дозволило нам ще більше підвищити швидкість і зменшити марну пропускну здатність, а отже, збільшити загальну пропускну здатність клієнта.
Покращення коду ядра
Ми внесли низку подальших суттєвих удосконалень у всьому стеку шляхом реорганізації основних служб Іржа і C++. Ці зміни посилюють використання асинхронного обміну повідомленнями та збереження даних, де це можливо, і допомагають нам створювати надійне профілювання продуктивності в більшій кількості наших конвеєрів CI/CD. Вони також дозволяють нам використовувати найвідоміші методи статичного та динамічного аналізу коду. Кілька з цих удосконалень призвели до зниження середньої затримки відповідного механізму з мілісекунд до мікросекунди. Це більш ніж на 90% покращення порівняно з двома роками раніше, а пропускна здатність підтримується більш ніж у 4 рази.
Що далі?
Власний API FIX
Незабаром ми також запустимо наш рідний FIX API для спотових ринкових даних і торгівлі. FIX, що означає обмін фінансовою інформацією, — це потужний і комплексний, але гнучкий галузевий стандарт API, який багато установ використовують для торгівлі акціями, валютою та фіксованим доходом у великих масштабах. Це надійний і перевірений у боях протокол із широким спектром програмного забезпечення сторонніх розробників і підтримкою відкритого коду, що полегшує та прискорює установам інтеграцію з Kraken і початок торгівлі.
Власний FIX API Kraken також має архітектурні нюанси та переваги порівняно з нашими Websockets і REST API, включаючи скасування після відключення на основі сеансу, гарантовану доставку повідомлень у порядку, відновлення сеансу та повторне відтворення. Наш FIX API наразі перебуває на етапі бета-тестування — досягти якщо ви хочете допомогти скинути шини!
Розгортання движка, що відповідає нульовому простою
Ми значно підвищили частоту розгортань шлюзів API та різноманітних серверних служб (автентифікація, аудит, телеметрія тощо) без жодного впливу. Однак для суттєвих оновлень відповідної системи все ще потрібне технічне обслуговування за розкладом і короткий час простою, який ми виконуємо приблизно раз на два тижні.
Однак наша команда доклала значних зусиль, щоб переробити деякі наші внутрішні системи обміну повідомленнями на технологію багатоадресної передачі, використовуючи Аерон, надзвичайно продуктивний і надійний набір інструментів для відмовостійких систем високої доступності. Результатом цього стане заплановане розгортання торгового стека без простоїв, яке стане доступним пізніше у 2023 році.
Потрібна допомога? Досягти
Будь ласка, зв’яжіться з нашими менеджерами облікового запису та відділами продажів установ, використовуючи адресу електронної пошти щоб дізнатися більше про будь-яке з цих оновлень, обговорити, як оптимізувати підключення до торгівлі, або провести бета-тестування майбутніх функцій, таких як наш FIX API.
Потрібні додаткові докази? Слідкуйте за новинами та підписуйтесь на оновлення status.kraken.com для будь-якого планового технічного обслуговування, сервісної інформації та статистики затримок і безвідмовної роботи.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://blog.kraken.com/post/17936/performance-at-kraken/
- :є
- $UP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- Здатний
- МЕНЮ
- вище
- абсолют
- рахунки
- управління рахунками
- точний
- точно
- досягнутий
- через
- діяльність
- адреса
- впливати
- агрегація
- агресивний
- алгоритмічно
- ВСІ
- дозволяє
- кількість
- аналіз
- та
- API
- Інтерфейси
- застосування
- підходи
- архітектурний
- ЕСТЬ
- Прибуває
- AS
- активи
- Активи
- At
- нападки
- аудит
- Authentication
- автоматизувати
- наявність
- доступний
- середній
- AWS
- Backend
- ширина смуги
- база
- Базова лінія
- основа
- BE
- ставати
- перед тим
- почалася
- починати
- буття
- бенчмаркінг
- Переваги
- КРАЩЕ
- бета
- Краще
- між
- За
- blockchain
- Технологія блокчейна
- блокчейни
- широкий
- ширше
- брокери
- Бюджети
- будувати
- by
- C + +
- call
- CAN
- потужність
- капіталізувати
- захоплення
- нести
- випадок
- випадків
- Центри
- певний
- зміна
- Зміни
- Графік
- клієнт
- клієнтів
- близько
- код
- Приходити
- порівняння
- конкурентоспроможний
- конкурентів
- всеосяжний
- компрометуючі
- Концентрований
- Умови
- Проводити
- підтвердити
- зв'язку
- Зв'язки
- зв'язок
- продовжувати
- безперервний
- Core
- корпорації
- Коштувати
- витрати
- крипто
- cryptocurrencies
- В даний час
- дані
- центрів обробки даних
- DDoS
- десятиліття
- глибокий
- затримка
- в захваті
- доставка
- Попит
- запити
- залежить
- розгортання
- розгорнути
- розгортання
- розгортання
- описаний
- Незважаючи на
- DID
- різниця
- Відмінності
- різний
- цифровий
- Цифровий актив
- Директор
- обговорювати
- лихо
- Не знаю
- час простою
- драматично
- різко
- Випадання
- під час
- динамічний
- e
- кожен
- легше
- зусилля
- зусилля
- або
- в іншому місці
- акцент
- включений
- двигун
- Машинобудування
- повністю
- ринок акцій
- помилка
- і т.д.
- Навіть
- еволюціонували
- приклад
- перевищувати
- обмін
- Біржі
- виконання
- досвідчений
- experts
- дослідити
- зовнішній
- надзвичайно
- очей
- фактори
- ярмарок
- особливість
- риси
- Рисунок
- цифри
- фінансовий
- фінансова інформація
- фініки
- фірми
- Перший
- виправляти
- фіксованою
- фіксований прибуток
- гнучкий
- потік
- для
- форма
- майбутній
- FRAME
- частота
- частий
- від
- FTX
- Повний
- принципово
- засоби
- далі
- Крім того
- FX
- Загальне
- в цілому
- даний
- Go
- Зростання
- вирощений
- Зростання
- гарантувати
- гарантований
- Обробка
- траплятися
- Мати
- гармонія
- сильно
- важкий
- хедж
- Хедж-фонди
- допомога
- Високий
- найвищий
- Виділіть
- Виділено
- Як
- How To
- HTTPS
- Сотні
- ідентифікувати
- Impact
- вплив
- важливо
- удосконалювати
- поліпшений
- поліпшення
- поліпшення
- in
- В інших
- включати
- включені
- includes
- У тому числі
- Дохід
- Augmenter
- збільшений
- зростаючий
- все більше і більше
- зазначений
- індивідуальний
- промисловість
- інформація
- Інфраструктура
- Інституційна
- інституційні клієнти
- установи
- інтегрувати
- інтеграція
- внутрішній
- Інтернет на основі
- Інвестори
- питання
- IT
- ЙОГО
- тримати
- удар
- відомий
- Кракена
- великий
- останній
- Затримка
- запуск
- провідний
- УЧИТЬСЯ
- дозволяє
- рівень
- Важіль
- як
- рамки
- ліквідності
- загрузка
- розташування
- made
- головний
- обслуговування
- основний
- Більшість
- зробити
- Робить
- управляти
- управління
- управління
- багато
- ринок
- дані ринку
- волатильності ринку
- ринки
- масивний
- узгодження
- матеріал
- зрілий
- макс-ширина
- максимальний
- засоби
- Між тим
- вимір
- вимір
- Зустрічатися
- згаданий
- повідомлення
- обмін повідомленнями
- методика
- Метрика
- віха
- мінімізація
- мінімальний
- Місія
- момент
- монітор
- моніторинг
- місяць
- більше
- найбільш
- рухатися
- MS
- множинний
- рідний
- природа
- майже
- негативно
- мережа
- Нові
- наступний
- Листопад
- номер
- номера
- of
- пропонувати
- on
- ONE
- відкрити
- з відкритим вихідним кодом
- працювати
- працює
- операційний
- оперативний
- експлуатаційна стійкість
- Можливості
- Оптимізувати
- порядок
- Інше
- загальний
- власний
- Паралельні
- частина
- особливо
- партія
- Минуле
- шлях
- Викрійки
- продуктивність
- наполегливість
- Фізично
- Піонерський
- запланований
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- точка
- це можливо
- пошта
- потужний
- запобігати
- price
- Prime
- попередній
- пріоритет
- приватний
- Pro
- Product
- професійний
- профілювання
- доказ
- власником
- захищений
- протокол
- цілей
- put
- Q1
- Швидко
- швидше
- швидко
- діапазон
- ставка
- швидше
- досягати
- досяг
- Реальний світ
- реального часу
- отримання
- останній
- нещодавно
- відновлення
- зменшити
- зниження
- відноситься
- відображати
- Відображає
- регіон
- райони
- регулярно
- доречний
- представляє
- запросити
- запитів
- вимагати
- Вимога
- пружність
- REST
- результат
- результати
- Risk
- міцний
- Котити
- рухомий
- грубо
- продажів
- то ж
- шкала
- Масштабування
- планування
- безпеку
- Серія
- служити
- обслуговування
- Послуги
- Сесія
- комплект
- кілька
- Повинен
- вимикання
- значний
- спрощений
- з
- один
- Розмір
- прослизання
- So
- Софтвер
- деякі
- Source
- конкретний
- швидкість
- шипи
- Spot
- спотовий ринок
- Стабільність
- стек
- укладені
- Стеки
- стенди
- старт
- почалася
- статистика
- Як і раніше
- підписуватися
- успішний
- такі
- набір
- підтримка
- Підтримуючий
- система
- Systems
- Мета
- команда
- команди
- технології
- технічний
- Технологія
- terms
- Terraform
- тест
- Тестування
- Дякую
- Що
- Команда
- їх
- теоретичний
- отже
- Ці
- третій
- тисячі
- через
- пропускна здатність
- час
- Часовий ряд
- Приурочений
- times
- до
- сьогодні
- інструменти
- топ
- Простеження
- Traders
- торгові площі
- традиційний
- трафік
- Довірений
- ui
- кінцевий
- при
- розуміти
- Unexpected
- оновлений
- Updates
- час безвідмовної роботи
- us
- використання
- різний
- величезний
- VeloCity
- Місце зустрічі
- місця проведення
- Проти
- через
- Volatility
- vs
- годинник
- week
- ДОБРЕ
- який
- в той час як
- волі
- з
- в
- без
- слова
- найгірше
- б
- Неправильно
- рік
- років
- Ти
- вашу
- зефірнет