A computação em nuvem tem se tornado cada vez mais popular entre as empresas e os profissionais de TI. Flexibilidade, eficiência, desempenho e inovação são os benefícios que mais chamam a atenção nessa área. Em sistemas complexos que exigem detecção e resolução de problemas, é importante prestar atenção a um aspecto fundamental: a observabilidade.
Neste artigo, falaremos um pouco sobre monitoramento de aplicativos da Web, microsserviços e como usamos tudo isso na plataforma de biometria baseada em nuvem BioPass ID.
Quer entender mais? Continue lendo.
O que é observabilidade em nuvem?
É um conceito amplamente usado no mundo da tecnologia que significa a capacidade de monitorar, analisar, compreender e prever o comportamento dos aplicativos da Web em geral.
Dessa forma, podemos garantir a estabilidade dos aplicativos mais complexos do mercado, trazendo mais confiabilidade ao sistema e melhorando a experiência do usuário.
Antes de tudo, vamos falar sobre o que são aplicativos Web e como eles são criados.
O que são aplicativos da Web?
Em resumo, os aplicativos da Web são softwares acessados pela Internet. Não importa se o acesso é feito por meio de um navegador, de um smartphone ou de qualquer outro dispositivo.
Os aplicativos da Web são criados por profissionais de TI. Assim como na construção civil, vários tipos de profissionais estão envolvidos na criação de um aplicativo Web e em seu ciclo de vida.
O processo de criação de um aplicativo Web envolve equipes de engenheiros de software que projetam a estrutura do aplicativo, designers de front-end que preparam as páginas e os layouts e analistas de suporte que garantem que tudo esteja funcionando como deveria.
Modelos de aplicativos da Web
Há vários modelos de arquitetura de software para a criação de aplicativos da Web.
- Monolítico
O monolítico é o modelo mais tradicional. Nele, o aplicativo é criado como um bloco grande, único e robusto que atende a todas as funções do aplicativo em um único processo. Esse modelo tem a vantagem de ser fácil de criar e manter.
- Microsserviços
Outro modelo bem conhecido e amplamente utilizado é o de microsserviços. Nesse modelo arquitetônico, cada função do aplicativo é separada em um pequeno aplicativo isolado, também chamado de serviço. Cada um desses serviços atende a uma pequena parte do aplicativo, e é muito comum chamá-los de microsserviços.
No modelo de microsserviços, temos a vantagem de poder aumentar e diminuir dinamicamente apenas os recursos que estão realmente sendo usados pelo aplicativo. Ao contrário do modelo monolítico, em que todo o aplicativo é executado como um único e grande serviço. Cada microsserviço pode aumentar e diminuir para atender a demandas inesperadas.
A plataforma de biometria baseada em nuvem do BioPass ID usa o modelo de microsserviços para fornecer biometria como serviço a seus clientes. Com isso, cada uma das funcionalidades fornecidas pela nossa plataforma é construída como pequenos aplicativos independentes e isolados.
Cada um deles pode ser dimensionado individualmente, garantindo que os picos de acesso sejam atendidos sem afetar outros recursos da plataforma. Isso garante que os recursos de menor utilização não sejam dimensionados, de modo que nossos serviços principais estejam preparados para atender a qualquer demanda.
Microsserviços e APIs
Em geral, os microsserviços são acessados por meio de APIs. O termo API significa Interface de Programação de Aplicativos. Podemos descrevê-las resumidamente como a forma padrão de comunicação entre aplicativos da Web distintos.
Embora os seres humanos interajam com aplicativos da Web usando páginas de navegador, aplicativos de celular e similares, em geral, quando os aplicativos da Web se comunicam entre si, eles usam APIs.
Você deve ter em mente que microsserviços e APIs são conceitos diferentes. Enquanto o primeiro significa uma estrutura para criar aplicações da Web, o segundo significa uma forma de comunicação entre aplicativos, sejam eles microsserviços ou monólitos!
Observabilidade e monitoramento
Com a popularização do modelo de microsserviços no desenvolvimento de software, o monitoramento de aplicativos da Web complexos compostos de vários microsserviços e APIs, bem como de aplicativos internos e externos, tornou-se um grande desafio.
Mais do que apenas monitorar a operação de um aplicativo, precisamos relacionar o comportamento de dezenas ou até centenas de microsserviços e seus recursos externos, como bancos de dados, armazenamento de dados e sistemas de mensagens.
Pilares da observabilidade
Os principais pilares do monitoramento são: métricas, eventos, registros e rastreamentos.
Quando juntamos todos eles, estamos criando um ecossistema que gera observabilidade.
Vamos entender mais sobre eles?
Métricas
As métricas são valores obtidos pela observação dos processos e recursos de um aplicativo que geralmente variam com o tempo. As métricas mais comuns que podemos medir em um aplicativo são o uso da CPU, a memória RAM e o número de acessos e erros em um período de tempo.
Ao observar como essas métricas variam ao longo do tempo, é possível encontrar muitas informações úteis. Podemos identificar os horários de pico de acesso observando os dados históricos, bem como descobrir quais microsserviços estão se aproximando do limite de recursos e nos preparar para expandi-los.
Eventos
Os eventos são informações geradas por aplicativos da Web sobre processos internos específicos que ocorreram em um determinado momento e podem ser usados para informar erros, problemas e a lógica comercial do aplicativo.
Um aplicativo pode gerar um evento, por exemplo, quando um usuário faz uma compra de um item em seu comércio eletrônico. Com esse evento salvo, podemos verificar o horário com o maior volume de vendas e como isso se correlaciona com outras métricas no aplicativo.
Registros
Os logs são informações geradas por aplicativos em execução, geralmente em formato de texto não estruturado com data e hora específicas. Eles estão presentes em praticamente todos os aplicativos do mundo e diferem dos eventos por serem mais genéricos, sendo criados pela execução do próprio aplicativo, e não por eventos específicos.
Os logs são a maneira mais simples de diagnosticar erros e problemas em aplicativos e, geralmente, é por meio deles que o analista de suporte inicia seu trabalho de investigação de erros e suas causas.
Traços
Os rastreamentos são dados obtidos pela observação da cadeia de eventos gerada pelo acesso a um recurso de um aplicativo da Web. Todo acesso a um aplicativo da Web, seja por meio de uma API ou de uma página da Web, gera uma série de transações que podem passar por vários recursos internos e externos do aplicativo.
Cada uma dessas etapas gera um ou mais Spans que podem ser agrupados, com muitas informações importantes sobre as transações feitas pelo aplicativo, em um Trace. Ao analisar os traços, podemos identificar problemas internos do aplicativo ou pontos de baixo desempenho.
A observação da interação entre os Spans de um Trace pode mostrar onde há gargalos no aplicativo que podem deixar os usuários mais lentos. Com acesso a essas informações, uma equipe de desenvolvedores pode descobrir e resolver problemas difíceis de descobrir em aplicativos complexos.
A correlação e a análise desses quatro tipos de dados podem melhorar ainda mais nossa capacidade de identificar padrões e resolver problemas. Também podemos transformar um tipo em outro, como a taxa de criação de registros em métricas e eventos.
E quanto aos sistemas de monitoramento?
A observabilidade permite que os aplicativos sejam analisados com eficácia por meio da capacidade de gerar dados de telemetria que ajudam a observar seu comportamento e a corrigir erros e anomalias.
Há muitos aplicativos, de código aberto e fechado, especializados em monitorar cada um desses tipos de dados de telemetria. Normalmente, alguns desses dados podem ser facilmente coletados e enviados a um sistema de monitoramento, enquanto outros exigem que o aplicativo esteja preparado para enviá-los corretamente.
Você pode usar um recurso chamado instrumentação automática para facilitar a adição de rastreamentos a aplicativos pré-existentes. Com esse recurso, uma biblioteca de código é adicionada ao aplicativo e gera automaticamente rastreamentos em seus processos internos.
Você também pode fazer modificações no aplicativo para personalizar os rastreamentos com informações específicas do aplicativo, métricas personalizadas e correlação de dados. Algumas dessas bibliotecas são de código aberto, enquanto outras pertencem a plataformas de monitoramento licenciadas.
Além disso, é muito comum que cada sistema de monitoramento use seus próprios padrões e protocolos para coletar, armazenar e visualizar cada um desses tipos de dados. Portanto, escolher a ferramenta mais adequada para o aplicativo é essencial para garantir o bom monitoramento de um aplicativo da Web.
Para tentar solucionar a falta de padrão e a necessidade de retrabalho na instrumentação de aplicativos, o OpenTelemetry foi criado como um projeto do CNCF, famoso por incubar grandes projetos de código aberto, como o Kubernetes, juntamente com o Google.
Mas o que é OpenTelemetry?
O OpenTelemetry foi criado com a união de dois grandes projetos de código aberto, o OpenTracing da CNCF, cujo foco era criar uma API sem dependência de aplicativos licenciados para enviar dados a aplicativos de monitoramento, e o
O OpenCensus do Google, focado na criação de bibliotecas de instrumentação automatizadas codificadas para várias linguagens de programação.
Com a unificação dos dois projetos no OpenTelemetry, os esforços da comunidade e de vários participantes importantes do mercado se uniram na criação de um padrão para enviar e coletar telemetria de aplicativos que pode ser usado por todos.
Aplicativos da Web e da nuvem
Neste artigo, começamos a entrar no mundo do monitoramento de aplicativos da Web e da nuvem. O monitoramento eficaz de aplicativos da Web complexos feitos de muitos microsserviços é uma tarefa desafiadora, mas compensa para os usuários desses aplicativos.
Ao usar padrões do setor e sistemas de monitoramento especializados, a plataforma de biometria baseada em nuvem BioPass ID pode garantir que seus aplicativos e microsserviços funcionem em harmonia, com alto desempenho e disponibilidade no fornecimento de biometria como serviço aos seus usuários.
Ficou interessado e quer ler mais sobre a biometria na nuvem? Confira seus benefícios e por que você deve usá-la.
Vejo você em meu próximo artigo!
Tradução: Thalita Ferreira