Forfattet af:
Shannon Kurtas, produktdirektør, Pro & Institutional Trading
Max Kaplan, Sr. Engineering Director, Core Infrastructure & Data Engineering
Suketu Gandhi, Sr. Ingeniørdirektør, Handelsteknologi
Steve Hunt, VP Engineering
For næsten tolv år siden begyndte Kraken sin banebrydende mission om at blive en af de første og mest succesfulde digitale aktivudvekslinger. Vi begyndte kun at handle med fire kryptovalutaer, men vi understøtter nu over 220 aktiver på 67 blockchains og over 700 markeder.
Vi er vokset hurtigt. Takket være vores produkt- og ingeniørteam – inklusive eksperter i blockchain-teknologi, sikkerhed, netværk, infrastruktur og handelssystemer – har vi været i stand til at følge med den massive efterspørgsel.
Efterhånden som branchen er modnet og udviklet sig, er størrelsen og arten af vores kundebase også blevet det. Mens vi fortsætter med at betjene individuelle investorer og handlende via vores Kraken , KrakenPro platforme, ankommer en voksende del af vores ordreflow algoritmisk via vores API fra professionelle og institutionelle kunder. Disse omfatter selskaber, hedgefonde, proprietære handelsfirmaer, prime brokers, fintechs samt andre børser, der er afhængige af Krakens dybe likviditet.
Vores handelssystemer har været nødt til at skalere for at imødekomme disse øgede krav, især for dem, der er stærkt afhængige af hastighed, stabilitet og oppetid for at forbedre eksekveringsomkostningerne, styre markedsrisikoen og udnytte handelsmuligheder. Vi opnåede alt dette uden at gå på kompromis med vores førsteprioritet — sikkerhed.
I dag er vi glade for at fremhæve nogle af vores seneste indsats, succeser og resultater af denne skalering.
Ydeevnens forrang
Vi lægger stor vægt på instrumenteringskode for at se og forstå vores systemydelse under tunge forhold i den virkelige verden. Vi anvender også konkurrencedygtig benchmarking for at bekræfte, hvordan vi klarer os over tid. Lad os undersøge nogle af disse resultater.
Hastighed og ventetid
Vi måler handelshastighed i form af latency. Latency er retur-forsinkelsen, og vi definerer det som tiden mellem en handelsanmodning (f.eks. tilføje ordre) sendes af klientsystemer, og den bliver bekræftet af børsen.
I modsætning til traditionelle børser er kryptosteder generelt mindre geografisk koncentrerede og tilbyder ikke fuld samlokalisering. I mange tilfælde er de udelukkende cloud-baserede.
Latency-følsomme klienter vil implementere kode, hvor det er mest fysisk tæt på spillestedet. Derfor inkluderer en rimelig sammenligning måling af latenstid fra den region, der er mest relevant for det specifikke spillested.
Latency vil også variere mellem handelsanmodninger, selv ved en vedvarende forbindelse mellem en enkelt kunde og børsen. Dette skyldes både forskelle og variation i internetbaseret handel, samt hvordan børsen håndterer belastning. Derfor skal vi diskutere latenser i form af percentiler frem for enkelttal. For eksempel refererer P25-latenstiden til 25-percentil-latensen. Med andre ord betyder en P25 på 5ms, at 25% af alle handelsanmodninger inden for en given samplingtidsramme havde en latenstid på 5ms eller bedre.
Her ser du Krakens bedste sti P25 latency versus nogle af vores topkonkurrenter i forskellige regioner, normaliseret for placering, under en basislinjemåling i sidste måned.
Vores baseline round-trip latency på omkring 2.5 ms repræsenterer over en 97 % forbedring i forhold til Q1 2021.
Stabilitet
Som nævnt før, er den virkelige verden ydeevne under hård belastning lige så vigtig, hvis ikke vigtigere, end bedste case-ydeevne og absolutte latenstidstal.
Forbedring af udførelsesomkostninger, reduktion af glidning og styring af markedsrisiko afhænger af at minimere variabilitet ventetid mellem hver handelsanmodning. Vi kalder dette variabilitetsjitter, og vi måler forskellen mellem forskellige latenspercentiltal for den samme samplingtidsramme.
Ved at måle jitter med P25 og P95 latenser kan vi fange et betydeligt udvalg af ydeevne og observeret adfærd over tid. For eksempel målte vi, hvordan vores jitter stablet op med et bredere sæt af topkonkurrenter i ugen 5.-12. november 2022, et tidspunkt, hvor markedsvolatiliteten var akut på grund af nøden og den endelige nedlukning af FTX.
Her kan du se, hvordan vores handelsinfrastruktur opførte sig usædvanligt godt på trods af den dramatisk øgede volatilitet og belastning. På intet tidspunkt i løbet af ugen oversteg denne jitter 30 ms. I mellemtiden, for mange andre udvekslinger, nåede det regelmæssigt flere hundrede millisekunder, eller anmodninger fik timeout helt som angivet af de lodrette spidser.
gennemløb
Gennemstrømning afspejler antallet af vellykkede handelsanmodninger (tilføj ordre, annuller ordre, rediger ordre osv.), der håndteres af en børs inden for en given tidsperiode.
I lighed med latency diskuterer vi gennemløb i enten teoretiske eller observerede termer.
Observeret gennemstrømning er mere relevant, da den afspejler mange indbyrdes forbundne faktorer, herunder hastighedsgrænser. Vi sætter disse grænser for at forhindre DDoS-angreb og holde trafikken komfortabelt inden for teoretiske grænser. Størrelsen af kundebasen, den generelle markedsefterspørgsel, ordrestrømmen (som er stærkt påvirket af prisvolatilitet og handelsaktivitet andre steder) og ydeevne under belastning (siden ud over et vist niveau af serviceforringelse ville kunder begynde at begrænse deres egne anmodninger) alle påvirker disse grænser.
Her har vi illustreret den over 4x forbedring i vores maksimale observerede gennemløb mellem Q1 2021 og Q1 2023. Denne ændring er en ændring fra 250 anmodninger/min til over 1 mm anmodninger/min, og der er betydelig frihøjde tilbage mellem dette niveau og vores dramatiske forbedret teoretisk maksimal gennemstrømning.
Uptime
I år har vi gjort en indsats for at minimere nedetid på grund af planlagt vedligeholdelse, reducere hyppigheden og virkningen af ikke-planlagt nedetid og øge hastigheden af funktionsopdateringer og ydeevneforbedringer uden at påvirke oppetiden negativt.
Disse ændringer omfattede både tekniske og operationelle forbedringer, såsom et stadig mere modent og stort operationelt modstandsdygtigt team, der opererer 24/7.
Mens oppetiden for vores værste måned i 2021 var tæt på 99 %, har disse forbedringer givet os mulighed for at sætte stadig mere aggressive fejlbudgetter og et mål for handelsoppetid på 99.9+ %.
Indsatsen
Blå/grønne og rullende implementeringer
Vi har i stigende grad gjort brug af en blå/grøn implementeringsstrategi på tværs af vores API-gateways og mange interne tjenester. Du kan se en meget forenklet illustration af dette er fremhævet i figur 6. Ved at betjene flere fuldgyldige kodestacke parallelt, kan vi implementere funktioner uden at forstyrre hovedstakken, som i øjeblikket modtager klienttrafik. Bagefter kan trafikken omdirigeres til den nye stak, hvilket fører til en nul-impact implementering eller en meget hurtig rollback-procedure, hvis noget skulle gå galt. Ydermere, for vores mange tjenester, som driver flere forekomster med henblik på belastningsbalancering, sker opdateringer til disse forekomster løbende i stedet for alt-eller-ingen. Disse tilgange giver os nu mulighed for at udføre nul-impact og hyppigere opdateringer til langt størstedelen af vores teknologistack.
Infrastruktur som kode
Kraken udnytter kraftigt Infrastruktur som kode (IaC) med terraform , Nomad, i vid udstrækning for at garantere ensartethed af alle kodeimplementeringer samt repeterbarhed. Vi automatiserer vores Terraform repositories med kontinuerlig integration og kontinuerlig levering, så vi kan udrulle ændringer hurtigt og pålideligt. I de sidste to år har vi implementeret ny infrastruktur ved hjælp af IaC, og næsten al vores infrastruktur i dag bruger dette mønster. Dette skridt var en stor milepæl, og vi udnytter IaC til både cloud-baserede og lokale applikationer.
Forbindelse og netværk
Vi udnytter den private forbindelse mellem AWS og vores on-premise datacentre. Denne forbindelse gør det muligt for Kraken at garantere, at vi har den lavest mulige latenstid, højest mulige sikkerhed og redundante stier for at sikre, at vi til enhver tid kan nå ud til AWS. Nylige netværksforbedringer og routingforbedringer har muliggjort en væsentlig del af reduktionen af den basislinje-reduktion af handelsforsinkelser, der er fremhævet ovenfor.
Instrumentering og telemetri
Finmasket og præcis logning, metrics og anmodningssporing har gjort det muligt for os hurtigt at identificere, diagnosticere og løse eventuelle uventede flaskehalse og ydeevneproblemer i realtid. Ud over denne telemetri og vores egen konkurrencedygtige overvågning, har vi også for nylig opdateret vores API-latens- og oppetidsmålinger på status.kraken.com med eksterne skærminstallationer for generelt at afspejle disse tal mere præcist, som kunderne oplever.
Optimerede API-implementeringer
På ethvert givet tidspunkt understøtter vores API'er og handelsstak titusindvis af forbindelser, der handler algoritmisk gennem vores Websockets eller REST API'er. Hundredtusindvis flere forbindelser kommer fra vores UI-platforme, inklusive vores nye højtydende KrakenPro platform. Mens disse platforme høster mange af de samme kernehandelsinfrastrukturfordele, der er beskrevet i dette indlæg, er arbejdsbelastningerne fundamentalt forskellige og har forskellige krav. Skræddersyede API-implementeringer til at understøtte vores UI-platforme med specifikke datafeeds, komprimering, regulering, aggregering osv. har givet os mulighed for yderligere at forbedre hastigheden og reducere spildt båndbredde og derfor øge den samlede klientkapacitet.
Forbedringer af kernekode
Vi har foretaget en række yderligere, dramatiske forbedringer på tværs af stakken gennem omstrukturering af kernetjenester i Rust og C++. Disse ændringer gør øget brug af asynkron meddelelser og datapersistens, hvor det er muligt, og hjælper os med at bygge robust præstationsprofilering ind i flere af vores CI/CD-pipelines. De lader os også anvende bedst kendte metoder til statisk og dynamisk kodeanalyse. Flere af disse forbedringer har kulmineret i, at den matchende motors gennemsnitlige latens er faldet fra millisekunder til mikrosekunder. Dette er en forbedring på mere end 90 % i forhold til to år før, samtidig med at det understøtter over 4x gennemløbet.
Hvad er det næste?
Native FIX API
Vi lancerer også snart vores native FIX API til spotmarkedsdata og handel. FIX, som står for Financial Information Exchange, er en kraftfuld og omfattende, men fleksibel industristandard API, som mange institutioner bruger til handel med aktier, valuta og rente i massivt omfang. Det er en pålidelig og kamptestet protokol med bred tredjepartssoftware og open source-support, hvilket gør det nemmere og hurtigere for institutioner at integrere med Kraken og begynde at handle.
Krakens native FIX API kommer også med arkitektoniske nuancer og fordele i forhold til vores Websockets og REST API'er, herunder sessionsbaseret annullering-ved-afbrydelse, garanteret meddelelseslevering i rækkefølge, sessionsgendannelse og genafspilning. Vores FIX API er i øjeblikket i beta-testning - række ud hvis du gerne vil hjælpe med at sparke dækkene!
Nul nedetid matchende motorimplementeringer
Vi har gjort betydelige fremskridt med hensyn til hyppigheden af nul-impact implementeringer af API-gateways og forskellige backend-tjenester (godkendelse, revision, telemetri osv.). Materialeopdateringer til vores matchende motor kræver dog stadig planlægning af vedligeholdelse og kort nedetid, som vi udfører cirka hver anden uge.
Vores team gennemgik dog en betydelig indsats for at omkonstruere nogle af vores interne meddelelsessystemer med multicast-teknologi ved at bruge Aeron, en ekstremt effektiv og robust pakke af værktøjer til fejltolerante systemer med høj tilgængelighed. Resultatet af dette vil være planlagte implementeringer uden nedetid på tværs af handelsstakken, tilgængelig senere i 2023.
Brug for hjælp? Række ud
Kontakt venligst vores kontoadministration og institutionelle salgsteams ved hjælp af e-mailadressen for at lære mere om nogen af disse opdateringer, for at diskutere, hvordan du optimerer din handelsforbindelse, eller for at betateste kommende funktioner som vores FIX API.
Har du brug for flere beviser? Hold øje med og abonner på opdateringer vedr status.kraken.com for eventuel planlagt vedligeholdelse, serviceinformation og statistikker om ventetid og oppetid.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://blog.kraken.com/post/17936/performance-at-kraken/
- :er
- $OP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- I stand
- Om
- over
- absolutte
- Konto
- kontoadministration
- præcis
- præcist
- opnået
- tværs
- aktivitet
- adresse
- påvirke
- aggregering
- aggressive
- algoritmisk
- Alle
- tillader
- beløb
- analyse
- ,
- api
- API'er
- applikationer
- tilgange
- arkitektonisk
- ER
- Ankommer
- AS
- aktiv
- Aktiver
- At
- Angreb
- revision
- Godkendelse
- automatisere
- tilgængelighed
- til rådighed
- gennemsnit
- AWS
- Bagende
- båndbredde
- bund
- Baseline
- grundlag
- BE
- bliver
- før
- begyndte
- begynde
- være
- benchmarking
- fordele
- BEDSTE
- beta
- Bedre
- mellem
- Beyond
- blockchain
- Blockchain teknologi
- blockchains
- bred
- bredere
- mæglere
- Budgetter
- bygge
- by
- C + +
- ringe
- CAN
- Kapacitet
- kapitalisere
- fange
- bære
- tilfælde
- tilfælde
- Centers
- vis
- lave om
- Ændringer
- Chart
- kunde
- kunder
- Luk
- kode
- Kom
- sammenligning
- konkurrencedygtig
- konkurrenter
- omfattende
- at gå på kompromis
- koncentreret
- betingelser
- Adfærd
- Bekræfte
- tilslutning
- Tilslutninger
- Connectivity
- fortsæt
- kontinuerlig
- Core
- Selskaber
- Koste
- Omkostninger
- krypto
- cryptocurrencies
- For øjeblikket
- data
- datacentre
- DDoS
- årti
- dyb
- forsinkelse
- glad
- levering
- Efterspørgsel
- krav
- afhænger
- indsætte
- indsat
- implementering
- implementeringer
- beskrevet
- Trods
- DID
- forskel
- forskelle
- forskellige
- digital
- Digital aktiver
- Direktør
- diskutere
- nød
- Dont
- nedetid
- dramatisk
- dramatisk
- Dropper
- i løbet af
- dynamisk
- e
- hver
- lettere
- indsats
- indsats
- enten
- andetsteds
- vægt
- aktiveret
- Engine (Motor)
- Engineering
- helt
- Aktier
- fejl
- etc.
- Endog
- udviklet sig
- eksempel
- overstige
- udveksling
- Udvekslinger
- udførelse
- erfarne
- eksperter
- udforske
- ekstern
- ekstremt
- øje
- faktorer
- retfærdig
- Feature
- Funktionalitet
- Figur
- tal
- finansielle
- økonomisk information
- fintechs
- firmaer
- Fornavn
- Fix
- fast
- fast indkomst
- fleksibel
- flow
- Til
- formular
- kommende
- FRAME
- Frekvens
- hyppig
- fra
- FTX
- fuld
- fundamentalt
- fonde
- yderligere
- Endvidere
- FX
- Generelt
- generelt
- given
- Go
- Dyrkning
- voksen
- Vækst
- garanti
- garanteret
- Håndtering
- ske
- Have
- headroom
- stærkt
- tunge
- hæk
- Hedgefonde
- hjælpe
- Høj
- højeste
- Fremhæv
- Fremhævet
- Hvordan
- How To
- HTTPS
- Hundreder
- identificere
- KIMOs Succeshistorier
- påvirket
- vigtigt
- Forbedre
- forbedret
- forbedringer
- in
- I andre
- omfatter
- medtaget
- omfatter
- Herunder
- Indkomst
- Forøg
- øget
- stigende
- stigende
- angivet
- individuel
- industrien
- oplysninger
- Infrastruktur
- Institutionel
- institutionelle kunder
- institutioner
- integrere
- integration
- interne
- Internet-baseret
- Investorer
- spørgsmål
- IT
- ITS
- Holde
- sparke
- kendt
- Kraken
- stor
- Efternavn
- Latency
- lancering
- førende
- LÆR
- Lets
- Niveau
- Leverage
- ligesom
- grænser
- Likviditet
- belastning
- placering
- lavet
- Main
- vedligeholdelse
- større
- Flertal
- lave
- Making
- administrere
- ledelse
- styring
- mange
- Marked
- Markedsdata
- Markedsvolatilitet
- Markeder
- massive
- matchende
- materiale
- modne
- max-bredde
- maksimal
- midler
- I mellemtiden
- måle
- måling
- Mød
- nævnte
- besked
- messaging
- metoder
- Metrics
- milepæl
- minimering
- minimum
- Mission
- øjeblik
- Overvåg
- overvågning
- Måned
- mere
- mest
- bevæge sig
- MS
- flere
- indfødte
- Natur
- næsten
- negativt
- netværk
- Ny
- næste
- november
- nummer
- numre
- of
- tilbyde
- on
- ONE
- åbent
- open source
- betjene
- opererer
- drift
- operationelle
- operationel modstandsdygtighed
- Muligheder
- Optimer
- ordrer
- Andet
- samlet
- egen
- Parallel
- del
- især
- part
- forbi
- sti
- Mønster
- ydeevne
- udholdenhed
- Fysisk
- Banebrydende
- planlagt
- perron
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- mulig
- Indlæg
- vigtigste
- forhindre
- pris
- Prime
- Forud
- prioritet
- private
- om
- Produkt
- professionel
- profilering
- bevis
- proprietære
- beskyttet
- protokol
- formål
- sætte
- Q1
- Hurtig
- hurtigere
- hurtigt
- rækkevidde
- Sats
- hellere
- nå
- nået
- virkelige verden
- realtid
- modtagende
- nylige
- for nylig
- opsving
- reducere
- reducere
- refererer
- afspejler
- afspejler
- region
- regioner
- regelmæssigt
- relevant
- repræsenterer
- anmode
- anmodninger
- kræver
- Krav
- modstandskraft
- REST
- resultere
- Resultater
- Risiko
- robust
- Roll
- Rullende
- groft
- salg
- samme
- Scale
- skalering
- planlægning
- sikkerhed
- Series
- tjener
- tjeneste
- Tjenester
- Session
- sæt
- flere
- bør
- nedlukning
- signifikant
- forenklet
- siden
- enkelt
- Størrelse
- glidning
- So
- Software
- nogle
- Kilde
- specifikke
- hastighed
- spikes
- Spot
- spotmarkedet
- Stabilitet
- stable
- stablet
- Stakke
- står
- starte
- påbegyndt
- statistik
- Stadig
- Hold mig opdateret
- vellykket
- sådan
- suite
- support
- Støtte
- systemet
- Systemer
- mål
- hold
- hold
- tech
- Teknisk
- Teknologier
- vilkår
- terraform
- prøve
- Test
- Tak
- at
- deres
- teoretisk
- derfor
- Disse
- Tredje
- tusinder
- Gennem
- kapacitet
- tid
- Tidsserier
- Tidsindstillet
- gange
- til
- i dag
- værktøjer
- top
- Sporing
- Traders
- Trading
- traditionelle
- Trafik
- betroet
- ui
- ultimativ
- under
- forstå
- Uventet
- opdateret
- opdateringer
- oppetid
- us
- brug
- forskellige
- Vast
- VeloCity
- Venue
- handelssystemer
- versus
- via
- Volatilitet
- vs
- Ur
- uge
- GODT
- som
- mens
- vilje
- med
- inden for
- uden
- ord
- Værst
- ville
- Forkert
- år
- år
- Du
- Din
- zephyrnet