Ferramentas de monitoramento de DevOps: Automatizando seus processos de monitoramento de DevOps
23 de maio de 2022 // 7 min read
Em essência, o DevOps é uma prática fundamentalmente orientada por dados. A capacidade de melhorar continuamente o código que impulsiona um produto vem do entendimento de como funciona o seu comportamento, quais riscos podem surgir e onde encontrar oportunidades. As ferramentas de monitoramento acessam cada camada do stack de tecnologia de um produto e, assim, fornecem os dados necessários para detectar erros de código com antecedência, melhorar a eficiência operacional e responder rapidamente às mudanças no uso.
E, embora o monitoramento de DevOps seja importante para o código implantado, as melhores práticas de monitoramento buscam se desenvolver com base no conceito “shift left” de segurança. Ou seja, o monitoramento no DevOps começa muito antes no ciclo de vida de desenvolvimento de software (SDLC). Assim, é possível identificar ineficiências, riscos e possíveis problemas voltados ao cliente antes que cheguem à fase de produção.
Neste guia, exploraremos o papel do monitoramento em uma prática de DevOps e traremos respostas para as principais perguntas sobre ferramentas de monitoramento de DevOps, incluindo:
- O que são ferramentas de monitoramento de DevOps?
- O que é monitoramento contínuo no DevOps?
- Onde você deve implementar ferramentas de monitoramento em sua prática de DevOps?
- Quais são as capacidades que você deve buscar nas ferramentas de monitoramento de DevOps?
O que são ferramentas de monitoramento de DevOps?
O monitoramento é parte essencial de uma prática de DevOps bem-sucedida e uma forma crítica de entender e detectar possíveis problemas antes que cheguem à fase de produção, além de identificar qualquer imprevisto que possa surgir na produção.
Para isso, as organizações costumam utilizar várias ferramentas de monitoramento de DevOps, como ferramentas de relatórios de falhas, plataformas de monitoramento do desempenho da aplicação (APM) e ferramentas de monitoramento de servidores para coletar dados em todas as etapas do ciclo de vida de desenvolvimento de software (SDLC), além de apresentar insights acionáveis para melhorar o desempenho operacional.
As ferramentas de monitoramento de DevOps permitem que as organizações desenvolvam fases de monitoramento automatizado em pontos-chave do SDLC para melhorar o desempenho de uma base de código, de uma aplicação e de sua infraestrutura subjacente. E, uma vez que é possível existir milhares de partes móveis dentro do ciclo de vida de desenvolvimento de software (SDLC) de uma organização, a automação é fundamental para habilitar uma prática de monitoramento consistente.
Quando implementadas corretamente, as ferramentas de monitoramento de DevOps ajudam a agregar dados, fornecer insights acionáveis e alimentá-los de volta ao pipeline de DevOps mais amplo para identificar possíveis problemas no SDLC. Essa prática costuma ser chamada de monitoramento contínuo e se baseia no conceito de melhoria contínua do DevOps.
O que é monitoramento contínuo no DevOps?
O monitoramento costumava ser um processo oneroso até pouco tempo atrás. As ferramentas consumiam recursos preciosos do sistema e exigiam intervenção manual. Além disso, os dados fornecidos por essas ferramentas normalmente levavam tempo para serem analisados e administrados. Consequentemente, era comum as organizações monitorarem apenas processos críticos, como problemas de codificação e desempenho em nível de produção.
Hoje, coletar dados é muito mais fácil devido às ferramentas mais avançadas. Por outro lado, a quantidade de dados também aumentou drasticamente. Isso significa que, atualmente, as organizações precisam determinar a melhor forma de gerenciar, interpretar e administrar volumes muito maiores de dados.
O monitoramento contínuo é uma prática que busca sanar esse problema, integrando o monitoramento em todas as partes do SDLC. Seu principal objetivo é possibilitar a detecção rápida de possíveis problemas e fornecer feedback em tempo real.
Uma prática de monitoramento contínuo utilizará uma série de ferramentas e uma série automatizada de testes para avaliar o novo código e o desempenho da produção de uma aplicação e sua infraestrutura subjacente. O objetivo principal é gerar uma visão automatizada 360 graus de todos os sistemas e garantir que as pessoas certas saibam quando e onde intervir.
As melhores práticas de monitoramento contínuo costumam priorizar a coleta do máximo de dados possível para auditar sistemas em sua totalidade e analisar possíveis problemas operacionais, bem como riscos de conformidade e segurança.
Onde implementar ferramentas de monitoramento em uma prática de DevOps
Assim como a transição para o DevOps em si, estabelecer uma estratégia de monitoramento de DevOps bem-sucedida requer uma combinação de cultura, processos e ferramentas. E, embora você possa se inspirar no modo como outras organizações gerenciam o monitoramento, o modelo assertivo que você adota será orientado pelas necessidades únicas de sua organização e seu SDLC.
Há muitos frameworks que oferecem orientações sobre _quais _dados capturar. Entretanto, saber onde implementar o monitoramento é uma questão de otimização. Quais perguntas você precisa responder? Que dados você precisa para obter essas respostas? Como você agirá com base nesses dados? Quem deve estar envolvido?
Há sete tipos amplos de monitoramento, e cada um deles se encaixa em diferentes partes de sua prática de DevOps. Esses incluem:
Monitoramento de infraestrutura: No nível mais baixo do stack de tecnologia do seu produto, o monitoramento de infraestrutura ajuda a entender como limitações como memória e CPU estão impactando o desempenho da sua aplicação.
Monitoramento do desempenho da aplicação (APM): Subindo um nível, o APM mostra sinais sobre o desempenho da sua aplicação e fornece insights sobre como otimizar melhor sua aplicação para se beneficiar de mais tempo de atividade e responsividade.
Monitoramento da velocidade de desenvolvimento: Essa prática de monitoramento identifica a velocidade organizacional, ou seja, a agilidade da transmissão do novo código aos usuários e a rapidez com a qual você entrega valor por meio do seu pipeline de DevOps.
Monitoramento de rede: Ajuda sua organização a entender o desempenho da rede e pode auxiliar na identificação de ineficiências e, no caso de padrões de tráfego incomuns, violações de segurança.
Monitoramento de comportamento do usuário: Muitas vezes, padrões de uso individuais fora do comum contam uma história. Níveis mais altos de tentativas de senha incorreta, por exemplo, podem indicar que está ocorrendo um ataque de força bruta. E o acesso de um novo usuário às páginas de administrador pode trazer evidências de uma escalação de privilégios.
Monitoramento de segurança: Em conjunto com uma abordagem DevSecOps, o monitoramento de segurança automatiza a descoberta de vulnerabilidades no código e em suas dependências.
Monitoramento de configuração: Em uma prática de DevOps, as mudanças na infraestrutura são uma parte comum da entrega de um código novo e atualizado. O monitoramento das mudanças de configuração ajuda a fornecer uma visão geral dessas modificações e traz alertas precoces de impactos não previstos.
Capacidades que você deve buscar em ferramentas de monitoramento de DevOps
Há muitas opções de ferramentas para ajudá-lo a incorporar o monitoramento em sua prática de DevOps. Escolher os produtos certos depende do formato de seu SDLC e da infraestrutura de sua aplicação. Porém, existem duas questões iniciais principais que você deve considerar ao avaliar as ferramentas de monitoramento:
É acionável? A ferramenta se integra novamente ao seu pipeline de DevOps e com suas outras ferramentas para viabilizar a automação de ações e alertas com base em seus dados?
Ela proporciona algo novo? Gerar mais dados é fácil, mas esse aumento demandam atenção, ocupa espaço de armazenamento e precisa ser mantido. Em vez de ferramentas que tragam ganhos irrelevantes, priorize aquelas que abram novos caminhos de monitoramento.
Para além dessas questões, sua avaliação deve considerar o desempenho da ferramenta nas áreas a seguir.
Ela oferece um painel unificado? Seu produto é o resultado de inúmeros serviços, bibliotecas e produtos de terceiros que trabalham juntos. Um painel de monitoramento adequado proporciona uma visão geral de como cada parte funciona em conjunto e facilita a visualização de alertas e áreas problemáticas.
Ela se integra perfeitamente com seu stack de tecnologia mais amplo? A ferramenta possui integrações dedicadas com outras que você já usa? Você pode implantar mais contêineres automaticamente quando os tempos de resposta enfrentarem problemas? Ela transmitirá entradas de log à ferramenta centralizada de gerenciamento de logs? Ela possui uma API REST ou suporta padrões abertos, como SNMP, que permitem criar suas próprias integrações?
Ela integra alertas e notificações com suas ferramentas existentes? Suas ferramentas de monitoramento devem permitir que as pessoas ajam rapidamente quando a intervenção manual for necessária. Ela oferece suporte direto para alertas ou se integra com suas ferramentas de notificação existentes?
Suas capacidades de geração de relatórios se integram com suas ferramentas de análise? Painéis de monitoramento são excelentes como espaço dedicado, mas muitas organizações contam com ferramentas estabelecidas de geração de relatórios e análise. As ferramentas que você está avaliando se integram à plataforma de análise escolhida por sua organização?
Quais tipos de registros de auditoria uma solução oferece? Entender como seu sistema chegou ao seu estado atual é importante, sobretudo quando algo dá errado. Logs de auditoria fornecem um registro de ação por ação do que aconteceu e qual processo ou pessoa foi responsável. Essa facilidade ajuda tanto na análise da causa raiz quanto pode servir como base para identificar onde aplicar melhorias no sistema. Quais tipos de registros de auditoria suas soluções escolhidas oferecem e como apresentam informações importantes?
Quais são suas necessidades de armazenamento de dados em termos de retenção? Ferramentas de monitoramento geram grandes quantidades de dados. Sendo assim, é importante entender as necessidades contínuas de armazenamento, ou os custos em nuvem, visando manter histórico suficiente para ser útil sem armazenar dados ultrapassando seu período de utilidade.
Quais tipos de diagnósticos uma solução oferece? A ferramenta alerta para sintomas ou ajuda a diagnosticar o problema subjacente? Ferramentas mais abrangentes, como plataformas de gerenciamento de desempenho de aplicações, facilitam o entendimento do que ocorre em situações complexas, como múltiplos microsserviços assíncronos trabalhando em conjunto.
Crie sua prática de DevOps no GitHub
O GitHub é uma plataforma integrada que leva as empresas da ideia ao planejamento e à produção, combinando uma experiência de desenvolvedor focada com uma infraestrutura poderosa e totalmente gerenciada de desenvolvimento, automação e teste.
Compare as Soluções de DevOps >
O GitHub ajuda nos esforços de longa data da empresa para acelerar o desenvolvimento, derrubando barreiras de comunicação, encurtando os ciclos de feedback e automatizando tarefas sempre que possível.”
Mike Artis, diretor de engenharia de sistemas da ViacomCBS
Passe do planejamento para a criação | Aumente a velocidade dos desenvolvedores |
---|---|
Crie planos de roadmap junto à sua base de código e atribua tarefas aos membros da equipe rapidamente com quadros e tabelas de projeto poderosos que se integram totalmente ao seu projeto. Saiba mais sobre o GitHub Issues > |
Reduza o tempo de commit. Elimine o gerenciamento do ambiente e a alternância de contexto para seus desenvolvedores. Simplifique a aquisição e a manutenção de TI com um espaço seguro e gerenciado na nuvem. Explore o Codespaces > |
Automatize tudo | Proteja seu código enquanto o escreve |
---------- | ---------- |
Automatize todos os seus fluxos de trabalho de desenvolvimento de software com o GitHub Actions. Escale de maneira confiável e segura com uma poderosa infraestrutura de desenvolvimento, teste e automação, totalmente gerenciada pelo GitHub. Saiba mais sobre o GitHub Actions > |
Proteja seu código, dependências, tokens e dados confidenciais durante todo o ciclo de vida de desenvolvimento de software e resolva vulnerabilidades automaticamente. Veja como ajudamos você a manter a segurança > |
Tags