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

O departamento de TI da VTB teve que lidar com situações de emergência nos sistemas várias vezes, quando a carga sobre eles aumentou muitas vezes. Portanto, tornou-se necessário desenvolver e testar um modelo que previsse o pico de carga em sistemas críticos. Para isso, os especialistas em TI do banco configuraram o monitoramento, analisaram os dados e aprenderam como automatizar previsões. Quais ferramentas ajudaram a prever a carga e se foi possível otimizar o trabalho com a ajuda deles, contaremos em um breve artigo.



Os problemas com serviços altamente carregados surgem em quase todos os setores, mas são críticos para o setor financeiro. Na hora X, todas as unidades de combate devem estar prontas e, portanto, era necessário saber com antecedência o que poderia acontecer e até determinar o dia em que a carga iria pular e quais sistemas a encontrariam. As falhas precisam ser combatidas e evitadas, portanto, a necessidade de implementar um sistema de análise preditiva nem sequer foi discutida. Era necessário atualizar os sistemas com base nos dados de monitoramento.

Análise no joelho


Um projeto de folha de pagamento é um dos mais sensíveis em caso de falha. Como é mais compreensível para a previsão, decidimos começar com ela. Devido à alta conectividade nos momentos de pico de carga, outros subsistemas, incluindo os serviços bancários remotos (RBS), podem ter problemas. Por exemplo, os clientes, encantados com o SMS sobre o recebimento de dinheiro, começaram a usá-lo ativamente. A carga pode saltar mais do que uma ordem de magnitude.

O primeiro modelo de previsão foi criado manualmente. Tomamos a descarga no último ano e calculamos em quais dias os picos máximos são esperados: por exemplo, nos dias 1, 15 e 25, bem como nos últimos dias do mês. Esse modelo exigiu um trabalho sério e não forneceu uma previsão precisa. No entanto, ela identificou gargalos onde era necessário adicionar hardware e possibilitou otimizar o processo de transferência de dinheiro, concordando com os clientes-âncora: para não pagar salários de uma só vez, as transações de diferentes regiões foram espalhadas no tempo. Agora os processamos em partes que a infraestrutura de TI do banco é capaz de mastigar sem falhas.

Tendo recebido o primeiro resultado positivo, passamos para a automação de previsão.Uma dúzia de seções mais críticas aguardavam a nossa vez.

Abordagem integrada


Na VTB, eles introduziram o sistema de monitoramento MicroFocus. A partir daí, coletamos dados de previsão, um sistema de armazenamento e um sistema de relatórios. De fato, já havia monitoramento, restava apenas adicionar métricas, um módulo de previsão e criar novos relatórios. Essa decisão é apoiada por uma empresa terceirizada, a Technoserv, de modo que o trabalho principal do projeto foi realizado por seus especialistas, mas construímos o modelo por conta própria. O sistema de previsão foi feito com base no Profeta - este produto de código aberto foi desenvolvido no Facebook. É fácil de usar e fácil de integrar com nossas ferramentas abrangentes de monitoramento e Vertica. Grosso modo, o sistema analisa o cronograma de carregamento e, com base na série Fourier, o extrapola. Também é possível adicionar certos coeficientes por dia, retirados do nosso modelo. As métricas são realizadas sem intervenção humana; uma vez por semana, a previsão é recalculada automaticamente, novos relatórios são enviados aos destinatários.

Essa abordagem revela os principais ciclos, 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 chamadas para os sistemas. Verificou-se, por exemplo, que alguns ciclos se sobrepõem e o Distrito Federal Central entrega a carga principal (75%) aos sistemas. Entidades legais e indivíduos se comportam de maneira diferente. Se a carga de trabalho dos "físicos" for distribuída de maneira relativamente uniforme ao longo dos dias da semana (são muitas transações pequenas), as empresas terão 99,9% de seu tempo, enquanto as transações podem ser curtas ou processadas em minutos ou até horas.



Com base nos dados obtidos, as tendências de longo prazo são determinadas. O novo sistema revelou que as pessoas estão saindo massivamente para a RB. Isso é do conhecimento de todos, mas não esperávamos essa escala e, a princípio, não acreditávamos nelas: o número de chamadas para os escritórios do banco diminui extremamente rapidamente e o número de transações à distância cresce exatamente na mesma quantidade. Consequentemente, a carga no sistema também está crescendo e continuará a crescer. Agora, prevemos a carga até fevereiro de 2020. Dias normais podem ser previstos com um erro de 3% e dias de pico com um erro de 10%. Este é um bom resultado.

Armadilhas


Como sempre, houve algumas dificuldades. O mecanismo de extrapolação que usa a série Fourier passa mal por zero - sabemos que no fim de semana as entidades legais geram poucas transações, mas o módulo de previsão produz valores que estão longe de zero. Foi possível corrigi-los à força, mas as muletas não são o nosso método. Além disso, era necessário resolver o problema da coleta de dados sem problemas dos sistemas de origem. A coleta regular de informações requer recursos computacionais sérios; portanto, construímos caches rápidos usando replicação, já obtemos dados comerciais de réplicas. A ausência de carga adicional nos sistemas mestre nesses casos é um requisito de bloqueio.

Novos desafios


A tarefa da testa de prever picos foi resolvida: não houve falhas bancárias relacionadas à sobrecarga desde maio deste ano, e o novo sistema de previsão teve um papel importante nisso. Sim, não foi suficiente, e agora o banco quer entender como os picos são perigosos para ele. Precisamos de previsões usando métricas do teste de carga e, para cerca de 30% dos sistemas críticos, isso já funciona, o restante está no processo de obtenção de previsões. No próximo estágio, vamos prever a carga nos sistemas, não nas transações comerciais, mas em termos de infraestrutura de TI, ou seja, desceremos uma camada abaixo. Além disso, precisamos automatizar completamente a coleção de métricas e criar previsões com base nelas, para não se envolver no descarregamento. Não há nada de excepcional nisso - apenas monitoramos e testamos o estresse de acordo com as melhores práticas mundiais.

Source: https://habr.com/ru/post/pt472062/


All Articles