Forfatter av:
Shannon Kurtas, produktdirektør, Pro & Institutional Trading
Max Kaplan, Senior Engineering Director, Core Infrastructure & Data Engineering
Suketu Gandhi, senior ingeniørdirektør, handelsteknologi
Steve Hunt, VP Engineering
For nesten tolv år siden begynte Kraken sitt banebrytende oppdrag for å bli en av de første og mest suksessrike digitale aktivabørsene. Vi begynte å handle kun fire kryptovalutaer, men vi støtter nå over 220 eiendeler på 67 blokkjeder og over 700 markeder.
Vi har vokst raskt. Takket være produkt- og ingeniørteamene våre – inkludert eksperter innen blokkjedeteknologi, sikkerhet, nettverk, infrastruktur og handelssystemer – har vi klart å holde tritt med den enorme etterspørselen.
Etter hvert som bransjen har modnet og utviklet seg, har størrelsen og naturen til vår kundebase også blitt det. Mens vi fortsetter å betjene individuelle investorer og tradere via vår Kraken og KrakenPro plattformer, kommer en økende del av ordrestrømmen vår algoritmisk via vår API fra profesjonelle og institusjonelle kunder. Disse inkluderer selskaper, hedgefond, proprietære handelsfirmaer, prime-meglere, fintechs, samt andre børser som er avhengige av Krakens dype likviditet.
Handelssystemene våre har måttet skaleres for å møte disse økte kravene, spesielt for de som er sterkt avhengig av hastighet, stabilitet og oppetid for å forbedre utførelseskostnadene, administrere markedsrisiko og utnytte handelsmuligheter. Vi oppnådde alt dette uten å gå på akkord med vår prioritet nummer én — sikkerhet.
I dag er vi glade for å fremheve noen av vår siste innsats, suksesser og resultater av denne skaleringen.
Ytelsens forrang
Vi legger betydelig vekt på instrumenteringskode for å se og forstå systemytelsen vår under tunge, virkelige forhold. Vi bruker også konkurransedyktig benchmarking for å bekrefte hvordan vi holder oss over tid. La oss utforske noen av disse resultatene.
Hastighet og ventetid
Vi måler handelshastighet i form av latens. Latency er tur-retur-forsinkelsen, og vi definerer det som tiden mellom en handelsforespørsel (f.eks. legge til ordre) sendes av klientsystemer og den blir bekreftet av børsen.
I motsetning til tradisjonelle børser, er kryptosteder generelt mindre geografisk konsentrert og tilbyr ikke full samlokalisering. I mange tilfeller er de helt skybaserte.
Latency-sensitive klienter vil distribuere kode uansett hvor den er mest fysisk i nærheten av lokalet. Derfor inkluderer en rettferdig sammenligning måling av ventetid fra regionen som er mest relevant for det spesifikke stedet.
Latency vil også variere mellom handelsforespørsler, selv på en vedvarende forbindelse mellom en enkelt klient og børsen. Dette skyldes både forskjeller og variasjon i internettbasert handel, samt hvordan børsen håndterer belastning. Derfor må vi diskutere latenser i form av persentiler i stedet for enkelttall. For eksempel refererer P25-latens til 25-persentil-latensen. Med andre ord betyr en P25 på 5 ms at 25 % av alle handelsforespørsler innenfor en gitt samplingstidsramme hadde en ventetid på 5 ms eller bedre.
Her ser du Krakens beste bane P25-latens versus noen av våre toppkonkurrenter i forskjellige regioner, normalisert for plassering, under en grunnlinjemåling forrige måned.
Vår baseline tur-retur-latens på omtrent 2.5 ms representerer en forbedring på over 97 % sammenlignet med Q1 2021.
Stabilitet
Som nevnt før, er ytelsen i den virkelige verden under stor belastning like viktig, om ikke viktigere, enn best case-ytelse og absolutte latenstidstall.
Forbedring av utførelseskostnader, redusering av glidning og håndtering av markedsrisiko avhenger av å minimere variabilitet ventetid mellom hver handelsforespørsel. Vi kaller dette variabilitetsjitter, og vi måler forskjellen mellom forskjellige latens-persentil-tall for samme samplingstidsramme.
Ved å måle jitter med P25- og P95-forsinkelser kan vi fange opp et betydelig spekter av ytelse og observert atferd over tid. For eksempel målte vi hvordan jitteren vår stablet opp med et bredere sett av toppkonkurrenter i uken 5.–12. november 2022, en tid da markedsvolatiliteten var akutt på grunn av nøden og den endelige nedleggelsen av FTX.
Her kan du se hvordan handelsinfrastrukturen vår oppførte seg eksepsjonelt bra, til tross for den dramatisk økte volatiliteten og belastningen. Ikke på noe tidspunkt i løpet av uken oversteg denne jitteren 30 ms. I mellomtiden, for mange andre børser, nådde det regelmessig flere hundre millisekunder, eller forespørsler ble tidsavbrutt helt som indikert av de vertikale toppene.
gjennomstrømming
Gjennomstrømning reflekterer antall vellykkede handelsforespørsler (legg til ordre, kanseller ordre, rediger ordre osv.) som håndteres av en børs i løpet av en gitt tidsperiode.
I likhet med latens, diskuterer vi gjennomstrømning i enten teoretiske eller observerte termer.
Observert gjennomstrømning er mer relevant siden den reflekterer mange sammenhengende faktorer, inkludert rategrenser. Vi setter disse grensene for å forhindre DDoS-angrep og holde trafikken komfortabelt innenfor teoretiske grenser. Størrelsen på kundebasen, generell markedsetterspørsel, ordreflyt (som er sterkt påvirket av prisvolatilitet og handelsaktivitet andre steder), og ytelse under belastning (siden utover et visst nivå av tjenesteforringelse, vil kundene begynne å begrense sine egne forespørsler) alle påvirker disse grensene.
Her har vi illustrert den over 4x forbedringen i vår maksimale observerte gjennomstrømning mellom Q1 2021 og Q1 2023. Denne endringen er en overgang fra 250 1 forespørsler/min til over XNUMX mm forespørsler/min, og det er betydelig plass igjen mellom dette nivået og vårt dramatiske nivå. forbedret teoretisk maksimal gjennomstrømning.
Oppetid
I år har vi gjort en innsats for å minimere nedetid på grunn av planlagt vedlikehold, redusere hyppigheten og virkningen av ikke-planlagt nedetid, og øke hastigheten på funksjonsoppdateringer og ytelsesforbedringer uten å påvirke oppetiden negativt.
Disse endringene inkluderte både tekniske og operasjonelle forbedringer, for eksempel et stadig mer modent og stort operativt motstandsteam som opererer 24/7.
Mens oppetiden for den verste måneden vår i 2021 var nær 99 %, har disse forbedringene tillatt oss å sette stadig mer aggressive feilbudsjetter og et mål for oppetid for handel på 99.9+ %.
Anstrengelser
Blå/grønne og rullende utplasseringer
Vi har i økende grad benyttet oss av en blå/grønn distribusjonsstrategi på tvers av våre API-gatewayer og mange interne tjenester. Du kan se en veldig forenklet illustrasjon av dette er fremhevet i figur 6. Ved å operere flere fullverdige kodestabler parallelt, kan vi distribuere funksjoner uten å forstyrre hovedstabelen som for øyeblikket mottar klienttrafikk. Etterpå kan trafikken omdirigeres til den nye stabelen, noe som fører til en distribusjon uten effekt, eller en veldig rask tilbakerullingsprosedyre dersom noe skulle gå galt. Videre, for de mange tjenestene våre som driver flere forekomster for belastningsbalansering, skjer oppdateringer av disse forekomstene på rullerende basis i stedet for alt-eller-ingen. Disse tilnærmingene lar oss nå utføre null-effekt og hyppigere oppdateringer til det store flertallet av teknologistabelen vår.
Infrastruktur som kode
Kraken utnytter tungt Infrastruktur som kode (IaC) med terra og Nomad, i stor grad for å garantere konsistens i alle kodedistribusjoner samt repeterbarhet. Vi automatiserer Terraform-repositoriene våre med kontinuerlig integrasjon og kontinuerlig levering, slik at vi kan rulle ut endringer raskt og pålitelig. De siste to årene har vi distribuert ny infrastruktur ved hjelp av IaC, og nesten all vår infrastruktur i dag bruker dette mønsteret. Dette trekket var en viktig milepæl, og vi utnytter IaC for både skybaserte og lokale applikasjoner.
Tilkobling og nettverk
Vi utnytter privat tilkobling mellom AWS og våre lokale datasentre. Denne tilkoblingen lar Kraken garantere at vi har lavest mulig ventetid, høyest mulig sikkerhet og redundante baner for å sikre at vi kan nå ut til AWS til enhver tid. Nylige forbedringer av nettverk og ruting har aktivert en betydelig del av reduksjonen av ventetiden for rundturshandel fremhevet ovenfor.
Instrumentering og telemetri
Finmasket og nøyaktig logging, beregninger og forespørselssporing har gjort det mulig for oss å raskt identifisere, diagnostisere og løse eventuelle uventede flaskehalser og ytelsesproblemer i sanntid. Utover denne telemetrien og vår egen konkurrerende overvåking, har vi også nylig oppdatert API-latens- og oppetidsberegningene på status.kraken.com med distribusjon av eksterne skjermer for å, generelt, mer nøyaktig gjenspeile disse tallene som oppleves av klienter.
Optimalisert API-implementering
Til enhver tid støtter våre APIer og handelsstabel titusenvis av tilkoblinger som handles algoritmisk gjennom våre Websockets eller REST APIer. Hundretusenvis flere tilkoblinger kommer fra våre UI-plattformer, inkludert vår nye høyytelse KrakenPro plattform. Mens disse plattformene høster mange av de samme kjernefordelene for handelsinfrastruktur som er beskrevet i dette innlegget, er arbeidsbelastningene fundamentalt forskjellige og har forskjellige krav. Skreddersydde API-implementeringer for å støtte våre UI-plattformer, med spesifikke datafeeder, komprimering, struping, aggregering osv. har gjort det mulig for oss å forbedre hastigheten ytterligere og redusere bortkastet båndbredde, og dermed øke den totale klientkapasiteten.
Kjernekodeforbedringer
Vi har gjort en rekke ytterligere, dramatiske forbedringer på tvers av stabelen gjennom å omstrukturere kjernetjenester i Rust og C++. Disse endringene gjør økt bruk av asynkrone meldinger og datautholdenhet der det er mulig, og hjelper oss med å bygge robust ytelsesprofilering inn i flere av våre CI/CD-pipelines. De lar oss også bruke best kjente metoder for statisk og dynamisk kodeanalyse. Flere av disse forbedringene har kulminert med at den matchende motorens gjennomsnittlige ventetid har sunket fra millisekunder til mikro. Dette er en forbedring på mer enn 90 % sammenlignet med to år tidligere, samtidig som det støtter over 4 ganger gjennomstrømmingen.
Hva blir det neste?
Native FIX API
Vi lanserer også snart vår opprinnelige FIX API for spotmarkedsdata og handel. FIX, som står for Financial Information Exchange, er en kraftig og omfattende, men fleksibel industristandard API som mange institusjoner bruker for handel med aksjer, valuta og rente i massiv skala. Det er en pålitelig og kamptestet protokoll, med bred tredjepartsprogramvare og åpen kildekodestøtte, noe som gjør det enklere og raskere for institusjoner å integrere med Kraken og begynne å handle.
Krakens innfødte FIX API kommer også med arkitektoniske nyanser og fordeler i forhold til våre Websockets og REST APIer, inkludert øktbasert avbryting ved frakobling, garantert levering av meldinger i rekkefølge, øktgjenoppretting og avspilling. Vår FIX API er for øyeblikket i betatesting – nå ut hvis du vil hjelpe til med å sparke dekkene!
Null nedetid matchende motordistribusjoner
Vi har gjort betydelige inngrep i frekvensen av null-impact distribusjoner av API-gatewayer og ulike backend-tjenester (autentisering, revisjon, telemetri, etc.). Materielle oppdateringer til den matchende motoren vår krever imidlertid fortsatt planlegging av vedlikehold og kort nedetid, som vi utfører omtrent annenhver uke.
Teamet vårt gjennomgikk imidlertid en betydelig innsats for å rekonstruere noen av våre interne meldingssystemer med multicast-teknologi, ved å bruke Aeron, en ekstremt effektiv og robust pakke med verktøy for feiltolerante systemer med høy tilgjengelighet. Resultatet av dette vil være planlagte distribusjoner med null nedetid på tvers av handelsstakken, tilgjengelig senere i 2023.
Trenger hjelp? Nå ut
Ta kontakt med vår kontoadministrasjon og institusjonelle salgsteam ved å bruke e-postadressen for å lære mer om noen av disse oppdateringene, for å diskutere hvordan du kan optimalisere handelsforbindelsen din, eller for å betateste kommende funksjoner som vår FIX API.
Trenger du flere bevis? Følg med og abonner på oppdateringer om status.kraken.com for planlagt vedlikehold, serviceinformasjon og ventetid og oppetidsstatistikk.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://blog.kraken.com/post/17936/performance-at-kraken/
- :er
- $OPP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- I stand
- Om oss
- ovenfor
- Absolute
- Logg inn
- kontoadministrasjon
- nøyaktig
- nøyaktig
- oppnådd
- tvers
- aktivitet
- adresse
- påvirke
- aggregering
- aggressiv
- algoritmisk
- Alle
- tillater
- beløp
- analyse
- og
- api
- APIer
- søknader
- tilnærminger
- arkitektonisk
- ER
- ankommer
- AS
- eiendel
- Eiendeler
- At
- Angrep
- revisjon
- Autentisering
- automatisere
- tilgjengelighet
- tilgjengelig
- gjennomsnittlig
- AWS
- Backend
- Båndbredde
- basen
- Baseline
- basis
- BE
- bli
- før du
- begynte
- begynne
- være
- referansemåling
- Fordeler
- BEST
- beta
- Bedre
- mellom
- Beyond
- blockchain
- Blockchain teknologi
- blokkjeder
- bred
- bredere
- meglere
- Budsjetter
- bygge
- by
- C + +
- ring
- CAN
- Kapasitet
- kapital
- fangst
- bære
- saken
- saker
- Sentre
- viss
- endring
- Endringer
- Figur
- kunde
- klienter
- Lukke
- kode
- Kom
- sammenligning
- konkurranse
- konkurrenter
- omfattende
- kompromittere
- konsentrert
- forhold
- Gjennomføre
- Bekrefte
- tilkobling
- Tilkoblinger
- Tilkobling
- fortsette
- kontinuerlig
- Kjerne
- Corporations
- Kostnad
- Kostnader
- krypto
- cryptocurrencies
- I dag
- dato
- datasentre
- DDoS
- tiår
- dyp
- forsinkelse
- glad
- levering
- Etterspørsel
- krav
- avhenger
- utplassere
- utplassert
- distribusjon
- distribusjoner
- beskrevet
- Til tross for
- gJORDE
- forskjell
- forskjeller
- forskjellig
- digitalt
- Digital eiendel
- Regissør
- diskutere
- nød
- ikke
- nedetid
- dramatisk
- dramatisk
- slippe
- under
- dynamisk
- e
- hver enkelt
- enklere
- innsats
- innsats
- enten
- andre steder
- emalje
- vekt
- aktivert
- Motor
- Ingeniørarbeid
- fullstendig
- Aksjer
- feil
- etc
- Selv
- utviklet seg
- eksempel
- stige
- utveksling
- Børser
- gjennomføring
- erfaren
- eksperter
- utforske
- utvendig
- ekstremt
- øye
- faktorer
- rettferdig
- Trekk
- Egenskaper
- Figur
- tall
- finansiell
- økonomisk informasjon
- fintechs
- bedrifter
- Først
- Fix
- fikset
- fast inntekt
- fleksibel
- flyten
- Til
- skjema
- kommende
- RAMME
- Frekvens
- hyppig
- fra
- FTX
- fullt
- fundamentalt
- midler
- videre
- Dess
- FX
- general
- generelt
- gitt
- Go
- Økende
- voksen
- Vekst
- garantere
- garantert
- Håndtering
- skje
- Ha
- takhøyde
- tungt
- tung
- hekk
- hedge Funds
- hjelpe
- Høy
- høyest
- Uthev
- Fremhevet
- Hvordan
- Hvordan
- HTTPS
- Hundrevis
- identifisere
- Påvirkning
- påvirket
- viktig
- forbedre
- forbedret
- forbedring
- forbedringer
- in
- I andre
- inkludere
- inkludert
- inkluderer
- Inkludert
- Inntekt
- Øke
- økt
- økende
- stadig
- indikert
- individuelt
- industri
- informasjon
- Infrastruktur
- institusjonell
- institusjonelle kunder
- institusjoner
- integrere
- integrering
- intern
- Internett-basert
- Investorer
- saker
- IT
- DET ER
- Hold
- sparke
- kjent
- Kraken
- stor
- Siste
- Ventetid
- lansere
- ledende
- LÆRE
- Lar
- Nivå
- Leverage
- i likhet med
- grenser
- Likviditet
- laste
- plassering
- laget
- Hoved
- vedlikehold
- større
- Flertall
- gjøre
- Making
- administrer
- ledelse
- administrerende
- mange
- marked
- Market data
- volatilitet på markedet
- Markets
- massive
- matchende
- materiale
- moden
- max bredde
- maksimal
- midler
- Mellomtiden
- måle
- måling
- Møt
- nevnt
- melding
- meldinger
- metoder
- Metrics
- milepæl
- minimere
- minimum
- Oppdrag
- øyeblikk
- Overvåke
- overvåking
- Måned
- mer
- mest
- flytte
- MS
- flere
- innfødt
- Natur
- nesten
- negativt
- nettverk
- Ny
- neste
- November
- Antall
- tall
- of
- tilby
- on
- ONE
- åpen
- åpen kildekode
- betjene
- opererer
- drift
- operasjonell
- operativ motstandskraft
- Muligheter
- Optimalisere
- rekkefølge
- Annen
- samlet
- egen
- Parallel
- del
- spesielt
- parti
- Past
- banen
- Mønster
- ytelse
- utholdenhet
- fysisk
- Banebryt
- planlagt
- plattform
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- Point
- mulig
- Post
- kraftig
- forebygge
- pris
- Prime
- Før
- prioritet
- privat
- pro
- Produkt
- profesjonell
- profilering
- bevis
- proprietær
- beskyttet
- protokollen
- formål
- sette
- Q1
- Rask
- raskere
- raskt
- område
- Sats
- heller
- å nå
- nådd
- virkelige verden
- sanntids
- mottak
- nylig
- nylig
- utvinning
- redusere
- redusere
- refererer
- reflektere
- Gjenspeiler
- region
- regioner
- regelmessig
- relevant
- representerer
- anmode
- forespørsler
- krever
- Krav
- resiliens
- REST
- resultere
- Resultater
- Risiko
- robust
- Rull
- rullende
- omtrent
- salg
- samme
- Skala
- skalering
- planlegging
- sikkerhet
- Serien
- betjene
- tjeneste
- Tjenester
- Session
- sett
- flere
- bør
- nedleggelse
- signifikant
- forenklet
- siden
- enkelt
- Størrelse
- glidning
- So
- Software
- noen
- kilde
- spesifikk
- fart
- pigger
- Spot
- spotmarkedet
- Stabilitet
- stable
- stablet
- Stabler
- står
- Begynn
- startet
- statistikk
- Still
- abonnere
- vellykket
- slik
- suite
- støtte
- Støtte
- system
- Systemer
- Target
- lag
- lag
- tech
- Teknisk
- Teknologi
- vilkår
- terra
- test
- Testing
- Takk
- Det
- De
- deres
- teoretiske
- derfor
- Disse
- Tredje
- tusener
- Gjennom
- gjennomstrømning
- tid
- Tidsserier
- Tidsbestemt
- ganger
- til
- i dag
- verktøy
- topp
- Sporing
- Traders
- trading
- tradisjonelle
- trafikk
- klarert
- ui
- ultimate
- etter
- forstå
- Uventet
- oppdatert
- oppdateringer
- oppetid
- us
- bruke
- ulike
- enorme
- Hastighet
- Venue
- arenaer
- Versus
- av
- Volatilitet
- vs
- Se
- uke
- VI VIL
- hvilken
- mens
- vil
- med
- innenfor
- uten
- ord
- verste
- ville
- Feil
- år
- år
- Du
- Din
- zephyrnet