Autor:
Shannon Kurtas, Diretora de Produto, Negociação Profissional e Institucional
Max Kaplan, diretor sênior de engenharia, infraestrutura principal e engenharia de dados
Suketu Gandhi, diretor sênior de engenharia, tecnologia comercial
Steve Hunt, vice-presidente de engenharia
Quase doze anos atrás, a Kraken iniciou sua missão pioneira de se tornar uma das primeiras e mais bem-sucedidas bolsas de ativos digitais. Começamos a negociar apenas quatro criptomoedas, mas agora suportamos mais de 220 ativos em 67 blockchains e mais de 700 mercados.
Crescemos rapidamente. Graças às nossas equipes de produtos e engenharia - incluindo especialistas em tecnologia blockchain, segurança, rede, infraestrutura e sistemas de negociação - conseguimos acompanhar a demanda massiva.
À medida que a indústria amadureceu e evoluiu, o mesmo aconteceu com o tamanho e a natureza de nossa base de clientes. Embora continuemos a atender investidores e comerciantes individuais por meio de nosso Kraken e Kraken-Pro plataformas, uma parte crescente do nosso fluxo de pedidos chega algoritmicamente via nossa API de clientes profissionais e institucionais. Isso inclui corporações, fundos de hedge, empresas comerciais proprietárias, corretoras principais, fintechs, bem como outras bolsas que dependem da profunda liquidez da Kraken.
Nossos sistemas de negociação tiveram que escalar para atender a essas demandas crescentes, especialmente para aqueles que dependem fortemente de velocidade, estabilidade e tempo de atividade para melhorar os custos de execução, gerenciar o risco de mercado e capitalizar as oportunidades de negociação. Conseguimos tudo isso sem comprometer nossa prioridade número um - segurança.
Hoje, temos o prazer de destacar alguns de nossos recentes esforços, sucessos e resultados desse dimensionamento.
A primazia do desempenho
Colocamos ênfase significativa no código de instrumentação para observar e entender o desempenho do nosso sistema sob condições pesadas do mundo real. Também empregamos benchmarking competitivo para confirmar como nos comportamos ao longo do tempo. Vamos explorar alguns desses resultados.
Velocidade e latência
Medimos a velocidade de negociação na forma de latência. Latência é o atraso de ida e volta e nós o definimos como o tempo entre uma solicitação de negociação (por exemplo, adicionar ordem) sendo enviada pelos sistemas do cliente e sendo confirmada pela bolsa.
Ao contrário das trocas tradicionais, os locais de criptografia geralmente são menos concentrados geograficamente e não oferecem colocation completo. Em muitos casos, eles são totalmente baseados em nuvem.
Os clientes sensíveis à latência implantarão o código onde quer que esteja fisicamente mais próximo do local. Portanto, uma comparação justa inclui medir a latência da região mais relevante para aquele local específico.
A latência também varia entre as solicitações de negociação, mesmo em uma conexão persistente entre um único cliente e a bolsa. Isso se deve às diferenças e à variabilidade nas negociações baseadas na Internet, bem como à forma como a bolsa está lidando com a carga. Portanto, devemos discutir as latências em termos de percentis em vez de números únicos. Por exemplo, a latência P25 refere-se à latência do percentil 25. Em outras palavras, um P25 de 5 ms significa que 25% de todas as solicitações de negociação dentro de um determinado período de tempo de amostragem tiveram uma latência de 5 ms ou mais.
Aqui você vê a latência P25 do melhor caminho de Kraken em comparação com alguns de nossos principais concorrentes em diferentes regiões, normalizados para localização, durante uma medição de linha de base no mês passado.
Nossa latência de ida e volta de linha de base de cerca de 2.5 ms representa uma melhoria de mais de 97% em relação ao primeiro trimestre de 1.
Estabilidade
Como mencionado anteriormente, o desempenho do mundo real sob carga pesada é tão importante, senão mais importante, do que o melhor desempenho de caso e os valores de latência absoluta.
Melhorar o custo de execução, reduzir a derrapagem e gerenciar o risco de mercado depende de minimizar o variabilidade de latência entre cada solicitação de negociação. Chamamos isso de jitter de variabilidade e medimos a diferença entre diferentes números de percentil de latência para o mesmo período de amostragem.
Ao medir o jitter com as latências P25 e P95, podemos capturar uma faixa significativa de desempenho e comportamento observado ao longo do tempo. Por exemplo, medimos como nosso jitter se comparou com um conjunto mais amplo de principais concorrentes durante a semana de 5 a 12 de novembro de 2022, um momento em que a volatilidade do mercado foi aguda devido ao estresse e ao fechamento final do FTX.
Aqui você pode ver como nossa infraestrutura de negociação se comportou excepcionalmente bem, apesar do aumento dramático da volatilidade e da carga. Em nenhum momento durante a semana esse jitter ultrapassou 30ms. Enquanto isso, para muitas outras trocas, chegava regularmente a várias centenas de milissegundos, ou as solicitações expiravam totalmente, conforme indicado pelos picos verticais.
Produtividade
A taxa de transferência reflete o número de solicitações de negociação bem-sucedidas (adicionar ordem, cancelar ordem, editar ordem etc.) tratadas por uma bolsa em um determinado período de tempo.
Semelhante à latência, discutimos a taxa de transferência em termos teóricos ou observados.
A taxa de transferência observada é mais relevante, pois reflete muitos fatores inter-relacionados, incluindo limites de taxa. Definimos esses limites para evitar ataques DDoS e manter o tráfego confortavelmente dentro dos limites teóricos. O tamanho da base de clientes, a demanda geral do mercado, o fluxo de pedidos (que é fortemente impactado pela volatilidade dos preços e pela atividade comercial em outros lugares) e o desempenho sob carga (já que além de um certo nível de degradação do serviço, os clientes começariam a limitar seus próprios pedidos) afetam esses limites.
Aqui, ilustramos a melhoria de mais de 4x em nossa taxa de transferência máxima observada entre o primeiro trimestre de 1 e o primeiro trimestre de 2021. Essa mudança é uma mudança de 1 mil solicitações/min para mais de 2023 milhão de solicitações/min, e há um espaço significativo entre esse nível e nossa dramaticamente rendimento máximo teórico aprimorado.
Uptime
Este ano, nos esforçamos para minimizar o tempo de inatividade devido à manutenção planejada, reduzir a frequência e o impacto do tempo de inatividade não programado e aumentar a velocidade das atualizações de recursos e melhorias de desempenho sem afetar negativamente o tempo de atividade.
Essas mudanças incluíram melhorias técnicas e operacionais, como uma equipe de resiliência operacional cada vez mais madura e ampla, que opera 24 horas por dia, 7 dias por semana.
Embora o tempo de atividade em nosso pior mês em 2021 tenha sido próximo a 99%, essas melhorias nos permitiram definir orçamentos de erro cada vez mais agressivos e uma meta de tempo de atividade comercial de 99.9+%.
Esforços
Implantações azul/verde e contínuas
Temos feito uso crescente de um estratégia de implantação azul/verde em nossos gateways de API e muitos serviços internos. Você pode ver uma ilustração muito simplificada disso destacada na Figura 6. Ao operar várias pilhas de código completas em paralelo, podemos implantar recursos sem perturbar a pilha principal que está recebendo o tráfego do cliente no momento. Posteriormente, o tráfego pode ser redirecionado para a nova pilha, levando a uma implantação de impacto zero ou a um procedimento de reversão muito rápido caso algo dê errado. Além disso, para nossos muitos serviços que operam várias instâncias para fins de balanceamento de carga, as atualizações dessas instâncias ocorrem continuamente, em vez de tudo ou nada. Essas abordagens agora nos permitem realizar atualizações de impacto zero e mais frequentes para a grande maioria de nossa pilha de tecnologia.
Infraestrutura como código
Kraken aproveita fortemente Infraestrutura como código (IaC) de Terraform e Nômade, em grande parte para garantir a consistência de todas as implantações de código, bem como a repetibilidade. Automatizamos nossos repositórios Terraform com integração e entrega contínuas para que possamos implementar as alterações de forma rápida e confiável. Nos últimos dois anos, implantamos uma nova infraestrutura usando IaC e quase toda a nossa infraestrutura hoje usa esse padrão. Essa mudança foi um marco importante e aproveitamos a IaC para aplicativos baseados em nuvem e no local.
Conectividade e rede
Aproveitamos a conectividade privada entre a AWS e nossos data centers locais. Essa conectividade permite que a Kraken garanta que temos a menor latência possível, a maior segurança possível e caminhos redundantes para garantir que possamos entrar em contato com a AWS o tempo todo. As melhorias recentes de rede e roteamento permitiram uma parte significativa da redução da latência de negociação de ida e volta da linha de base destacada acima.
Instrumentação e telemetria
Registros refinados e precisos, métricas e rastreamento de solicitações nos permitiram identificar, diagnosticar e resolver rapidamente quaisquer gargalos inesperados e problemas de desempenho em tempo real. Além dessa telemetria e de nosso próprio monitoramento competitivo, também atualizamos recentemente nossas métricas de latência de API e tempo de atividade em status.kraken.com com implantações de monitores externos para, em geral, refletir com mais precisão esses números conforme experimentados pelos clientes.
Implantações de API otimizadas
A qualquer momento, nossas APIs e pilha de negociação suportam dezenas de milhares de conexões negociadas algoritmicamente por meio de nossos Websockets ou APIs REST. Centenas de milhares de conexões adicionais vêm de nossas plataformas de interface do usuário, incluindo nosso novo alto desempenho Kraken-Pro plataforma. Embora essas plataformas obtenham muitos dos mesmos benefícios da infraestrutura de negociação principal descritos neste post, as cargas de trabalho são fundamentalmente diferentes e têm requisitos diferentes. As implantações de API sob medida para oferecer suporte às nossas plataformas de interface do usuário, com feeds de dados específicos, compactação, limitação, agregação etc. nos permitiram melhorar ainda mais a velocidade e reduzir o desperdício de largura de banda e, portanto, aumentar a capacidade geral do cliente.
Melhorias no código principal
Fizemos uma série de melhorias drásticas em toda a pilha por meio da reengenharia dos serviços principais em Ferrugem e C++. Essas alterações aumentam o uso de mensagens assíncronas e persistência de dados sempre que possível e nos ajudam a criar perfis de desempenho robustos em mais pipelines de CI/CD. Eles também nos permitem empregar os métodos mais conhecidos para análise de código estático e dinâmico. Várias dessas melhorias culminaram na queda da latência média do mecanismo correspondente de milissegundos para microssegundos. Isso representa uma melhoria de mais de 90% em relação aos dois anos anteriores, enquanto suporta mais de 4x a taxa de transferência.
Qual é o próximo?
API FIX nativa
Em breve, também lançaremos nossa API FIX nativa para negociação e dados de mercado à vista. FIX, que significa Financial Information Exchange, é uma API padrão do setor poderosa e abrangente, mas flexível, que muitas instituições usam para negociar ações, FX e renda fixa em grande escala. É um protocolo confiável e testado em batalha, com amplo software de terceiros e suporte de código aberto, tornando mais fácil e rápido para as instituições se integrarem ao Kraken e começarem a negociar.
A API FIX nativa do Kraken também vem com nuances arquitetônicas e benefícios relativos aos nossos Websockets e APIs REST, incluindo cancelamento na desconexão baseado em sessão, entrega garantida de mensagens em ordem, recuperação de sessão e replay. Nossa API FIX está atualmente em teste beta — alcançar se você gostaria de ajudar a chutar os pneus!
Implantações de mecanismo de correspondência com tempo de inatividade zero
Fizemos incursões significativas na frequência de implantações de impacto zero de gateways de API e vários serviços de back-end (autenticação, auditoria, telemetria etc.). Atualizações de material em nosso mecanismo correspondente, no entanto, ainda exigem manutenção programada e um breve período de inatividade, que realizamos aproximadamente quinzenalmente.
No entanto, nossa equipe fez um esforço significativo para reprojetar alguns de nossos sistemas internos de mensagens com tecnologia multicast, fazendo uso de Aeron, um conjunto de ferramentas extremamente eficiente e robusto para sistemas de alta disponibilidade tolerantes a falhas. O resultado disso serão implantações planejadas com tempo de inatividade zero em toda a pilha de negociação, disponíveis no final de 2023.
Preciso de ajuda? Alcançar
Entre em contato com nossas equipes de gerenciamento de contas e vendas institucionais usando o endereço de e-mail para saber mais sobre qualquer uma dessas atualizações, para discutir como otimizar sua conectividade de negociação ou para testar recursos futuros como nossa API FIX.
Precisa de mais provas? Fique de olho e assine as atualizações em status.kraken.com para qualquer manutenção planejada, informações de serviço e estatísticas de latência e tempo de atividade.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://blog.kraken.com/post/17936/performance-at-kraken/
- :é
- $UP
- 2021
- 2022
- 2023
- 250K
- 67
- 7
- 9
- a
- Capaz
- Sobre
- acima
- absoluto
- Conta
- gerenciamento de contas
- preciso
- exatamente
- alcançado
- em
- atividade
- endereço
- afetar
- agregação
- agressivo
- algoritmicamente
- Todos os Produtos
- permite
- quantidade
- análise
- e
- api
- APIs
- aplicações
- se aproxima
- arquitetônico
- SOMOS
- Chega
- AS
- ativo
- Ativos
- At
- Ataques
- auditor
- Autenticação
- automatizar
- disponibilidade
- disponível
- média
- AWS
- Backend
- Largura de Banda
- base
- Linha de Base
- base
- BE
- tornam-se
- antes
- começou
- começar
- ser
- aferimento
- Benefícios
- MELHOR
- beta
- Melhor
- entre
- Pós
- blockchain
- tecnologia blockchain
- blockchains
- amplo
- mais amplo
- corretores
- Orçamentos
- construir
- by
- C + +
- chamada
- CAN
- Capacidade
- capitalizar
- capturar
- transportar
- casas
- casos
- Centros
- certo
- alterar
- Alterações
- de cores
- cliente
- clientes
- Fechar
- código
- como
- comparação
- competitivo
- concorrentes
- compreensivo
- comprometendo
- Concentrado
- condições
- Conduzir
- Confirmar
- da conexão
- Coneções
- Conectividade
- continuar
- contínuo
- núcleo
- Corporações
- Custo
- custos
- cripto
- criptomoedas
- Atualmente
- dados,
- centros de dados
- DDoS
- década
- profundo
- atraso
- Deleitado
- Entrega
- Demanda
- demandas
- depende
- implantar
- implantado
- desenvolvimento
- Implantações
- descrito
- Apesar de
- DID
- diferença
- diferenças
- diferente
- digital
- Ativo digital
- Diretor
- discutir
- angústia
- não
- tempo de inatividade
- dramaticamente
- dramaticamente
- Caindo
- durante
- dinâmico
- e
- cada
- mais fácil
- esforço
- esforços
- ou
- em outro lugar
- ênfase
- habilitado
- Motor
- Engenharia
- inteiramente
- Equities
- erro
- etc.
- Mesmo
- evoluiu
- exemplo
- excedem
- exchange
- Trocas
- execução
- experiente
- especialistas
- explorar
- externo
- extremamente
- olho
- fatores
- feira
- Característica
- Funcionalidades
- Figura
- figuras
- financeiro
- informação financeira
- fintechs
- empresas
- Primeiro nome
- Fixar
- fixado
- renda fixa
- flexível
- fluxo
- Escolha
- formulário
- próximo
- QUADRO
- Frequência
- freqüente
- da
- FTX
- cheio
- fundamentalmente
- fundos
- mais distante
- Além disso
- FX
- Geral
- geralmente
- dado
- Go
- Crescente
- crescido
- Growth
- garanta
- garantido
- Manipulação
- acontecer
- Ter
- espaço livre
- fortemente
- pesado
- cerca viva
- Hedge Funds
- ajudar
- Alta
- mais
- Destaques
- Destaque
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- Centenas
- identificar
- Impacto
- impactada
- importante
- melhorar
- melhorado
- melhoria
- melhorias
- in
- Em outra
- incluir
- incluído
- inclui
- Incluindo
- Passiva
- Crescimento
- aumentou
- aumentando
- cada vez mais
- indicado
- Individual
- indústria
- INFORMAÇÕES
- Infraestrutura
- DOCUMENTOS
- clientes institucionais
- instituições
- integrar
- integração
- interno
- Baseado na Internet
- Investidores
- questões
- IT
- ESTÁ
- Guarda
- chutar
- conhecido
- Kraken
- grande
- Sobrenome
- Latência
- de lançamento
- principal
- APRENDER
- Permite
- Nível
- Alavancagem
- como
- limites
- Liquidez
- carregar
- localização
- moldadas
- a Principal
- manutenção
- principal
- Maioria
- fazer
- Fazendo
- gerencia
- de grupos
- gestão
- muitos
- mercado
- Dados de mercado
- Volatilidade do mercado
- Mercados
- maciço
- correspondente
- material
- maduro
- max-width
- máximo
- significa
- Entretanto
- a medida
- medição
- Conheça
- mencionado
- mensagem
- mensagens
- métodos
- Métrica
- marco miliário
- minimizando
- mínimo
- Missão
- momento
- Monitore
- monitoração
- Mês
- mais
- a maioria
- mover
- MS
- múltiplo
- nativo
- Natureza
- quase
- negativamente
- networking
- Novo
- Próximo
- Novembro
- número
- números
- of
- oferecer
- on
- ONE
- aberto
- open source
- operar
- opera
- operando
- operacional
- resiliência operacional
- oportunidades
- Otimize
- ordem
- Outros
- global
- próprio
- Paralelo
- parte
- particularmente
- festa
- passado
- caminho
- padrão
- atuação
- persistência
- Fisicamente
- Pioneirismo
- planejado
- plataforma
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- possível
- Publique
- poderoso
- evitar
- preço
- Prime
- Prévio
- prioridade
- privado
- Pro
- Produto
- profissional
- profiling
- prova
- proprietário
- protegido
- protocolo
- fins
- colocar
- Q1
- Links
- mais rápido
- rapidamente
- alcance
- Taxa
- em vez
- alcançar
- alcançado
- mundo real
- em tempo real
- receber
- recentemente
- recentemente
- recuperação
- reduzir
- redução
- refere-se
- refletir
- reflete
- região
- regiões
- regularmente
- relevante
- representa
- solicitar
- pedidos
- requerer
- Requisitos
- resiliência
- DESCANSO
- resultar
- Resultados
- Risco
- uma conta de despesas robusta
- Rolo
- rolando
- grosseiramente
- vendas
- mesmo
- Escala
- dimensionamento
- agendamento
- segurança
- Série
- servir
- serviço
- Serviços
- Sessão
- conjunto
- vários
- rede de apoio social
- encerramento
- periodo
- simplificada
- desde
- solteiro
- Tamanho
- deslizamento
- So
- Software
- alguns
- fonte
- específico
- velocidade
- picos
- Spot
- mercado à vista
- Estabilidade
- pilha
- empilhado
- Pilhas
- fica
- começo
- começado
- estatística
- Ainda
- Inscreva-se
- bem sucedido
- tal
- suíte
- ajuda
- Apoiar
- .
- sistemas
- Target
- Profissionais
- equipes
- tecnologia
- Dados Técnicos:
- Tecnologia
- condições
- Terraform
- teste
- ensaio
- obrigado
- que
- A
- deles
- teórico
- assim sendo
- Este
- Terceiro
- milhares
- Através da
- Taxa de transferência
- tempo
- Séries temporais
- Cronometrado
- vezes
- para
- hoje
- ferramentas
- topo
- Traçado
- Traders
- Trading
- tradicional
- tráfego
- confiável
- ui
- final
- para
- compreender
- Inesperado
- Atualizada
- Atualizações
- uptime
- us
- usar
- vário
- Grande
- Velocidade
- Local
- locais
- Contra
- via
- 👍 Volatilidade
- vs
- Assistir
- semana
- BEM
- qual
- enquanto
- precisarão
- de
- dentro
- sem
- palavras
- o pior
- seria
- Errado
- ano
- anos
- Vocês
- investimentos
- zefirnet