Geschreven door:
Shannon Kurtas, Product Director, Pro & Institutional Trading
Max Kaplan, Sr. Engineering Director, Core Infrastructure & Data Engineering
Suketu Gandhi, senior technisch directeur, handelstechnologie
Steve Hunt, vice-president Techniek
Bijna twaalf jaar geleden begon Kraken aan zijn baanbrekende missie om een van de eerste en meest succesvolle beurzen voor digitale activa te worden. We zijn begonnen met het verhandelen van slechts vier cryptocurrencies, maar we ondersteunen nu meer dan 220 activa op 67 blockchains en meer dan 700 markten.
We zijn snel gegroeid. Dankzij onze product- en engineeringteams - inclusief experts op het gebied van blockchaintechnologie, beveiliging, netwerken, infrastructuur en handelssystemen - hebben we de enorme vraag kunnen bijhouden.
Naarmate de branche volwassener en geëvolueerd is, neemt ook de omvang en de aard van ons klantenbestand toe. Hoewel we individuele beleggers en handelaren blijven bedienen via onze Kraken en KrakenPro platformen komt een groeiend deel van onze orderstroom algoritmisch binnen via onze API van professionele en institutionele klanten. Deze omvatten bedrijven, hedgefondsen, eigen handelsfirma's, prime brokers, fintechs en andere beurzen die afhankelijk zijn van Kraken's diepe liquiditeit.
Onze handelssystemen moesten worden geschaald om aan deze toegenomen eisen te voldoen, met name voor degenen die sterk afhankelijk zijn van snelheid, stabiliteit en uptime om de uitvoeringskosten te verbeteren, marktrisico's te beheersen en te profiteren van handelsmogelijkheden. We hebben dit allemaal bereikt zonder afbreuk te doen aan onze eerste prioriteit: veiligheid.
Vandaag zijn we verheugd om enkele van onze recente inspanningen, successen en resultaten van die schaalvergroting onder de aandacht te brengen.
Het primaat van de prestatie
We leggen veel nadruk op het instrumenteren van code om onze systeemprestaties onder zware, reële omstandigheden te bekijken en te begrijpen. We gebruiken ook concurrerende benchmarking om te bevestigen hoe we het in de loop van de tijd doen. Laten we enkele van die resultaten eens bekijken.
Snelheid en latentie
We meten de handelssnelheid in de vorm van latentie. Latency is de round-trip delay en we definiëren het als de tijd tussen een handelsverzoek (bijv. order toevoegen) dat door klantsystemen wordt verzonden en het wordt bevestigd door de beurs.
In tegenstelling tot traditionele uitwisselingen zijn crypto-locaties over het algemeen minder geografisch geconcentreerd en bieden ze geen volledige colocatie. In veel gevallen zijn ze volledig cloudgebaseerd.
Latency-gevoelige clients zullen code implementeren waar deze zich fysiek het meest in de buurt van de locatie bevindt. Daarom omvat een eerlijke vergelijking het meten van de latentie van de regio die het meest relevant is voor die specifieke locatie.
Latentie varieert ook tussen handelsverzoeken, zelfs bij een permanente verbinding tussen een enkele klant en de beurs. Dit komt zowel door verschillen en variabiliteit in op internet gebaseerde handel, als door de manier waarop de beurs omgaat met belasting. Daarom moeten we latenties bespreken in termen van percentielen in plaats van enkele cijfers. P25-latentie verwijst bijvoorbeeld naar de latentie van het 25e percentiel. Met andere woorden, een P25 van 5 ms betekent dat 25% van alle handelsverzoeken binnen een bepaald bemonsteringstijdsbestek een latentie van 5 ms of beter had.
Hier ziet u Kraken's beste pad P25-latentie ten opzichte van enkele van onze topconcurrenten in verschillende regio's, genormaliseerd voor locatie, tijdens een nulmeting vorige maand.
Onze baseline round-trip latency van ongeveer 2.5 ms vertegenwoordigt een verbetering van meer dan 97% ten opzichte van het eerste kwartaal van 1.
Stabiliteit
Zoals eerder vermeld, zijn real-world prestaties onder zware belasting net zo belangrijk, zo niet belangrijker, dan de beste prestaties en absolute latentiecijfers.
Het verbeteren van de uitvoeringskosten, het verminderen van ontsporingen en het beheersen van marktrisico's hangt af van het minimaliseren van de veranderlijkheid van latentie tussen elk handelsverzoek. We noemen dit variabiliteitsjitter en we meten het verschil tussen verschillende latentiepercentielcijfers voor hetzelfde bemonsteringstijdsbestek.
Door jitter te meten met P25- en P95-latenties, kunnen we een aanzienlijk scala aan prestaties en waargenomen gedrag in de loop van de tijd vastleggen. We hebben bijvoorbeeld gemeten hoe onze jitter het deed ten opzichte van een bredere reeks topconcurrenten in de week van 5-12 november 2022, een tijd waarin de marktvolatiliteit acuut was als gevolg van de nood en de uiteindelijke sluiting van FTX.
Hier kunt u zien hoe onze handelsinfrastructuur zich uitzonderlijk goed gedroeg, ondanks de drastisch toegenomen volatiliteit en belasting. Op geen enkel moment tijdens de week overschreed deze jitter de 30 ms. Ondertussen bereikte het voor veel andere uitwisselingen regelmatig enkele honderden milliseconden, of time-out verzoeken volledig, zoals aangegeven door de verticale pieken.
Doorvoer
Throughput weerspiegelt het aantal succesvolle handelsverzoeken (bestelling toevoegen, bestelling annuleren, bestelling bewerken, etc.) die door een beurs in een bepaalde tijd zijn afgehandeld.
Net als bij latentie bespreken we de doorvoer in theoretische of waargenomen termen.
De waargenomen verwerkingscapaciteit is relevanter omdat deze een weerspiegeling is van veel onderling samenhangende factoren, waaronder snelheidslimieten. We stellen deze limieten in om DDoS-aanvallen te voorkomen en het verkeer comfortabel binnen de theoretische limieten te houden. De omvang van het klantenbestand, de algemene marktvraag, de orderstroom (die sterk wordt beïnvloed door prijsvolatiliteit en handelsactiviteiten elders) en prestaties onder belasting (aangezien klanten na een bepaald niveau van servicedegradatie hun eigen verzoeken zouden gaan beperken) zijn allemaal van invloed deze limieten.
Hier hebben we de meer dan 4x verbetering geïllustreerd in onze maximaal waargenomen doorvoer tussen Q1 2021 en Q1 2023. Deze verandering is een verschuiving van 250 verzoeken/min naar meer dan 1 mm verzoeken/min, en er is nog veel ruimte over tussen dit niveau en onze dramatische verbeterde theoretische maximale doorvoer.
Uptime
Dit jaar hebben we ons ingespannen om downtime als gevolg van gepland onderhoud tot een minimum te beperken, de frequentie en impact van ongeplande downtime te verminderen en de snelheid van functie-updates en prestatieverbeteringen te verhogen zonder de uptime negatief te beïnvloeden.
Deze veranderingen omvatten zowel technische als operationele verbeteringen, zoals een steeds volwassener en groter operationeel weerbaarheidsteam dat 24/7 opereert.
Hoewel de uptime voor onze slechtste maand in 2021 bijna 99% bedroeg, hebben deze verbeteringen ons in staat gesteld om steeds agressievere foutbudgetten en een trading uptime-doelstelling van 99.9+% vast te stellen.
inspanningen
Blauw/groen en rollende implementaties
We maken steeds meer gebruik van a blauw/groene inzetstrategie via onze API-gateways en veel interne services. U kunt een zeer vereenvoudigde illustratie hiervan zien in afbeelding 6. Door meerdere volwaardige codestacks parallel te gebruiken, kunnen we functies implementeren zonder de hoofdstack te verstoren die momenteel clientverkeer ontvangt. Daarna kan verkeer worden omgeleid naar de nieuwe stack, wat leidt tot een zero-impact implementatie of een zeer snelle rollback-procedure mocht er iets misgaan. Bovendien vinden updates van deze instanties voor onze vele services die meerdere instanties gebruiken voor taakverdeling, doorlopend plaats in plaats van alles of niets. Deze benaderingen stellen ons nu in staat om zero-impact en frequentere updates uit te voeren voor het overgrote deel van onze technische stack.
Infrastructuur als code
Kraken maakt veel gebruik van Infrastructuur als Code (IaC) Met Terraform en Nomade, grotendeels om consistentie van alle code-implementaties en herhaalbaarheid te garanderen. We automatiseren onze Terraform-repository's met continue integratie en continue levering, zodat we wijzigingen snel en betrouwbaar kunnen uitrollen. De afgelopen twee jaar hebben we nieuwe infrastructuur geïmplementeerd met behulp van IaC en bijna al onze infrastructuur gebruikt tegenwoordig dit patroon. Deze verhuizing was een belangrijke mijlpaal en we gebruiken IaC voor zowel cloudgebaseerde als on-premise applicaties.
Connectiviteit en netwerken
We maken gebruik van privéconnectiviteit tussen AWS en onze on-premise datacenters. Dankzij deze connectiviteit kan Kraken garanderen dat we de laagst mogelijke latentie, de hoogst mogelijke beveiliging en redundante paden hebben om ervoor te zorgen dat we te allen tijde contact kunnen opnemen met AWS. Recente netwerk- en routeringsverbeteringen hebben een aanzienlijk deel van de hierboven beschreven basisretourhandel latentievermindering mogelijk gemaakt.
Instrumentatie en telemetrie
Fijnmazige en nauwkeurige logboekregistratie, statistieken en tracering van verzoeken hebben ons in staat gesteld om onverwachte knelpunten en prestatieproblemen snel in realtime te identificeren, te diagnosticeren en op te lossen. Naast deze telemetrie en onze eigen concurrentiebewaking, hebben we onlangs ook onze API-latentie- en uptime-statistieken bijgewerkt status.kraken.com met externe monitor-implementaties om, in het algemeen, deze cijfers zoals ervaren door klanten nauwkeuriger weer te geven.
Geoptimaliseerde API-implementaties
Op elk moment ondersteunen onze API's en handelsstack tienduizenden verbindingen die algoritmisch handelen via onze Websockets of REST API's. Honderdduizenden extra verbindingen komen van onze UI-platforms, waaronder onze nieuwe high-performance KrakenPro platform. Hoewel deze platforms veel van dezelfde voordelen van de kernhandelsinfrastructuur plukken die in dit bericht worden beschreven, zijn de werklasten fundamenteel anders en hebben ze andere vereisten. Op maat gemaakte API-implementaties ter ondersteuning van onze UI-platforms, met specifieke datafeeds, compressie, throttling, aggregatie, enz.
Verbeteringen in de kerncode
We hebben een reeks verdere, dramatische verbeteringen aangebracht in de hele stapel door kernservices opnieuw te ontwerpen in Roest en C++. Deze wijzigingen maken waar mogelijk meer gebruik van asynchrone berichten en gegevenspersistentie en helpen ons robuuste prestatieprofilering in te bouwen in meer van onze CI/CD-pijplijnen. Ze laten ons ook de meest bekende methoden gebruiken voor statische en dynamische code-analyse. Verschillende van deze verbeteringen hebben ertoe geleid dat de gemiddelde latentie van de overeenkomende engine is gedaald van milliseconden naar microseconden. Dit is een verbetering van meer dan 90% ten opzichte van twee jaar eerder, terwijl de doorvoer vier keer zo hoog is.
What’s next?
Native FIX-API
Binnenkort lanceren we ook onze native FIX API voor spotmarktgegevens en handel. FIX, wat staat voor Financial Information Exchange, is een krachtige en uitgebreide maar flexibele industriestandaard API die veel instellingen gebruiken voor het op grote schaal verhandelen van aandelen, FX en vastrentende waarden. Het is een vertrouwd en beproefd protocol, met uitgebreide software van derden en open source-ondersteuning, waardoor instellingen gemakkelijker en sneller kunnen integreren met Kraken en kunnen beginnen met handelen.
Kraken's native FIX API wordt ook geleverd met architecturale nuances en voordelen ten opzichte van onze Websockets en REST API's, waaronder sessiegebaseerd annuleren bij verbreken van de verbinding, gegarandeerde bezorging van berichten in de juiste volgorde, sessieherstel en opnieuw afspelen. Onze FIX API bevindt zich momenteel in de bètatestfase — uitreiken als je wilt helpen de banden op te schoppen!
Zero-downtime matching engine-implementaties
We hebben aanzienlijke vooruitgang geboekt in de frequentie van zero-impact implementaties van API-gateways en verschillende back-endservices (authenticatie, audit, telemetrie, enz.). Materiële updates van onze matching-engine vereisen echter nog steeds gepland onderhoud en korte downtime, die we ongeveer tweewekelijks uitvoeren.
Ons team heeft echter een aanzienlijke inspanning geleverd om enkele van onze interne berichtensystemen opnieuw te ontwerpen met multicast-technologie, gebruikmakend van Aeron, een uiterst performante en robuuste reeks tools voor fouttolerante systemen met hoge beschikbaarheid. Het resultaat hiervan zijn geplande implementaties zonder downtime in de handelsstapel, die later in 2023 beschikbaar zullen zijn.
Hulp nodig? Uitreiken
Neem contact op met onze accountmanagers en institutionele verkoopteams via het e-mailadres voor meer informatie over een van deze updates, om te bespreken hoe u uw handelsconnectiviteit kunt optimaliseren, of om toekomstige functies zoals onze FIX API te bètatesten.
Meer bewijs nodig? Houd het in de gaten en abonneer u op updates op status.kraken.com voor eventueel gepland onderhoud, service-informatie en latentie- en uptime-statistieken.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://blog.kraken.com/post/17936/performance-at-kraken/
- :is
- $UP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- in staat
- Over
- boven
- absoluut
- Account
- account management
- accuraat
- nauwkeurig
- bereikt
- over
- activiteit
- adres
- invloed hebben op
- aggregatie
- agressief
- algoritmisch
- Alles
- toestaat
- bedragen
- analyse
- en
- api
- APIs
- toepassingen
- benaderingen
- bouwkundig
- ZIJN
- Komt aan
- AS
- aanwinst
- Activa
- At
- Aanvallen
- controleren
- authenticatie
- automatiseren
- beschikbaarheid
- Beschikbaar
- gemiddelde
- AWS
- backend
- bandbreedte
- baseren
- Baseline
- basis
- BE
- worden
- vaardigheden
- begon
- beginnen
- wezen
- benchmarking
- betekent
- BEST
- beta
- Betere
- tussen
- Verder
- blockchain
- Blockchain technologie
- blokketens
- breed
- bredere
- brokers
- Begrotingen
- bouw
- by
- C + +
- Bellen
- CAN
- Inhoud
- kapitaliseren
- vangen
- dragen
- geval
- gevallen
- Centra
- zeker
- verandering
- Wijzigingen
- tabel
- klant
- klanten
- Sluiten
- code
- hoe
- vergelijking
- concurrerend
- concurrenten
- uitgebreid
- afbreuk te doen aan
- Geconcentreerd
- voorwaarden
- Gedrag
- Bevestigen
- versterken
- aansluitingen
- Connectiviteit
- voortzetten
- doorlopend
- Kern
- Bedrijven
- Kosten
- Kosten
- crypto
- cryptocurrencies
- Op dit moment
- gegevens
- datacenters
- DDoS
- decennium
- deep
- vertraging
- verrukt
- levering
- Vraag
- eisen
- afhankelijk
- implementeren
- ingezet
- inzet
- implementaties
- beschreven
- Niettegenstaande
- DEED
- verschil
- verschillen
- anders
- digitaal
- Digitaal actief
- Director
- bespreken
- nood
- Dont
- uitvaltijd
- dramatisch
- dramatisch
- dropping
- gedurende
- dynamisch
- e
- elk
- gemakkelijker
- inspanning
- inspanningen
- beide
- elders
- nadruk
- ingeschakeld
- Motor
- Engineering
- geheel
- Aandelen
- fout
- etc
- Zelfs
- evolueerde
- voorbeeld
- overtreffen
- uitwisseling
- Exchanges
- uitvoering
- ervaren
- deskundigen
- Verken
- extern
- uiterst
- oog
- factoren
- eerlijk
- Kenmerk
- Voordelen
- Figuur
- Figuren
- financieel
- financiële informatie
- fintechs
- bedrijven
- Voornaam*
- Bepalen
- vast
- vast inkomen
- flexibel
- stroom
- Voor
- formulier
- aanstaande
- FRAME
- Frequentie
- veelvuldig
- oppompen van
- FTX
- vol
- fundamenteel
- fondsen
- verder
- Bovendien
- FX
- Algemeen
- algemeen
- gegeven
- Go
- Groeiend
- gegroeid
- garantie
- gegarandeerde
- Behandeling
- gebeuren
- Hebben
- hoofdkamer
- hard
- zwaar
- haag
- hedge Funds
- hulp
- Hoge
- hoogst
- Markeer
- Gemarkeerd
- Hoe
- How To
- HTTPS
- Honderden
- identificeren
- Impact
- beïnvloed
- belangrijk
- verbeteren
- verbeterd
- verbetering
- verbeteringen
- in
- Anders
- omvatten
- inclusief
- omvat
- Inclusief
- Inkomen
- Laat uw omzet
- meer
- meer
- in toenemende mate
- aangegeven
- individueel
- -industrie
- informatie
- Infrastructuur
- institutionele
- institutionele klanten
- instellingen
- integreren
- integratie
- intern
- Op internet gebaseerde
- Investeerders
- problemen
- IT
- HAAR
- Houden
- schop
- bekend
- Kraken
- Groot
- Achternaam*
- Wachttijd
- lancering
- leidend
- LEARN
- Laten we
- Niveau
- Hefboomwerking
- als
- grenzen
- Liquiditeit
- laden
- plaats
- gemaakt
- Hoofd
- onderhoud
- groot
- Meerderheid
- maken
- maken
- beheer
- management
- beheren
- veel
- Markt
- Marktgegevens
- Marktvolatiliteit
- Markten
- massief
- matching
- materiaal
- volwassen
- max-width
- maximaal
- middel
- Ondertussen
- maatregel
- het meten van
- Maak kennis met
- vermeld
- Bericht
- messaging
- methoden
- Metriek
- mijlpaal
- minimaliseren
- minimum
- Missie
- moment
- monitor
- Grensverkeer
- Maand
- meer
- meest
- beweging
- MS
- meervoudig
- inheemse
- NATUUR
- bijna
- negatief
- netwerken
- New
- volgende
- November
- aantal
- nummers
- of
- bieden
- on
- EEN
- open
- open source
- besturen
- exploiteert
- werkzaam
- operationele
- operationele veerkracht
- Kansen
- Optimaliseer
- bestellen
- Overige
- totaal
- het te bezitten.
- Parallel
- deel
- vooral
- feest
- verleden
- pad
- Patronen
- prestatie
- volharding
- fysiek
- baanbrekende
- gepland
- platform
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- punt
- mogelijk
- Post
- krachtige
- voorkomen
- prijs
- Prime
- Voorafgaand
- prioriteit
- privaat
- Pro
- Product
- professioneel
- profilering
- bewijs
- gepatenteerd
- beschermd
- protocol
- doeleinden
- zetten
- Q1
- Quick
- sneller
- snel
- reeks
- tarief
- liever
- bereiken
- bereikt
- echte wereld
- real-time
- ontvangende
- recent
- onlangs
- na een training
- verminderen
- vermindering
- verwijst
- reflecteren
- weerspiegelt
- regio
- regio
- regelmatig
- relevante
- vertegenwoordigt
- te vragen
- verzoeken
- vereisen
- Voorwaarden
- veerkracht
- REST
- resultaat
- Resultaten
- Risico
- robuust
- Rollen
- Rollen
- ruw
- verkoop
- dezelfde
- Scale
- scaling
- scheduling
- veiligheid
- -Series
- dienen
- service
- Diensten
- Sessie
- reeks
- verscheidene
- moet
- stillegging
- aanzienlijke
- vereenvoudigd
- sinds
- single
- Maat
- slippen
- So
- Software
- sommige
- bron
- specifiek
- snelheid
- spikes
- Spot
- spotmarkt
- Stabiliteit
- stack
- gestapeld
- Stacks
- staat
- begin
- gestart
- statistiek
- Still
- abonneren
- geslaagd
- dergelijk
- suite
- ondersteuning
- Ondersteuning
- system
- Systems
- doelwit
- team
- teams
- tech
- Technisch
- Technologie
- termen
- Terraform
- proef
- Testen
- Bedankt
- dat
- De
- hun
- theoretisch
- daarom
- Deze
- Derde
- duizenden kosten
- Door
- doorvoer
- niet de tijd of
- Tijdreeksen
- Timed
- keer
- naar
- vandaag
- tools
- top
- Tracing
- Traders
- Handel
- traditioneel
- verkeer
- vertrouwde
- ui
- ultieme
- voor
- begrijpen
- Onverwacht
- bijgewerkt
- updates
- uptime
- us
- .
- divers
- groot
- Snelheid
- Venue
- reilen en zeilen
- Tegen
- via
- Volatiliteit
- vs
- Bekijk de introductievideo
- week
- GOED
- welke
- en
- wil
- Met
- binnen
- zonder
- woorden
- Slechtst
- zou
- Verkeerd
- jaar
- jaar
- You
- Your
- zephyrnet