Autor:
Shannon Kurtas, dyrektor produktu ds. handlu profesjonalnego i instytucjonalnego
Max Kaplan, starszy dyrektor techniczny ds. infrastruktury podstawowej i inżynierii danych
Suketu Gandhi, starszy dyrektor techniczny ds. technologii handlowych
Steve Hunt, wiceprezes ds. inżynierii
Prawie dwanaście lat temu Kraken rozpoczął swoją pionierską misję stania się jedną z pierwszych i odnoszących największe sukcesy giełd aktywów cyfrowych. Zaczęliśmy handlować tylko czterema kryptowalutami, ale obecnie obsługujemy ponad 220 aktywów na 67 łańcuchach bloków i na ponad 700 rynkach.
Szybko się rozwinęliśmy. Dzięki naszym zespołom produktowym i inżynieryjnym — w tym ekspertom w dziedzinie technologii blockchain, bezpieczeństwa, sieci, infrastruktury i systemów transakcyjnych — byliśmy w stanie nadążyć za ogromnym popytem.
Wraz z dojrzewaniem i ewolucją branży zmienia się również wielkość i charakter naszej bazy klientów. Chociaż nadal obsługujemy inwestorów indywidualnych i handlowców za pośrednictwem naszego Kraken i KrakenPro platform, coraz większa część naszego przepływu zamówień dociera algorytmicznie przez nasze API od klientów profesjonalnych i instytucjonalnych. Należą do nich korporacje, fundusze hedgingowe, własne firmy handlowe, prime brokerzy, fintechy, a także inne giełdy opierające się na głębokiej płynności Krakena.
Nasze systemy transakcyjne musiały się skalować, aby sprostać tym zwiększonym wymaganiom, szczególnie w przypadku tych, które w dużym stopniu zależą od szybkości, stabilności i czasu działania, aby poprawić koszty realizacji, zarządzać ryzykiem rynkowym i wykorzystać możliwości handlowe. Osiągnęliśmy to wszystko bez uszczerbku dla naszego priorytetu numer jeden — bezpieczeństwo.
Dziś z przyjemnością przedstawiamy niektóre z naszych ostatnich wysiłków, sukcesów i wyników tego skalowania.
Prymat wydajności
Kładziemy duży nacisk na oprzyrządowanie kodu, aby obserwować i rozumieć wydajność naszego systemu w ciężkich, rzeczywistych warunkach. Stosujemy również konkurencyjne testy porównawcze, aby potwierdzić, jak układamy się w czasie. Przyjrzyjmy się niektórym z tych wyników.
Szybkość i opóźnienie
Szybkość handlu mierzymy w postaci opóźnienia. Opóźnienie to opóźnienie w obie strony i definiujemy je jako czas między żądaniem transakcji (np. dodaniem zlecenia) wysłanym przez systemy klienta a potwierdzeniem przez giełdę.
W przeciwieństwie do tradycyjnych giełd, miejsca kryptograficzne są generalnie mniej skoncentrowane geograficznie i nie oferują pełnej kolokacji. W wielu przypadkach są one całkowicie oparte na chmurze.
Klienci wrażliwi na opóźnienia będą wdrażać kod tam, gdzie jest on fizycznie najbliżej miejsca. Dlatego rzetelne porównanie obejmuje pomiar opóźnienia z regionu najbardziej odpowiedniego dla tego konkretnego miejsca.
Opóźnienie będzie się również różnić w zależności od żądań handlowych, nawet w przypadku trwałego połączenia między pojedynczym klientem a giełdą. Wynika to zarówno z różnic i zmienności w handlu internetowym, jak iz tego, jak giełda radzi sobie z obciążeniem. Dlatego musimy omówić opóźnienia w kategoriach percentyli, a nie pojedynczych liczb. Na przykład opóźnienie P25 odnosi się do opóźnienia 25. percentyla. Innymi słowy, P25 wynoszący 5 ms oznacza, że 25% wszystkich żądań handlowych w danym przedziale czasowym próbkowania miało opóźnienie 5 ms lub lepsze.
Tutaj widzisz najlepsze opóźnienie P25 na ścieżce Krakena w porównaniu z niektórymi naszymi czołowymi konkurentami w różnych regionach, znormalizowane dla lokalizacji, podczas pomiaru linii bazowej w zeszłym miesiącu.
Nasze bazowe opóźnienie w obie strony wynoszące około 2.5 ms oznacza ponad 97% poprawę w porównaniu z pierwszym kwartałem 1 r.
Stabilność
Jak wspomniano wcześniej, rzeczywista wydajność przy dużym obciążeniu jest równie ważna, jeśli nie ważniejsza, niż wydajność w najlepszym przypadku i bezwzględne wartości opóźnień.
Poprawa kosztów realizacji, ograniczenie poślizgu i zarządzanie ryzykiem rynkowym zależy od minimalizacji zmienność opóźnienia między każdym zleceniem handlowym. Nazywamy to jitterem zmienności i mierzymy różnicę między różnymi wartościami procentowymi latencji dla tego samego przedziału czasowego próbkowania.
Mierząc jitter z opóźnieniami P25 i P95, możemy uchwycić znaczny zakres wydajności i obserwowanego zachowania w czasie. Na przykład zmierzyliśmy, jak nasz jitter układał się z szerszym zestawem czołowych konkurentów w tygodniu od 5 do 12 listopada 2022 r., kiedy zmienność rynku była dotkliwa z powodu trudności i ostatecznego zamknięcia FTX.
Tutaj możesz zobaczyć, jak wyjątkowo dobrze zachowywała się nasza infrastruktura handlowa, pomimo dramatycznie zwiększonej zmienności i obciążenia. W żadnym momencie tygodnia jitter nie przekroczył 30 ms. Tymczasem w przypadku wielu innych giełd regularnie dochodziło do kilkuset milisekund lub żądania całkowicie przekraczały limit czasu, na co wskazują pionowe skoki.
Wydajność
Przepustowość odzwierciedla liczbę pomyślnie zrealizowanych zleceń handlowych (dodanie zlecenia, anulowanie zlecenia, edycja zlecenia itp.) obsłużonych przez giełdę w określonym czasie.
Podobnie jak w przypadku opóźnień, omawiamy przepustowość w kategoriach teoretycznych lub obserwowanych.
Obserwowana przepustowość jest bardziej istotna, ponieważ odzwierciedla wiele powiązanych ze sobą czynników, w tym limity szybkości. Ustaliliśmy te limity, aby zapobiegać atakom DDoS i utrzymywać ruch w granicach teoretycznych. Wielkość bazy klientów, ogólny popyt rynkowy, przepływ zamówień (na który duży wpływ mają zmienność cen i działalność handlowa w innych miejscach) oraz wydajność pod obciążeniem (ponieważ powyżej pewnego poziomu degradacji usług klienci zaczęliby ograniczać własne żądania) wszystko to wpływa te granice.
Tutaj zilustrowaliśmy ponad 4-krotną poprawę naszej maksymalnej zaobserwowanej przepustowości między pierwszym kwartałem 1 r. a pierwszym kwartałem 2021 r. Ta zmiana oznacza przejście z 1 2023 żądań/min do ponad 250 mm żądań/min, a między tym poziomem a naszym dramatycznym poprawiona teoretyczna maksymalna przepustowość.
Uptime
W tym roku dołożyliśmy wszelkich starań, aby zminimalizować przestoje spowodowane planowaną konserwacją, zmniejszyć częstotliwość i wpływ nieplanowanych przestojów oraz przyspieszyć aktualizacje funkcji i ulepszenia wydajności bez negatywnego wpływu na dyspozycyjność.
Zmiany te obejmowały zarówno ulepszenia techniczne, jak i operacyjne, takie jak coraz bardziej dojrzały i liczny zespół ds. odporności operacyjnej, który działa 24 godziny na dobę, 7 dni w tygodniu.
Podczas gdy czas sprawności w naszym najgorszym miesiącu w 2021 r. był bliski 99%, te ulepszenia pozwoliły nam ustalić coraz bardziej agresywne budżety błędów i docelowy czas działania na poziomie 99.9+%.
Starania
Wdrożenia niebieskie/zielone i stopniowe
W coraz większym stopniu korzystaliśmy z niebiesko-zielona strategia wdrażania w naszych bramach API i wielu usługach wewnętrznych. Możesz zobaczyć bardzo uproszczoną ilustrację tego, co jest zaznaczone na rysunku 6. Dzięki równoległemu działaniu wielu pełnoprawnych stosów kodu, możemy wdrażać funkcje bez zakłócania głównego stosu, który aktualnie odbiera ruch kliencki. Następnie ruch może zostać przekierowany do nowego stosu, co prowadzi do wdrożenia bez wpływu lub bardzo szybkiej procedury wycofywania, jeśli coś pójdzie nie tak. Ponadto w przypadku wielu naszych usług, które działają na wielu instancjach w celu równoważenia obciążenia, aktualizacje tych instancji są aktualizowane na bieżąco, a nie na zasadzie „wszystko albo nic”. Takie podejście pozwala nam teraz na przeprowadzanie częstszych i bezproblemowych aktualizacji ogromnej większości naszego stosu technologicznego.
Infrastruktura jako kod
Kraken silnie wykorzystuje dźwignię Infrastruktura jako Kodeks (IAC) w Terraform i Koczownik, w dużej mierze w celu zagwarantowania spójności wszystkich wdrożeń kodu, a także powtarzalności. Automatyzujemy nasze repozytoria Terraform z ciągłą integracją i ciągłym dostarczaniem, dzięki czemu możemy szybko i niezawodnie wprowadzać zmiany. W ciągu ostatnich dwóch lat wdrożyliśmy nową infrastrukturę przy użyciu IaC i prawie cała nasza dzisiejsza infrastruktura korzysta z tego wzorca. To posunięcie było kamieniem milowym i wykorzystujemy IaC zarówno w aplikacjach chmurowych, jak i lokalnych.
Łączność i sieć
Wykorzystujemy prywatną łączność między AWS a naszymi lokalnymi centrami danych. Ta łączność pozwala Krakenowi zagwarantować najniższe możliwe opóźnienia, najwyższe możliwe bezpieczeństwo i nadmiarowe ścieżki, aby mieć pewność, że zawsze możemy dotrzeć do AWS. Niedawne ulepszenia w zakresie sieci i routingu umożliwiły znaczną część podstawowej redukcji opóźnień w handlu w obie strony, o której mowa powyżej.
Oprzyrządowanie i telemetria
Precyzyjne i dokładne rejestrowanie, metryki i śledzenie żądań pozwalają nam szybko identyfikować, diagnozować i rozwiązywać wszelkie nieoczekiwane wąskie gardła i problemy z wydajnością w czasie rzeczywistym. Oprócz tej telemetrii i naszego własnego monitorowania konkurencji, niedawno zaktualizowaliśmy również nasze wskaźniki opóźnienia API i czasu pracy status.kraken.com z wdrożeniami zewnętrznych monitorów, aby ogólnie dokładniej odzwierciedlać te liczby, z jakimi mają do czynienia klienci.
Zoptymalizowane wdrożenia API
W dowolnym momencie nasze interfejsy API i stos handlowy obsługują dziesiątki tysięcy połączeń handlujących algorytmicznie za pośrednictwem naszych interfejsów Websockets lub interfejsów API REST. Setki tysięcy dodatkowych połączeń pochodzi z naszych platform interfejsu użytkownika, w tym z naszej nowej, wysokowydajnej platformy KrakenPro platforma. Chociaż platformy te czerpią wiele korzyści z podstawowej infrastruktury handlowej opisanych w tym poście, obciążenia są zasadniczo różne i mają różne wymagania. Wdrożenia API na zamówienie do obsługi naszych platform interfejsu użytkownika, z określonymi źródłami danych, kompresją, ograniczaniem przepustowości, agregacją itp., pozwoliły nam jeszcze bardziej poprawić prędkość i zmniejszyć zmarnowaną przepustowość, a tym samym zwiększyć ogólną pojemność klienta.
Podstawowe ulepszenia kodu
Wprowadziliśmy szereg dalszych, radykalnych ulepszeń w całym stosie poprzez przeprojektowanie podstawowych usług w Rdza i C++. Te zmiany zwiększają wykorzystanie asynchronicznych komunikatów i trwałości danych tam, gdzie to możliwe, i pomagają nam zbudować solidne profilowanie wydajności w większej liczbie naszych potoków CI/CD. Pozwalają nam również stosować najbardziej znane metody statycznej i dynamicznej analizy kodu. Kilka z tych ulepszeń zakończyło się spadkiem średniego opóźnienia dopasowanego silnika z milisekund do mikrosekundy. To poprawa o ponad 90% w porównaniu z dwoma laty wcześniej, przy ponad 4-krotnie większej przepustowości.
Co dalej?
Natywne API FIX
Wkrótce uruchomimy również nasz natywny interfejs API FIX do obsługi danych rynkowych i handlu. FIX, co oznacza Financial Information Exchange, to potężny i wszechstronny, ale elastyczny standardowy interfejs API, którego wiele instytucji używa do handlu akcjami, walutami i instrumentami o stałym dochodzie na masową skalę. Jest to zaufany i sprawdzony protokół, z szerokim oprogramowaniem stron trzecich i wsparciem open source, co ułatwia i przyspiesza instytucjom integrację z Krakenem i rozpoczęcie handlu.
Natywny interfejs API FIX firmy Kraken zawiera również architektoniczne niuanse i korzyści w porównaniu z naszymi interfejsami Websockets i REST API, w tym oparte na sesji anulowanie przy rozłączeniu, gwarantowane dostarczanie wiadomości w kolejności, odzyskiwanie sesji i odtwarzanie. Nasze API FIX jest obecnie w fazie testów beta — osiągnąć jeśli chcesz pomóc kopnąć opony!
Wdrożenia pasujących silników bez przestojów
Dokonaliśmy znacznych postępów w zakresie częstotliwości wdrożeń bram API i różnych usług zaplecza (uwierzytelnianie, audyt, telemetria itp.), które nie mają żadnego wpływu. Jednak istotne aktualizacje naszego mechanizmu dopasowującego nadal wymagają planowania konserwacji i krótkich przestojów, które przeprowadzamy mniej więcej co dwa tygodnie.
Jednak nasz zespół włożył wiele wysiłku w przeprojektowanie niektórych naszych wewnętrznych systemów przesyłania wiadomości za pomocą technologii multiemisji, wykorzystując Aeron, niezwykle wydajny i solidny zestaw narzędzi do odpornych na awarie systemów o wysokiej dostępności. Rezultatem tego będą planowane wdrożenia bez przestojów w stosie handlowym, dostępne później w 2023 r.
Potrzebuję pomocy? Osiągnąć
Skontaktuj się z naszymi zespołami ds. zarządzania kontami i sprzedaży instytucjonalnej, korzystając z adresu e-mail aby dowiedzieć się więcej o tych aktualizacjach, omówić, jak zoptymalizować łączność handlową lub przetestować beta nadchodzące funkcje, takie jak nasz FIX API.
Potrzebujesz więcej dowodów? Miej oko i subskrybuj aktualizacje na status.kraken.com dla wszelkich planowanych prac konserwacyjnych, informacji serwisowych oraz statystyk opóźnień i czasu pracy.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://blog.kraken.com/post/17936/performance-at-kraken/
- :Jest
- $W GÓRĘ
- 2021
- 2022
- 2023
- 250 tysięcy
- 67
- 7
- 9
- a
- Zdolny
- O nas
- powyżej
- bezwzględny
- Konto
- Zarządzanie kontem
- dokładny
- dokładnie
- osiągnięty
- w poprzek
- działalność
- adres
- oddziaływać
- zbiór
- agresywny
- algorytmicznie
- Wszystkie kategorie
- pozwala
- ilość
- analiza
- i
- api
- Pszczoła
- aplikacje
- awanse
- architektoniczny
- SĄ
- Przybywa
- AS
- kapitał
- Aktywa
- At
- Ataki
- Audyt
- Uwierzytelnianie
- zautomatyzować
- dostępność
- dostępny
- średni
- AWS
- Backend
- przepustowość
- baza
- Baseline
- podstawa
- BE
- stają się
- zanim
- rozpoczął
- rozpocząć
- jest
- Benchmarkingu
- Korzyści
- BEST
- beta
- Ulepsz Swój
- pomiędzy
- Poza
- blockchain
- blockchain technologia
- blockchains
- szeroki
- szerszy
- brokerów
- Budżety
- budować
- by
- C + +
- wezwanie
- CAN
- Pojemność
- skapitalizować
- zdobyć
- nieść
- walizka
- Etui
- Centra
- pewien
- zmiana
- Zmiany
- Wykres
- klient
- klientów
- Zamknij
- kod
- jak
- porównanie
- konkurencyjny
- konkurenci
- wszechstronny
- kompromis
- Stężony
- Warunki
- Prowadzenie
- Potwierdzać
- połączenie
- połączenia
- Łączność
- kontynuować
- ciągły
- rdzeń
- Korporacje
- Koszty:
- Koszty:
- Crypto
- cryptocurrencies
- Obecnie
- dane
- centra danych
- DDoS
- dekada
- głęboko
- opóźnienie
- zachwycony
- dostawa
- Kreowanie
- wymagania
- zależy
- rozwijać
- wdrażane
- Wdrożenie
- wdrożenia
- opisane
- Mimo
- ZROBIŁ
- różnica
- Różnice
- różne
- cyfrowy
- Zasób cyfrowy
- Dyrektor
- dyskutować
- nieszczęście
- nie
- przestojów
- dramatycznie
- dramatycznie
- Rzut
- podczas
- dynamiczny
- e
- każdy
- łatwiej
- wysiłek
- starania
- bądź
- gdzie indziej
- nacisk
- włączony
- silnik
- Inżynieria
- całkowicie
- Akcje
- błąd
- itp
- Parzyste
- ewoluowały
- przykład
- przekraczać
- wymiana
- Wymiana
- egzekucja
- doświadczony
- eksperci
- odkryj
- zewnętrzny
- niezwykle
- oko
- Czynniki
- sprawiedliwy
- Cecha
- Korzyści
- Postać
- Postacie
- budżetowy
- Informacje finansowe
- fintechy
- firmy
- i terminów, a
- Fix
- ustalony
- o stałym dochodzie
- elastyczne
- pływ
- W razie zamówieenia projektu
- Nasz formularz
- nadchodzący
- FRAME
- Częstotliwość
- częsty
- od
- FTX
- pełny
- zasadniczo
- fundusze
- dalej
- Ponadto
- FX
- Ogólne
- ogólnie
- dany
- Go
- Rozwój
- dorosły
- Wzrost
- gwarancja
- gwarantowane
- Prowadzenie
- zdarzyć
- Have
- przedpokój
- ciężko
- ciężki
- żywopłot
- Fundusze hedgingowe
- pomoc
- Wysoki
- Najwyższa
- Atrakcja
- Podświetlony
- W jaki sposób
- How To
- HTTPS
- Setki
- zidentyfikować
- Rezultat
- wpływ
- ważny
- podnieść
- ulepszony
- poprawa
- ulepszenia
- in
- W innych
- zawierać
- włączony
- obejmuje
- Włącznie z
- Dochód
- Zwiększać
- wzrosła
- wzrastający
- coraz bardziej
- wskazany
- indywidualny
- przemysł
- Informacja
- Infrastruktura
- instytucjonalny
- klienci instytucjonalni
- instytucje
- integrować
- integracja
- wewnętrzny
- Internetowy
- Inwestorzy
- problemy
- IT
- JEGO
- Trzymać
- kopać
- znany
- Kraken
- duży
- Nazwisko
- Utajenie
- wodowanie
- prowadzący
- UCZYĆ SIĘ
- pozwala
- poziom
- Dźwignia
- lubić
- Limity
- Płynność
- załadować
- lokalizacja
- zrobiony
- Główny
- konserwacja
- poważny
- Większość
- robić
- Dokonywanie
- zarządzanie
- i konserwacjami
- zarządzający
- wiele
- rynek
- Dane rynkowe
- Zmienność rynku
- rynki
- masywny
- dopasowywanie
- materiał
- dojrzały
- Maksymalna szerokość
- maksymalny
- znaczy
- W międzyczasie
- zmierzyć
- zmierzenie
- Poznaj nasz
- wzmiankowany
- wiadomość
- wiadomości
- metody
- Metryka
- kamień milowy
- minimalizowanie
- minimum
- Misja
- moment
- monitor
- monitorowanie
- Miesiąc
- jeszcze
- większość
- ruch
- MS
- wielokrotność
- rodzimy
- Natura
- prawie
- ujemnie
- sieci
- Nowości
- Następny
- listopad
- numer
- z naszej
- of
- oferta
- on
- ONE
- koncepcja
- open source
- działać
- działa
- operacyjny
- operacyjny
- odporność operacyjna
- Szanse
- Optymalizacja
- zamówienie
- Inne
- ogólny
- własny
- Parallel
- część
- szczególnie
- przyjęcie
- Przeszłość
- ścieżka
- Wzór
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- uporczywość
- Fizycznie
- Pionierskość
- planowany
- Platforma
- Platformy
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- możliwy
- Post
- mocny
- zapobiec
- Cena
- premia
- Wcześniejszy
- priorytet
- prywatny
- Pro
- Produkt
- profesjonalny
- Profilowanie
- dowód
- własność
- chroniony
- protokół
- cele
- położyć
- Q1
- Szybki
- szybciej
- szybko
- zasięg
- Kurs
- raczej
- dosięgnąć
- osiągnięty
- Prawdziwy świat
- w czasie rzeczywistym
- odbieranie
- niedawny
- niedawno
- regeneracja
- zmniejszyć
- redukcja
- odnosi
- odzwierciedlić
- odzwierciedla
- region
- regiony
- regularnie
- reprezentuje
- zażądać
- wywołań
- wymagać
- wymagania
- sprężystość
- REST
- dalsze
- Efekt
- Ryzyko
- krzepki
- Rolka
- Walcowanie
- w przybliżeniu
- sole
- taki sam
- Skala
- skalowaniem
- szeregowanie
- bezpieczeństwo
- Serie
- służyć
- usługa
- Usługi
- Sesja
- zestaw
- kilka
- powinien
- zamknięcie
- znaczący
- uproszczony
- ponieważ
- pojedynczy
- Rozmiar
- poślizg
- So
- Tworzenie
- kilka
- Źródło
- specyficzny
- prędkość
- kolce
- Spot
- rynku spot
- Stabilność
- stos
- ułożone w stos
- Półki na książki
- stojaki
- początek
- rozpoczęty
- statystyka
- Nadal
- subskrybuj
- udany
- taki
- apartament
- wsparcie
- Wspierający
- system
- systemy
- cel
- zespół
- Zespoły
- tech
- Techniczny
- Technologia
- REGULAMIN
- Terraform
- test
- Testowanie
- Podziękowania
- że
- Połączenia
- ich
- teoretyczny
- w związku z tym
- Te
- Trzeci
- tysiące
- Przez
- wydajność
- czas
- Szereg czasowy
- Czasowy
- czasy
- do
- już dziś
- narzędzia
- Top
- Rysunek kalkowy
- Handlowcy
- Handel
- tradycyjny
- ruch drogowy
- zaufany
- ui
- ostateczny
- dla
- zrozumieć
- Nieoczekiwany
- zaktualizowane
- Nowości
- uptime
- us
- posługiwać się
- różnorodny
- Naprawiono
- Prędkość
- Miejsce
- miejsc
- Przeciw
- przez
- Zmienność
- vs
- Oglądaj
- tydzień
- DOBRZE
- który
- Podczas
- będzie
- w
- w ciągu
- bez
- słowa
- najgorszy
- by
- Źle
- rok
- lat
- You
- Twój
- zefirnet