Com tanta tecnologia disponível, por onde eu começo?

por | fev 9, 2023 | Artigo, Novidade

O mito da bala de prata

A tecnologia viabiliza e transforma vários tipos de negócio desde o início da era digital e continua em constante evolução. No entanto, não existe uma única tecnologia que resolva todos os problemas. Cada uma é boa em uns aspectos e ruim em outros.

Desta forma, para saber qual tecnologia usar, é preciso saber que tipo de problema você está querendo resolver. Algumas vezes, esses problemas são resolvidos até mesmo repensando o processo, ou a necessidade de como ele é aplicado atualmente (o famoso As-Is).

Geralmente são feitas entrevistas com os envolvidos, interessados no processo e seus beneficiários. Nessa fase, é necessário entender se você está querendo coisas como: maior controle, desempenho, escalabilidade. Também é importante saber onde estão os pontos de coleta de dados, se são imputados por pessoas, consumidos de APIs de terceiros, sensores, dados públicos, formulários dinâmicos, planilhas,  extraídos de vídeos, imagens, mensagens de voz etc. Há uma infinidade de possibilidades, além de saber qual a que faz mais sentido para o seu negócio.

Após isso, se estiver tentando resolver um problema menor, que não impacte a sua operação, certamente a solução vai ser mais simples. Talvez uma base de dados aliada à serviços na nuvem, ou até mesmo soluções prontas devem servir.

Se a demanda for mais sensível, e não for possível assumir riscos como instabilidade ou indisponibilidade, certamente, a estrutura deve ser distribuida entre sistemas individuais, para poderem escalar (Microserviços). Deve ser observado se há necessidade reports dinâmicos em real-time (BI), se esses dados devem ser processados para estudos de comportamentos e insights (AI, BigData, Data Science). Além disso, a alta disponibilidade também é um fator a se considerar.

Se estivermos falando de um e-commerce por exemplo:

  • O cliente pode navegar no catálogo e adicionar produtos ao carrinho se o serviço de pagamentos estiver fora do ar?
  • E se a comunicação com o banco dele estiver fora do ar, ele pode fazer o checkout?
  • Se a busca de produtos cair, pode ser calculado o valor do frete ou aplicar desconto no carrinho?
  • O cliente pode consultar o histórico de compras se o chat estiver fora do ar?
  • A emissão de notas e operação logística podem continuar funcionando se o e-commerce cair?

Esses tipos de pergundas do negócio é que devem moldar como a solução deve ser arquitetada. No exemplo todas as respostas podem ser afirmativas, e agora?

Por uma séries de fatores, sistemas de larga escala com alta disponibilidade são mais elaborados e custosos (Microserviços). É necessário ter observabilidade e monitoramento, ou seja, saber o que está debaixo do capô e o que cada peça está fazendo naquele momento. Quando ocorrerem problemas, deve ser possível investigar e saber exatamente qual foi a causa, para tomar ações corretivas, e ainda melhor, preventivas. A ideia é que tudo deve ser automático. Depender de um operador (devop) para fazer aquele “update maroto” e destravar é humanamente impossível. Por isso, esses sistemas devem ser construídos com estratégias de auto-regulação ou auto-correção, evitando que um nó seja derrubado por outro nó, bloqueando previamente quanto está com alto processamento. Cada segundo conta na larga escala. Não adianta apenas adicionar mais recursos de hardware e rezar para dar certo. O sistema deve ser inteligente a ponto de se auto-regular e não parar por completo. Para isso são usadas as técnicas de filas de mensagens entre os serviços (Message Broker), ou seja, à medida em que eles vão trabalhando, vão gerando filas de mensagens com as atualizações dos dados e ao mesmo tempo vão consumindo dados das filas de mensagens de outros serviços adjacentes. Tudo isso entre camadas inteligentes de políticas de tráfego, segurança e observabilidade entre eles (Service Mesh).

Enfim, respondendo à questão inicial: comece consultando um bom técnico ou arquiteto de sistemas. Tudo depende do tipo, tamanho do problema e, claro, do tempo e custo disponíveis. A notícia chata é que ainda é custoso combinar as tecnologias para montar uma solução robusta, no entanto, a ótima notícia é que há solução para o seu problema.