Mais uma semana super cheia, com muitos desafios para superar e juntos, apoiando uns aos outros, conseguimos!
A equipe se manteve focada, com trabalho árduo e paixão pelo que fazemos. É por isso que estou tão animado com esse projeto!
Engenharia de Performance
Nessa semana, vamos falar sobre nossa Engenharia de Desempenho usada pela equipe de tecnologia da Klever.
Esses processos nos permitem construir a Klever Exchange, uma Exchange de Alto Desempenho, com o objetivo principal de ser uma corretora mais barata, tornando possível processar uma grande quantidade de negociações com pequenos valores e baixas taxas.
Nosso Processo de Engenharia de Desempenho faz parte do time #DevSecOps com especialistas em cross field que se juntaram ao time #KleverEx para aplicar seus conhecimentos.
Esse processo garante alto desempenho e resiliência em nossos serviços, desde as fases de desenvolvimento até o ambiente de produção. É uma operação cíclica, que é aplicada em cada nova versão da #KleverEx.
O objetivo é encontrar e remover quaisquer possíveis gargalos que possam limitar a taxa de transferência e o desempenho da Exchange para nossos usuários.
Analisamos como o serviço vai se comportar com uma carga extrema de acessos e depois analisamos as melhorias na arquitetura do software, sempre buscando uma solução escalonável e de alto desempenho com o menor custo possível.
Antes de irmos para os resultados, vamos falar um pouco sobre a Arquitetura de Software usada para alimentar a #KleverEx. É baseada na arquitetura de microsserviços orientada a eventos, desenvolvida em Kubernetes (K8s) e Golang.
Essa solução nos garante ter:
-
Estrutura Loosely Coupled - Criadores de Eventos — tais como o processo de criação de ordens ou quando a ordem é preenchida — e Consumidores de Eventos — como quando a UI te informa sobre o estado das ordens — são fracamente acoplados com a ajuda de uma "fila" de eventos, que os ajudam a acoplar e desacoplar em diferentes plataformas (Android ou IOS) com resposta a vários eventos. Também permite que profissionais desenvolvam diferentes processadores de eventos mais rápido. Também permite usar esses componentes e reutilizar em muitas plataformas diferentes.
-
Análise em tempo real - Arquitetura orientada a eventos otimizada para análise em tempo real. Possibilita encontrar, analisar e responder com mais facilidade a padrões antes que eventos críticos aconteçam, evitando que o problema ocorra em produção. Usando processamento de eventos complexos para obter análises em tempo real.
-
Versatilidade - Um sistema que segue a arquitetura orientada a eventos facilita uma maior capacidade de resposta porque são, em sua estrutura, criados para ambientes imprevisíveis, não lineares e assíncronos. Esses sistemas são altamente adaptáveis em diferentes circunstâncias.
Em outras palavras, essa Arquitetura de Software significa:
-
Menos esforço para construir a #KleverEx para as 3 plataformas planejadas: Android, IOS e Web;
-
Uma UI em tempo real, para as 3 plataformas planejadas;
-
E uma solução mais resiliente.
O Kubernetes, originalmente desenvolvido pelo Google, nos permite construir e reconstruir ambientes como desejamos e quantos forem necessários. Usando a infraestrutura como código, podemos dimensionar ambientes e serviços para atender às nossas necessidades.
Portanto, após qualquer lançamento, executamos o teste de carga no ambiente de preparação e validamos se o desempenho é melhor do que a última versão. Se for pior, simplesmente bloqueamos a liberação do código e pedimos à equipe para consertar os gargalos encontrados nele.
Por exemplo, em uma de nossas medições dos serviços, ao disparar um teste com um código de lançamento, atingimos o limite de desempenho de 114 Usuários Virtuais (bots ou robôs fazendo solicitações ininterruptas).
Assim, a equipe analisa os dados de desempenho, identifica gargalos e limitações da arquitetura de software e otimiza com base nesses resultados.
Então, no dia seguinte após as mudanças no código, melhoramos o uso do cache no nível de serviço, entre outras melhorias e repetimos o teste na versão fixa e chegamos ao primeiro nível de desempenho necessário, que são 250 Usuários Virtuais (bots ou robôs fazendo solicitações ininterruptas).
Rodamos o teste até chegar a 550 Usuários Virtuais e o serviço manteve o bom desempenho, então demos sinal verde para esta versão.
Usando esses métodos, continuamos aprimorando nossos serviços para trazer à nossa comunidade uma experiência de alto padrão e uma escalabilidade resistente da Klever Exchange.
Agora, vamos ver o progresso de forma geral em outros times na semana passada:
Klever Exchange
Klever Wallet
Klever Hard Wallet
Klever Workspace
Espero que tenha gostado de conhecer mais sobre a Engenharia de Desempenho da #KleverEx esta semana e o Progresso Técnico geral feito por nossa equipe. Mal posso esperar para te ver semana que vem!
Sinceramente,
Bruno Campos
CTO da Klever