Monitoramento + teste de carga = previsão e sem falhas

O departamento de TI da VTB teve que lidar diversas vezes com situações de emergência na operação de sistemas, quando a carga sobre eles aumentava muitas vezes. Portanto, houve a necessidade de desenvolver e testar um modelo que pudesse prever a carga de pico em sistemas críticos. Para isso, os especialistas em TI do banco montaram monitoramento, analisaram dados e aprenderam a automatizar previsões. Contaremos em um breve artigo quais ferramentas ajudaram a prever a carga e se ajudaram a otimizar o trabalho.

Monitoramento + teste de carga = previsão e sem falhas

Problemas com serviços de alta carga surgem em quase todos os setores, mas para o setor financeiro são críticos. Na hora X, todas as unidades de combate deveriam estar prontas e, portanto, era necessário saber antecipadamente o que poderia acontecer e até determinar o dia em que a carga saltaria e quais sistemas a encontrariam. As falhas precisam ser tratadas e evitadas, por isso a necessidade de implementação de um sistema de análise preditiva nem sequer foi discutida. Foi necessário modernizar os sistemas baseados em dados de monitoramento.

Análise de joelhos

O projeto da folha de pagamento é um dos mais sensíveis em caso de fracasso. É o mais compreensível para previsões, por isso decidimos começar com ele. Devido à elevada conectividade, outros subsistemas, incluindo serviços bancários remotos (RBS), podem enfrentar problemas em momentos de pico de carga. Por exemplo, clientes que ficaram encantados com o SMS sobre o recebimento de dinheiro passaram a utilizá-lo ativamente. A carga pode saltar mais de uma ordem de magnitude. 

O primeiro modelo de previsão foi criado manualmente. Pegamos os uploads do último ano e calculamos em quais dias são esperados os picos máximos: por exemplo, 1º, 15 e 25, bem como nos últimos dias do mês. Este modelo exigia custos trabalhistas significativos e não fornecia uma previsão precisa. Mesmo assim, identificou gargalos onde era necessário adicionar hardware e possibilitou otimizar o processo de transferência de dinheiro por meio de acordo com clientes âncoras: para não dar salários de uma só vez, as transações de diferentes regiões foram espaçadas ao longo do tempo. Agora nós os processamos em partes que a infraestrutura de TI do banco pode “mastigar” sem falhas.

Tendo recebido o primeiro resultado positivo, passamos a automatizar as previsões, com mais uma dezena de áreas críticas aguardando sua vez.

Abordagem abrangente

A VTB implementou um sistema de monitoramento da MicroFocus. A partir daí pegamos a coleta de dados para previsão, um sistema de armazenamento e um sistema de relatórios. Na verdade, o monitoramento já existia, faltava adicionar métricas, um módulo de previsão e criar novos relatórios. Esta decisão é apoiada pelo empreiteiro externo Technoserv, pelo que o principal trabalho de implementação do projecto recaiu sobre os seus especialistas, mas nós próprios construímos o modelo. O sistema de previsão foi feito com base no Prophet - este produto aberto foi desenvolvido pelo Facebook. É fácil de usar e integra-se facilmente com nossas ferramentas de monitoramento integradas instaladas e com o Vertica. Grosso modo, o sistema analisa o gráfico de carga e o extrapola com base nas séries de Fourier. Também é possível adicionar determinados coeficientes por dia retirados do nosso modelo. As métricas são obtidas sem intervenção humana, a previsão é recalculada automaticamente uma vez por semana e novos relatórios são enviados aos destinatários. 

Esta abordagem identifica as principais ciclicidades, por exemplo, anual, mensal, trimestral e semanal. Pagamentos de salários e adiantamentos, períodos de férias, feriados e vendas - tudo isso afeta o número de ligações para os sistemas. Descobriu-se, por exemplo, que alguns ciclos se sobrepõem e a carga principal (75%) dos sistemas vem do Distrito Federal Central. Pessoas jurídicas e pessoas físicas se comportam de maneira diferente. Se a carga dos “físicos” for distribuída de maneira relativamente uniforme ao longo dos dias da semana (são muitas transações pequenas), então para as empresas 99,9% é gasto em horas de trabalho e as transações podem ser curtas ou podem ser processadas dentro de vários minutos ou até horas.

Monitoramento + teste de carga = previsão e sem falhas

Com base nos dados obtidos, são determinadas tendências de longo prazo. O novo sistema revelou que as pessoas estão migrando em massa para serviços bancários remotos. Todos sabem disso, mas não esperávamos tamanha escala e a princípio não acreditamos: o número de ligações para agências bancárias está diminuindo com extrema rapidez e o número de transações remotas está crescendo exatamente na mesma proporção. Conseqüentemente, a carga nos sistemas também está crescendo e continuará a crescer. Agora estamos prevendo a carga até fevereiro de 2020. Os dias normais podem ser previstos com um erro de 3% e os dias de pico com um erro de 10%. Este é um bom resultado.

Armadilhas

Como sempre, isso não ocorreu sem dificuldades. O mecanismo de extrapolação usando a série de Fourier não cruza bem o zero – sabemos que as pessoas jurídicas geram poucas transações nos finais de semana, mas o módulo de previsão produz valores que estão longe de zero. Foi possível corrigi-los à força, mas muletas não são o nosso método. Além disso, tivemos que resolver o problema de recuperação fácil de dados dos sistemas de origem. A coleta regular de informações requer recursos computacionais sérios, por isso construímos caches rápidos usando replicação e recebemos dados de negócios de réplicas. A ausência de carga adicional nos sistemas mestres em tais casos é um requisito de bloqueio.

Novos desafios

A tarefa simples de prever picos foi resolvida: não houve falhas relacionadas com sobrecargas no banco desde Maio deste ano, e o novo sistema de previsão desempenhou um papel importante neste processo. Sim, acabou não sendo suficiente e agora o banco quer entender o quão perigosos são os picos para ele. Precisamos de previsões usando métricas de testes de carga e, para cerca de 30% dos sistemas críticos, isso já está funcionando, o restante está em processo de obtenção de previsões. Na próxima etapa, vamos prever a carga dos sistemas não em transações comerciais, mas em termos de infraestrutura de TI, ou seja, desceremos uma camada. Além disso, precisamos automatizar totalmente a coleta de métricas e a construção de previsões a partir delas, para não lidar com downloads. Não há nada de sofisticado nisso - estamos apenas cruzando o monitoramento e os testes de carga de acordo com as melhores práticas globais.

Fonte: habr.com

Adicionar um comentário