Autor:
Shannon Kurtas, director de produs, Pro & Institutional Trading
Max Kaplan, Director Sr. Inginerie, Infrastructură de bază și Inginerie de date
Suketu Gandhi, Director Sr. Inginerie, Tehnologia Comercială
Steve Hunt, VP Inginerie
În urmă cu aproape doisprezece ani, Kraken și-a început misiunea de pionierat de a deveni unul dintre primele și cele mai de succes schimburi de active digitale. Am început să tranzacționăm doar patru criptomonede, dar acum acceptăm peste 220 de active pe 67 de blockchain și peste 700 de piețe.
Am crescut repede. Datorită echipelor noastre de produse și inginerie – inclusiv experți în tehnologie blockchain, securitate, rețele, infrastructură și sisteme de tranzacționare – am reușit să ținem pasul cu cererea masivă.
Pe măsură ce industria s-a maturizat și a evoluat, la fel și dimensiunea și natura bazei noastre de clienți. În timp ce continuăm să servim investitorilor și comercianților individuali prin intermediul nostru Kraken și KrakenPro platforme, o parte din ce în ce mai mare a fluxului nostru de comenzi sosește algoritmic prin intermediul API-ul nostru de la clienți profesioniști și instituționali. Acestea includ corporații, fonduri speculative, firme de tranzacționare proprii, brokeri primari, fintech-uri, precum și alte burse care se bazează pe lichiditatea profundă a Kraken.
Sistemele noastre de tranzacționare au trebuit să se extindă pentru a răspunde acestor cerințe crescute, în special pentru cele care depind în mare măsură de viteză, stabilitate și timp de funcționare pentru a îmbunătăți costurile de execuție, a gestiona riscul de piață și a valorifica oportunitățile de tranzacționare. Am realizat toate acestea fără a compromite prioritatea noastră numărul unu - securitate.
Astăzi, suntem încântați să evidențiem unele dintre eforturile noastre recente, succesele și rezultatele acestei extinderi.
Primatul performanței
Punem un accent semnificativ pe instrumentarea codului pentru a urmări și înțelege performanța sistemului nostru în condiții grele din lumea reală. De asemenea, folosim benchmarking competitiv pentru a confirma modul în care ne evoluăm în timp. Să explorăm câteva dintre aceste rezultate.
Viteză și latență
Măsurăm viteza de tranzacționare sub formă de latență. Latența este întârzierea dus-întors și o definim ca fiind timpul dintre o cerere de tranzacționare (de exemplu, adăugarea unui ordin) care este trimisă de sistemele clienților și este confirmată de schimb.
Spre deosebire de schimburile tradiționale, locațiile cripto sunt în general mai puțin concentrate geografic și nu oferă o colocare completă. În multe cazuri, acestea sunt în întregime bazate pe cloud.
Clienții sensibili la latență vor implementa codul oriunde este cel mai aproape fizic de locație. Prin urmare, o comparație corectă include măsurarea latenței din regiunea cea mai relevantă pentru acel loc specific.
Latența va varia, de asemenea, între cererile de tranzacționare, chiar și în cazul unei conexiuni persistente între un singur client și schimb. Acest lucru se datorează atât diferențelor, cât și variabilității în tranzacționarea pe internet, precum și modului în care schimbul gestionează sarcina. Prin urmare, trebuie să discutăm despre latențe mai degrabă în termeni de percentile decât de cifre unice. De exemplu, latența P25 se referă la a 25-a latență. Cu alte cuvinte, un P25 de 5 ms înseamnă că 25% din toate cererile de tranzacționare dintr-un anumit interval de timp de eșantionare au avut o latență de 5 ms sau mai bună.
Aici vedeți cea mai bună cale de latență a lui Kraken P25 față de unii dintre concurenții noștri de top din diferite regiuni, normalizate pentru locație, în timpul unei măsurători de bază luna trecută.
Latența noastră de referință dus-întors de aproximativ 2.5 ms reprezintă o îmbunătățire de peste 97% față de T1 2021.
Stabilitate
După cum am menționat anterior, performanța în lumea reală sub sarcină grea este la fel de importantă, dacă nu mai importantă, decât performanța în cel mai bun caz și cifrele de latență absolută.
Îmbunătățirea costurilor de execuție, reducerea derapajului și gestionarea riscului de piață depind de minimizarea variabilitate de latență între fiecare cerere de tranzacționare. Numim această variabilitate fluctuație și măsurăm diferența dintre diferitele cifre ale percentilei de latență pentru același interval de timp de eșantionare.
Măsurând fluctuația cu latențe P25 și P95, putem surprinde o gamă semnificativă de performanțe și comportament observat de-a lungul timpului. De exemplu, am măsurat modul în care nervozitatea noastră s-a acumulat cu un set mai larg de concurenți de top în săptămâna 5-12 noiembrie 2022, o perioadă în care volatilitatea pieței a fost acută din cauza dificultății și a închiderii finale a FTX.
Aici puteți vedea cum infrastructura noastră de tranzacționare s-a comportat excepțional de bine, în ciuda volatilității și încărcării dramatic crescute. În niciun moment în timpul săptămânii, acest jitter nu a depășit 30 ms. Între timp, pentru multe alte schimburi, a atins în mod regulat câteva sute de milisecunde sau cererile au expirat complet după cum indică vârfurile verticale.
tranzitată
Debitul reflectă numărul de solicitări de tranzacționare reușite (adăugați ordin, anulați ordin, editați ordin etc.) gestionate de o bursă într-un anumit interval de timp.
Similar cu latența, discutăm debitul în termeni teoretici sau observați.
Debitul observat este mai relevant, deoarece reflectă mulți factori interdependenți, inclusiv limitele ratei. Am stabilit aceste limite pentru a preveni atacurile DDoS și pentru a menține traficul confortabil în limitele teoretice. Dimensiunea bazei de clienți, cererea generală de pe piață, fluxul de comenzi (care este puternic afectat de volatilitatea prețurilor și de activitatea de tranzacționare în altă parte) și performanța sub sarcină (deoarece dincolo de un anumit nivel de degradare a serviciilor, clienții ar începe să-și limiteze propriile cereri) toate afectează aceste limite.
Aici am ilustrat îmbunătățirea de peste 4 ori a debitului nostru maxim observat între Q1 2021 și Q1 2023. Această schimbare este o trecere de la 250 solicitări/min la peste 1 mm solicitări/min și există un spațiu semnificativ între acest nivel și nivelul nostru dramatic. debit maxim teoretic îmbunătățit.
Uptime
Anul acesta, am depus eforturi pentru a minimiza timpul de nefuncționare din cauza întreținerii planificate, pentru a reduce frecvența și impactul perioadelor de întrerupere neprogramate și pentru a crește viteza actualizărilor caracteristicilor și îmbunătățirilor de performanță, fără a afecta negativ timpul de funcționare.
Aceste schimbări au inclus îmbunătățiri atât tehnice, cât și operaționale, cum ar fi o echipă de rezistență operațională din ce în ce mai matură și mare, care funcționează 24/7.
În timp ce timpul de funcționare pentru cea mai proastă lună din 2021 a fost aproape de 99%, aceste îmbunătățiri ne-au permis să stabilim bugete de eroare din ce în ce mai agresive și o țintă de timp de tranzacționare de 99.9+%.
Eforturi
Implementări albastre/verzi și rulante
Am folosit tot mai mult a strategia de implementare albastru/verde prin gateway-urile noastre API și multe servicii interne. Puteți vedea o ilustrare foarte simplificată a acestui lucru este evidențiată în Figura 6. Prin operarea mai multor stive de cod complet în paralel, putem implementa funcții fără a perturba stiva principală care primește în prezent trafic client. Ulterior, traficul poate fi redirecționat către noua stivă, ceea ce duce la o implementare cu impact zero sau la o procedură de rollback foarte rapidă în cazul în care ceva nu merge bine. În plus, pentru numeroasele noastre servicii care operează mai multe instanțe în scopul echilibrării încărcării, actualizările acestor instanțe au loc în mod continuu, mai degrabă decât toate sau niciunul. Aceste abordări ne permit acum să efectuăm actualizări cu impact zero și mai frecvente pentru marea majoritate a stivei noastre de tehnologie.
Infrastructura ca Cod
Kraken folosește foarte mult Infrastructura ca cod (IaC) cu Terraform și nomad, în mare parte pentru a garanta consistența tuturor implementărilor de cod, precum și repetabilitatea. Automatizăm depozitele Terraform cu integrare continuă și livrare continuă, astfel încât să putem implementa modificările rapid și fiabil. În ultimii doi ani, am implementat infrastructură nouă folosind IaC și aproape toată infrastructura noastră de astăzi folosește acest model. Această mișcare a fost o etapă majoră și folosim IaC atât pentru aplicații bazate pe cloud, cât și pentru aplicații on-premise.
Conectivitate și rețea
Profităm de conectivitatea privată între AWS și centrele noastre de date on-premise. Această conectivitate îi permite Kraken să garanteze că avem cea mai mică latență posibilă, cea mai mare securitate posibilă și căi redundante pentru a ne asigura că putem contacta AWS în orice moment. Îmbunătățirile recente de rețea și rutare au permis o parte semnificativă a reducerii latenței de tranzacționare dus-întors, evidențiată mai sus.
Instrumentatie si telemetrie
Înregistrările fine și precise, valorile și urmărirea cererilor ne-au permis să identificăm, să diagnosticăm și să rezolvăm rapid orice blocaj neașteptat și probleme de performanță în timp real. Dincolo de această telemetrie și de propria noastră monitorizare competitivă, am actualizat recent și valorile privind latența și timpul de funcționare API pe status.kraken.com cu implementări de monitor extern pentru, în general, să reflecte mai exact aceste cifre, așa cum le-au experimentat clienții.
Implementări optimizate de API
În orice moment, API-urile noastre și stiva noastră de tranzacționare acceptă zeci de mii de conexiuni tranzacționate algoritmic prin intermediul Websocket-urilor sau API-urilor REST. Alte sute de mii de conexiuni provin de la platformele noastre UI, inclusiv noul nostru de înaltă performanță KrakenPro platformă. În timp ce aceste platforme beneficiază de multe dintre aceleași beneficii ale infrastructurii de tranzacționare de bază descrise în această postare, sarcinile de lucru sunt fundamental diferite și au cerințe diferite. Implementările API personalizate pentru a susține platformele noastre UI, cu fluxuri de date specifice, compresie, limitare, agregare etc., ne-au permis să îmbunătățim în continuare viteza și să reducem lățimea de bandă irosită și, prin urmare, să creștem capacitatea generală a clienților.
Îmbunătățiri ale codului de bază
Am făcut o serie de îmbunătățiri ulterioare dramatice în întreaga stivă prin reproiectarea serviciilor de bază în Rugină și C++. Aceste modificări fac o utilizare sporită a mesajelor asincrone și a persistenței datelor acolo unde este posibil și ne ajută să construim un profil robust de performanță în mai multe conducte CI/CD. De asemenea, ne permit să folosim cele mai cunoscute metode de analiză statică și dinamică a codului. Câteva dintre aceste îmbunătățiri au culminat cu scăderea latenței medii a motorului de potrivire de la milisecunde la microsecunde. Aceasta este o îmbunătățire de peste 90% față de doi ani înainte, susținând în același timp de peste 4 ori viteza de transfer.
Ce urmeaza?
API-ul FIX nativ
De asemenea, în curând vom lansa API-ul nostru nativ FIX pentru datele și tranzacționarea pieței spot. FIX, care înseamnă Schimb de informații financiare, este un API puternic și cuprinzător, dar flexibil, standard din industrie, pe care multe instituții îl folosesc pentru tranzacționarea acțiunilor, FX și venit fix la o scară masivă. Este un protocol de încredere și testat în luptă, cu software terță parte și suport open source, ceea ce face ca instituțiile să se integreze mai ușor și mai rapid cu Kraken și să înceapă tranzacționarea.
API-ul FIX nativ Kraken vine, de asemenea, cu nuanțe arhitecturale și beneficii legate de Websockets și API-urile REST, inclusiv anulare la deconectare bazată pe sesiune, livrare garantată a mesajelor în ordine, recuperarea sesiunii și reluare. API-ul nostru FIX este în prezent în testare beta — ajungeți în afară dacă vrei să ajuți la lovirea anvelopelor!
Implementări de motor de potrivire fără timpi de nefuncționare
Am făcut progrese semnificative în ceea ce privește frecvența implementărilor cu impact zero a gateway-urilor API și a diferitelor servicii de backend (autentificare, audit, telemetrie etc.). Actualizările materiale ale motorului nostru de potrivire, totuși, necesită în continuare programarea întreținerii și timpi scurti de nefuncționare, pe care le efectuăm aproximativ o dată pe săptămână.
Cu toate acestea, echipa noastră a făcut un efort semnificativ pentru a reproiecta unele dintre sistemele noastre interne de mesagerie cu tehnologie multicast, utilizând Aeron, o suită de instrumente extrem de performantă și robustă pentru sisteme de înaltă disponibilitate tolerante la erori. Rezultatul va fi implementări planificate fără timpi de nefuncționare în stiva de tranzacționare, disponibile mai târziu în 2023.
Nevoie de ajutor? Întinde mâna
Vă rugăm să contactați echipele noastre de gestionare a contului și de vânzări instituționale folosind adresa de e-mail pentru a afla mai multe despre oricare dintre aceste actualizări, pentru a discuta despre cum să vă optimizați conectivitatea de tranzacționare sau pentru a testa funcțiile viitoare, cum ar fi FIX API.
Ai nevoie de mai multe dovezi? Fii atent și abonează-te la actualizările despre status.kraken.com pentru orice întreținere planificată, informații despre service și statistici privind latența și timpul de funcționare.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://blog.kraken.com/post/17936/performance-at-kraken/
- :este
- $UP
- 2021
- 2022
- 2023
- 250 K
- 67
- 7
- 9
- a
- Capabil
- Despre Noi
- mai sus
- Absolut
- Cont
- managementul contului
- precis
- precis
- realizat
- peste
- activitate
- adresa
- afecta
- agregare
- agresiv
- algoritmic
- TOATE
- permite
- sumă
- analiză
- și
- api
- API-uri
- aplicatii
- abordari
- arhitectural
- SUNT
- soseşte
- AS
- activ
- Bunuri
- At
- Atacuri
- de audit
- Autentificare
- automatizarea
- disponibilitate
- disponibil
- in medie
- AWS
- Backend
- Lățime de bandă
- de bază
- De bază
- bază
- BE
- deveni
- înainte
- început
- începe
- fiind
- analiza comparativă
- Beneficiile
- CEL MAI BUN
- beta
- Mai bine
- între
- Dincolo de
- blockchain
- Tehnologia blocurilor
- blockchains
- larg
- mai larg
- brokeri
- Bugete
- construi
- by
- C ++
- apel
- CAN
- Capacitate
- valorifica
- captura
- transporta
- caz
- cazuri
- Centre
- sigur
- Schimbare
- Modificări
- Diagramă
- client
- clientii
- Închide
- cod
- cum
- comparație
- competitiv
- concurenți
- cuprinzător
- compromisor
- Concentrat
- Condiții
- Conduce
- Confirma
- conexiune
- Conexiuni
- Suport conectare
- continua
- continuu
- Nucleu
- Corporații
- A costat
- Cheltuieli
- cripto
- cryptocurrencies
- În prezent
- de date
- centre de date
- DDoS
- deceniu
- adânc
- întârziere
- Încântat
- livrare
- Cerere
- cererile
- depinde de
- implementa
- dislocate
- desfășurarea
- implementări
- descris
- În ciuda
- FĂCUT
- diferenţă
- diferenţele
- diferit
- digital
- Active digitale
- Director
- discuta
- suferință
- Dont
- nefuncționare
- dramatic
- dramatic
- scăparea
- în timpul
- dinamic
- e
- fiecare
- mai ușor
- efort
- Eforturile
- oricare
- în altă parte
- accent
- activat
- Motor
- Inginerie
- în întregime
- aciunile
- eroare
- etc
- Chiar
- evoluat
- exemplu
- depăși
- schimb
- Platforme de tranzacţionare
- execuție
- cu experienţă
- experți
- explora
- extern
- extrem
- ochi
- factori
- echitabil
- Caracteristică
- DESCRIERE
- Figura
- cifre
- financiar
- informatie financiara
- fintechs
- firme
- First
- Repara
- fixată
- venit fix
- flexibil
- debit
- Pentru
- formă
- viitor
- FRAME
- Frecvență
- frecvent
- din
- FTX
- Complet
- fundamental
- Fondurile
- mai mult
- În plus
- FX
- General
- în general
- dat
- Go
- În creştere
- crescut
- Creștere
- garanta
- garantat
- Manipularea
- întâmpla
- Avea
- loc de trecere
- puternic
- greu
- gard viu
- Fonduri de investiții
- ajutor
- Înalt
- cea mai mare
- Evidențiați
- Evidențiat
- Cum
- Cum Pentru a
- HTTPS
- sute
- identifica
- Impactul
- afectate
- important
- îmbunătăţi
- îmbunătățit
- îmbunătățire
- îmbunătățiri
- in
- În altele
- include
- inclus
- include
- Inclusiv
- Venituri
- Crește
- a crescut
- crescând
- tot mai mult
- indicată
- individ
- industrie
- informații
- Infrastructură
- Instituţional
- clienți instituționali
- instituții
- integra
- integrare
- intern
- Internet
- Investitori
- probleme de
- IT
- ESTE
- A pastra
- lovi cu piciorul
- cunoscut
- Kraken
- mare
- Nume
- Latență
- lansare
- conducere
- AFLAȚI
- Permite
- Nivel
- Pârghie
- ca
- Limitele
- Lichiditate
- încărca
- locaţie
- făcut
- Principal
- întreținere
- major
- Majoritate
- face
- Efectuarea
- administra
- administrare
- de conducere
- multe
- Piață
- Piata de date
- Volatilitatea pieței
- pieţe
- masiv
- potrivire
- material
- matur
- max-width
- maxim
- mijloace
- Între timp
- măsura
- măsurare
- Întâlni
- menționat
- mesaj
- mesagerie
- Metode
- Metrici
- bornă
- minimizând
- minim
- Misiune
- moment
- monitor
- Monitorizarea
- Lună
- mai mult
- cele mai multe
- muta
- MS
- multiplu
- nativ
- Natură
- aproape
- negativ
- rețele
- Nou
- următor
- noiembrie
- număr
- numere
- of
- oferi
- on
- ONE
- deschide
- open-source
- funcionar
- opereaza
- de operare
- operațional
- rezistență operațională
- Oportunităţi
- Optimizați
- comandă
- Altele
- global
- propriu
- Paralel
- parte
- în special
- parte
- trecut
- cale
- Model
- performanță
- persistență
- Fizic
- pionierat
- planificat
- platformă
- Platforme
- Plato
- Informații despre date Platon
- PlatoData
- Punct
- posibil
- Post
- puternic
- împiedica
- preţ
- Prim
- anterior
- prioritate
- privat
- Pro
- Produs
- profesional
- profilare
- dovadă
- proprietate
- protejat
- protocol
- scopuri
- pune
- Q1
- Rapid
- mai repede
- repede
- gamă
- rată
- mai degraba
- ajunge
- atins
- lumea reală
- în timp real
- primire
- recent
- recent
- recuperare
- reduce
- reducerea
- se referă
- reflecta
- reflectă
- regiune
- regiuni
- regulat
- reprezintă
- solicita
- cereri de
- necesita
- Cerinţe
- elasticitate
- REST
- rezultat
- REZULTATE
- Risc
- robust
- sul
- Rulare
- aproximativ
- de vânzări
- acelaşi
- Scară
- scalare
- programare
- securitate
- serie
- servi
- serviciu
- Servicii
- sesiune
- set
- câteva
- să
- închidere
- semnificativ
- simplificată
- întrucât
- singur
- Mărimea
- alunecarea
- So
- Software
- unele
- Sursă
- specific
- viteză
- piroane
- Loc
- piața spot
- Stabilitate
- stivui
- stivuite
- Stive
- Standuri
- Începe
- început
- statistică
- Încă
- subscrie
- de succes
- astfel de
- suită
- a sustine
- De sprijin
- sistem
- sisteme
- Ţintă
- echipă
- echipe
- tech
- Tehnic
- Tehnologia
- termeni
- Terraform
- test
- Testarea
- mulțumesc
- acea
- lor
- teoretic
- prin urmare
- Acestea
- Al treilea
- mii
- Prin
- debit
- timp
- Seria de timp
- Contra cronometru
- ori
- la
- astăzi
- Unelte
- top
- calc
- Comercianti
- Trading
- tradiţional
- trafic
- de încredere
- ui
- final
- în
- înţelege
- Neașteptat
- actualizat
- actualizări
- uptime
- us
- utilizare
- diverse
- Fixă
- Viteză
- Locatia evenimentului
- locuri
- Impotriva
- de
- Volatilitate
- vs
- Ceas
- săptămână
- BINE
- care
- în timp ce
- voi
- cu
- în
- fără
- cuvinte
- Mini rulouri de absorbție
- ar
- Greșit
- an
- ani
- Tu
- Ta
- zephyrnet