Skapad av:
Shannon Kurtas, produktdirektör, Pro & Institutional Trading
Max Kaplan, Senior Engineering Director, Core Infrastructure & Data Engineering
Suketu Gandhi, senior ingenjörsdirektör, handelsteknik
Steve Hunt, VP Engineering
För nästan tolv år sedan började Kraken sitt banbrytande uppdrag att bli en av de första och mest framgångsrika digitala tillgångsbörserna. Vi började handla med endast fyra kryptovalutor, men vi stöder nu över 220 tillgångar på 67 blockkedjor och över 700 marknader.
Vi har växt snabbt. Tack vare våra produkt- och ingenjörsteam – inklusive experter inom blockchain-teknik, säkerhet, nätverk, infrastruktur och handelssystem – har vi kunnat hänga med i den enorma efterfrågan.
I takt med att branschen har mognat och utvecklats, har storleken och karaktären på vår kundbas också blivit det. Medan vi fortsätter att betjäna enskilda investerare och handlare via vår kraken och KrakenPro plattformar kommer en växande del av vårt orderflöde algoritmiskt via vårt API från professionella och institutionella kunder. Dessa inkluderar företag, hedgefonder, proprietära handelsföretag, prime brokers, fintechs, såväl som andra börser som förlitar sig på Krakens djupa likviditet.
Våra handelssystem har varit tvungna att skalas för att möta dessa ökade krav, särskilt för de som är starkt beroende av hastighet, stabilitet och drifttid för att förbättra exekveringskostnaderna, hantera marknadsrisker och dra nytta av handelsmöjligheter. Vi uppnådde allt detta utan att kompromissa med vår första prioritet — säkerhet.
Idag är vi glada över att kunna lyfta fram några av våra senaste ansträngningar, framgångar och resultat av den skalningen.
Prestandans företräde
Vi lägger stor vikt vid instrumenteringskod för att se och förstå vår systemprestanda under tunga, verkliga förhållanden. Vi använder också konkurrenskraftiga benchmarking för att bekräfta hur vi ställer oss över tid. Låt oss utforska några av dessa resultat.
Hastighet och latens
Vi mäter handelshastighet i form av latens. Latens är fördröjningen tur och retur och vi definierar den som tiden mellan en handelsbegäran (t.ex. lägg till order) som skickas av kundsystem och att den bekräftas av börsen.
Till skillnad från traditionella börser är kryptoplatser generellt sett mindre geografiskt koncentrerade och erbjuder inte fullständig samlokalisering. I många fall är de helt molnbaserade.
Latenskänsliga klienter kommer att distribuera kod varhelst den är mest fysiskt nära platsen. Därför inkluderar en rättvis jämförelse mätning av latens från den region som är mest relevant för den specifika platsen.
Latensen kommer också att variera mellan handelsförfrågningar, även vid en ihållande anslutning mellan en enskild kund och börsen. Detta beror på både skillnader och variationer i internetbaserad handel, samt hur börsen hanterar belastning. Därför måste vi diskutera latenser i termer av percentiler snarare än enskilda siffror. Till exempel hänvisar P25-latens till 25:e-percentilens latens. Med andra ord betyder en P25 på 5ms att 25% av alla handelsförfrågningar inom en given samplingstidsram hade en latens på 5ms eller bättre.
Här ser du Krakens bästa P25-fördröjning jämfört med några av våra toppkonkurrenter i olika regioner, normaliserade för plats, under en baslinjemätning förra månaden.
Vår baslinjefördröjning tur och retur på cirka 2.5 ms representerar en förbättring på över 97 % jämfört med första kvartalet 1.
Stabilitet
Som nämnts tidigare är verkliga prestanda under tung belastning lika viktig, om inte viktigare, än bästa fall-prestanda och absoluta latenssiffror.
Att förbättra exekveringskostnaderna, minska glidningen och hantera marknadsrisk beror på att minimera variabilitet av latens mellan varje handelsförfrågan. Vi kallar detta variabilitetsjitter och vi mäter skillnaden mellan olika latenspercentilvärden för samma samplingstidsram.
Genom att mäta jitter med P25- och P95-latenser kan vi fånga ett betydande utbud av prestanda och observerat beteende över tid. Till exempel mätte vi hur vårt jitter stack upp med en bredare uppsättning toppkonkurrenter under veckan 5-12 november 2022, en tid då marknadsvolatiliteten var akut på grund av nöden och den slutliga nedläggningen av FTX.
Här kan du se hur vår handelsinfrastruktur betedde sig exceptionellt bra, trots den dramatiskt ökade volatiliteten och belastningen. Vid ingen tidpunkt under veckan översteg detta jitter 30ms. Under tiden, för många andra utbyten, nådde det regelbundet flera hundra millisekunder, eller förfrågningar togs ut helt, vilket indikeras av de vertikala topparna.
genomströmning
Genomströmningen återspeglar antalet framgångsrika handelsförfrågningar (lägg till order, avbryt order, redigera order, etc.) som hanteras av en börs under en given tidsperiod.
I likhet med latens diskuterar vi genomströmning i antingen teoretiska eller observerade termer.
Observerad genomströmning är mer relevant eftersom den återspeglar många inbördes relaterade faktorer, inklusive hastighetsgränser. Vi sätter dessa gränser för att förhindra DDoS-attacker och hålla trafiken bekvämt inom teoretiska gränser. Kundbasens storlek, den allmänna efterfrågan på marknaden, orderflödet (som påverkas kraftigt av prisvolatilitet och handelsaktivitet på andra håll) och prestanda under belastning (eftersom kunderna skulle börja strypa sina egna förfrågningar efter en viss nivå av serviceförsämring) dessa gränser.
Här har vi illustrerat den över 4x förbättringen av vår maximala observerade genomströmning mellan Q1 2021 och Q1 2023. Denna förändring är en övergång från 250 1 förfrågningar/min till över XNUMX mm förfrågningar/min, och det finns ett betydande utrymme kvar mellan denna nivå och vår dramatiskt förbättrad teoretisk maximal genomströmning.
Uptime
I år har vi ansträngt oss för att minimera driftstopp på grund av planerat underhåll, minska frekvensen och påverkan av oplanerade driftstopp och öka hastigheten för funktionsuppdateringar och prestandaförbättringar utan att påverka drifttiden negativt.
Dessa förändringar inkluderade både tekniska och operativa förbättringar, såsom ett allt mognare och större operativt motståndskraftsteam som arbetar 24/7.
Medan drifttiden för vår värsta månad 2021 var nära 99 %, har dessa förbättringar gjort det möjligt för oss att sätta allt mer aggressiva felbudgetar och ett upptidsmål för handel på 99.9+ %.
Ansträngningar
Blå/gröna och rullande utbyggnader
Vi har använt oss i allt större utsträckning av en blå/grön implementeringsstrategi över våra API-gateways och många interna tjänster. Du kan se en mycket förenklad illustration av detta framhävs i figur 6. Genom att använda flera fullfjädrade kodstackar parallellt kan vi distribuera funktioner utan att störa huvudstacken som för närvarande tar emot klienttrafik. Efteråt kan trafiken omdirigeras till den nya stacken, vilket leder till en implementering utan påverkan, eller en mycket snabb återställningsprocedur om något skulle gå fel. Dessutom, för våra många tjänster som driver flera instanser för belastningsbalansering, sker uppdateringar av dessa instanser rullande snarare än allt-eller-ingen. Dessa tillvägagångssätt gör det nu möjligt för oss att genomföra noll-påverkan, och mer frekventa uppdateringar, till den stora majoriteten av vår tekniska stack.
Infrastruktur som kod
Kraken utnyttjar kraftigt Infrastruktur som kod (IaC) med Terraform och Nomad, till stor del för att garantera konsistens i alla koddistributioner samt repeterbarhet. Vi automatiserar våra Terraform-lager med kontinuerlig integration och kontinuerlig leverans så att vi kan rulla ut ändringar snabbt och tillförlitligt. Under de senaste två åren har vi implementerat ny infrastruktur med IaC och nästan all vår infrastruktur idag använder detta mönster. Detta steg var en stor milstolpe och vi utnyttjar IaC för både molnbaserade och lokala applikationer.
Uppkoppling och nätverk
Vi utnyttjar privata anslutningar mellan AWS och våra lokala datacenter. Denna anslutning gör att Kraken kan garantera att vi har lägsta möjliga latens, högsta möjliga säkerhet och redundanta vägar för att se till att vi kan nå ut till AWS hela tiden. Nyligen genomförda nätverks- och routingförbättringar har möjliggjort en betydande del av baslinjens minskning av handelslatensen för tur och retur som belysts ovan.
Instrumentering och telemetri
Finkornig och exakt loggning, mätvärden och spårning av förfrågningar har gjort det möjligt för oss att snabbt identifiera, diagnostisera och lösa eventuella oväntade flaskhalsar och prestandaproblem i realtid. Utöver denna telemetri och vår egen konkurrensutsatta övervakning har vi också nyligen uppdaterat vår API-fördröjning och drifttid på status.kraken.com med externa bildskärmsinstallationer för att i allmänhet mer exakt återspegla dessa siffror som upplevs av klienter.
Optimerade API-distributioner
När som helst stöder våra API:er och handelsstack tiotusentals anslutningar som handlas algoritmiskt genom våra Websockets eller REST API:er. Hundratusentals fler anslutningar kommer från våra UI-plattformar, inklusive vår nya högpresterande KrakenPro plattform. Även om dessa plattformar skördar många av samma fördelar för kärnhandelsinfrastruktur som beskrivs i det här inlägget, är arbetsbelastningen fundamentalt olika och har olika krav. Skräddarsydda API-distributioner för att stödja våra UI-plattformar, med specifika dataflöden, komprimering, strypning, aggregering, etc. har gjort det möjligt för oss att ytterligare förbättra hastigheten och minska slöseri med bandbredd, och därför öka den totala klientkapaciteten.
Förbättringar av kärnkoder
Vi har gjort en rad ytterligare, dramatiska förbättringar över hela stacken genom att omarbeta kärntjänsterna i Rust och C++. Dessa förändringar gör ökad användning av asynkron meddelandehantering och databeständighet där det är möjligt och hjälper oss att bygga in robust prestandaprofilering i fler av våra CI/CD-pipelines. De låter oss också använda de mest kända metoderna för statisk och dynamisk kodanalys. Flera av dessa förbättringar har kulminerat i att den matchande motorns genomsnittliga latens har sjunkit från millisekunder till mikrosekunder. Detta är en förbättring på mer än 90 % jämfört med två år tidigare, samtidigt som det stödjer över 4x genomströmningen.
Vad kommer härnäst?
Native FIX API
Vi kommer också snart att lansera vårt inbyggda FIX API för spotmarknadsdata och handel. FIX, som står för Financial Information Exchange, är ett kraftfullt och omfattande men flexibelt industristandard-API som många institutioner använder för handel med aktier, valuta och räntebärande intäkter i stor skala. Det är ett pålitligt och stridstestat protokoll, med bred programvara från tredje part och stöd för öppen källkod, vilket gör det enklare och snabbare för institutioner att integrera med Kraken och börja handla.
Krakens inbyggda FIX API kommer också med arkitektoniska nyanser och fördelar i förhållande till våra Websockets och REST API:er, inklusive sessionsbaserad avbrytning vid avkoppling, garanterad leverans av meddelanden i ordning, sessionsåterställning och återuppspelning. Vårt FIX API är för närvarande i betatestning — nå ut om du vill hjälpa till att sparka däcken!
Noll driftstopp med matchande motor
Vi har gjort betydande framsteg när det gäller frekvensen av noll-impact-distributioner av API-gateways och olika backend-tjänster (autentisering, revision, telemetri, etc.). Materialuppdateringar av vår matchande motor kräver dock fortfarande schemaläggning av underhåll och korta stillestånd, vilket vi utför ungefär varannan vecka.
Men vårt team genomgick en betydande ansträngning för att omkonstruera några av våra interna meddelandesystem med multicast-teknik, med användning av Aeron, en extremt presterande och robust uppsättning verktyg för feltoleranta system med hög tillgänglighet. Resultatet av detta kommer att bli planerade driftstopp utan driftstopp över handelsstacken, tillgängliga senare under 2023.
Behövs hjälp? Nå ut
Kontakta vår kontohantering och institutionella säljteam med e-postadressen för att lära dig mer om någon av dessa uppdateringar, för att diskutera hur du optimerar din handelsanslutning, eller för att betatesta kommande funktioner som vårt FIX API.
Behöver du fler bevis? Håll utkik och prenumerera på uppdateringar om status.kraken.com för planerat underhåll, serviceinformation och latens- och drifttidsstatistik.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://blog.kraken.com/post/17936/performance-at-kraken/
- :är
- $UPP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- Able
- Om Oss
- ovan
- Absolut
- Konto
- kontohantering
- exakt
- exakt
- uppnås
- tvärs
- aktivitet
- adress
- påverka
- aggregation
- aggressiv
- algoritm
- Alla
- tillåter
- mängd
- analys
- och
- api
- API: er
- tillämpningar
- tillvägagångssätt
- arkitektoniska
- ÄR
- Ankommer
- AS
- tillgång
- Tillgångar
- At
- Attacker
- revision
- Autentisering
- automatisera
- tillgänglighet
- tillgänglig
- genomsnitt
- AWS
- backend
- Bandbredd
- bas
- Baslinje
- grund
- BE
- blir
- innan
- började
- börja
- Där vi får lov att vara utan att konstant prestera,
- benchmarking
- Fördelarna
- BÄST
- beta
- Bättre
- mellan
- Bortom
- blockchain
- Blockchain-teknik
- blockchains
- bred
- bredare
- mäklare
- budgetar
- SLUTRESULTAT
- by
- C + +
- Ring
- KAN
- Kapacitet
- kapitalisera
- fånga
- bära
- Vid
- fall
- Centers
- vissa
- byta
- Förändringar
- Diagram
- klient
- klienter
- Stäng
- koda
- komma
- jämförelse
- konkurrenskraftig
- konkurrenter
- omfattande
- komprometterande
- Koncentrerad
- villkor
- Genomför
- Bekräfta
- anslutning
- Anslutningar
- Anslutningar
- fortsätta
- kontinuerlig
- Kärna
- Företag
- Pris
- Kostar
- crypto
- cryptocurrencies
- För närvarande
- datum
- datacenter
- DDoS
- årtionde
- djup
- fördröja
- förtjust
- leverans
- Efterfrågan
- krav
- beror
- distribuera
- utplacerade
- utplacering
- distributioner
- beskriven
- Trots
- DID
- Skillnaden
- skillnader
- olika
- digital
- Digital tillgång
- Direktör
- diskutera
- ångest
- inte
- stilleståndstid
- dramatiskt
- dramatiskt
- Drop
- under
- dynamisk
- e
- varje
- lättare
- ansträngning
- ansträngningar
- antingen
- annorstädes
- vikt
- aktiverad
- Motor
- Teknik
- helt
- aktier
- fel
- etc
- Även
- utvecklats
- exempel
- överstiga
- utbyta
- Utbyten
- utförande
- erfaren
- experter
- utforska
- extern
- extremt
- ögat
- faktorer
- verkligt
- Leverans
- Funktioner
- Figur
- siffror
- finansiella
- finansiell information
- fintechs
- företag
- Förnamn
- Fast
- fixerad
- fast inkomst
- flexibel
- flöda
- För
- formen
- kommande
- RAM
- Frekvens
- frekvent
- från
- FTX
- full
- fundamentalt
- fonder
- ytterligare
- Vidare
- FX
- Allmänt
- allmänhet
- ges
- Go
- Odling
- vuxen
- Tillväxt
- garanti
- garanterat
- Arbetsmiljö
- hända
- Har
- fri höjd
- kraftigt
- tung
- häck
- Hedgefonder
- hjälpa
- Hög
- högsta
- Markera
- Markerad
- Hur ser din drömresa ut
- How To
- HTTPS
- Hundratals
- identifiera
- Inverkan
- påverkade
- med Esport
- förbättra
- förbättras
- förbättring
- förbättringar
- in
- I andra
- innefattar
- ingår
- innefattar
- Inklusive
- Inkomst
- Öka
- ökat
- ökande
- alltmer
- indikerade
- individuellt
- industrin
- informationen
- Infrastruktur
- Institutionell
- institutionella kunder
- institutioner
- integrera
- integrering
- inre
- Internetbaserad
- För Investerare
- problem
- IT
- DESS
- Ha kvar
- sparka
- känd
- kraken
- Large
- Efternamn
- Latens
- lansera
- ledande
- LÄRA SIG
- Lets
- Nivå
- Hävstång
- tycka om
- gränser
- Likviditet
- läsa in
- läge
- gjord
- Huvudsida
- underhåll
- större
- Majoritet
- göra
- Framställning
- hantera
- ledning
- hantera
- många
- marknad
- Market Data
- Marknadsvolatilitet
- Marknader
- massiv
- matchande
- Materialet
- mogen
- max-bredd
- maximal
- betyder
- Samtidigt
- mäta
- mätning
- Möt
- nämnts
- meddelande
- meddelandehantering
- metoder
- Metrics
- milstolpe
- minimerande
- minsta
- Mission
- ögonblick
- Övervaka
- övervakning
- Månad
- mer
- mest
- flytta
- MS
- multipel
- nativ
- Natur
- nästan
- negativt
- nätverk
- Nya
- Nästa
- November
- antal
- nummer
- of
- erbjudanden
- on
- ONE
- öppet
- öppen källkod
- driva
- fungerar
- drift
- operativa
- operativ motståndskraft
- möjligheter
- Optimera
- beställa
- Övriga
- övergripande
- egen
- Parallell
- del
- särskilt
- parti
- Tidigare
- bana
- Mönster
- prestanda
- persistens
- Fysiskt
- Banbrytande
- planeras
- plattform
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- Punkt
- möjlig
- Inlägg
- den mäktigaste
- förhindra
- pris
- Prime
- Innan
- prioritet
- privat
- Pro
- Produkt
- professionell
- profilering
- bevis
- proprietary
- skyddad
- protokoll
- syfte
- sätta
- Q1
- Snabbt
- snabbare
- snabbt
- område
- Betygsätta
- snarare
- nå
- kommit fram till
- verkliga världen
- realtid
- mottagande
- senaste
- nyligen
- återvinning
- minska
- reducerande
- hänvisar
- reflektera
- Reflekterar
- region
- regioner
- regelbundet
- relevanta
- representerar
- begära
- förfrågningar
- kräver
- Krav
- motståndskraft
- REST
- resultera
- Resultat
- Risk
- robusta
- Rulla
- Rullande
- ungefär
- försäljning
- Samma
- Skala
- skalning
- schemaläggning
- säkerhet
- Serier
- tjänar
- service
- Tjänster
- session
- in
- flera
- skall
- avstängning
- signifikant
- förenklade
- eftersom
- enda
- Storlek
- glidning
- So
- Mjukvara
- några
- Källa
- specifik
- fart
- spikar
- Spot
- spotmarknad
- Stabilitet
- stapel
- staplade
- Stacks
- står
- starta
- igång
- statistik
- Fortfarande
- prenumerera
- framgångsrik
- sådana
- svit
- stödja
- Stödjande
- system
- System
- Målet
- grupp
- lag
- tech
- Teknisk
- Teknologi
- villkor
- Terraform
- testa
- Testning
- Tack
- den där
- Smakämnen
- deras
- teoretiska
- därför
- Dessa
- Tredje
- tusentals
- Genom
- genomströmning
- tid
- Tidsföljder
- Timed
- gånger
- till
- i dag
- verktyg
- topp
- spåra
- handlare
- Handel
- traditionell
- trafik
- betrodd
- ui
- slutliga
- under
- förstå
- Oväntat
- uppdaterad
- Uppdateringar
- upptid
- us
- användning
- olika
- Omfattande
- Hastighet
- Mötesplats
- arenor
- Kontra
- via
- Volatilitet
- vs
- Kolla på
- vecka
- VÄL
- som
- medan
- kommer
- med
- inom
- utan
- ord
- värsta
- skulle
- Fel
- år
- år
- Om er
- Din
- zephyrnet