Home > Gestão

Equipes DevOps podem melhorar o monitoramento de aplicativos, mas como?

Aqui estão 4 maneiras de fazer com que o monitoramento atenda às novas demandas das áreas de negócio

Isaac Sacolick, InfoWorld/EUA

11/12/2018 às 9h20

Foto: Shutterstock

Muitas equipes de DevOps concentram-se na implementação de pipelines de CI/CD , automatizando o teste de regressão, configurando a infraestrutura como código e e o uso de containers para ambientes de tempo de execução do aplicativo. Coletivamente, essas práticas e tecnologias ajudam as organizações a implantar aplicativos com mais frequência e reduzem os erros das etapas e configurações manuais.

Mas muitas empresas querem mais e esperam um desempenho semelhante ao SAS de suas aplicações. Não se trata apenas da confiabilidade do aplicativo (ou seja, quantos 9s de tempo de atividade) ou do tempo de resposta. Essas são apenas as apostas básicas para o monitoramento de aplicativos. Mais empresas estão usando tecnologias de maneiras estratégicas em que os problemas dos usuários podem afetar a receita ou as operações.

Esse desejo conduz todo um novo conjunto de considerações de monitoramento em torno dos aplicativos. Sabendo que o servidor da Web está respondendo, que um microsserviço tem tempos de resposta em milissegundos e que o desempenho da consulta do banco de dados atende aos SLAs, isso não é mais suficiente.

Pense na última vez que você voou em um avião. Todos nós esperamos pousar com segurança e ficaremos irritados se houver atrasos ou problemas com nossa bagagem. Indo mais fundo, esperamos uma experiência melhor a partir do momento em que entramos no aeroporto: quanto tempo leva para passar pela segurança? Quão agradáveis ​​são as áreas de espera e podemos encontrar algo para comer? Está embarcando no avião sem problemas? O entretenimento a bordo e o WiFi estão funcionando corretamente?

Então pense no que acontece se algo der errado. Se houver atrasos, quão precisa e eficiente é a companhia aérea na comunicação de status e opções de voo para você? Se o entretenimento em andamento não estiver funcionando, eles poderão corrigir o problema enquanto estiverem a bordo e rapidamente, para que você possa assistir a um filme? Você considera todas essas coisas ao responder à pergunta "como foi seu voo"

Novas perguntas a serem feitas sobre o monitoramento de aplicativos
Desenvolvedores, engenheiros e gerentes devem pensar em um conjunto expandido de requisitos de monitoramento de aplicativos. Mais especificamente, a equipe de DevOps que busca se destacar no desempenho operacional deve considerar o monitoramento que aborda algumas dessas questões:

1 . Qual é o desempenho do seu CI/CD e pipelines de teste e com que rapidez a equipe soluciona problemas que interrompem a criação?

2 . Quão bem o aplicativo está atendendo às necessidades e expectativas do usuário?

3 . Quais melhorias no aplicativo podem ser discernidas dos comportamentos do usuário?

4 . Os incidentes operacionais podem ser isolados e resolvidos com um impacto mínimo do usuário?

5 . Até que ponto os desenvolvedores são interrompidos por incidentes operacionais (isto é, engajamento em combate a incêndios)?

6 . As métricas de uso estão aumentando lentamente, começando a afetar o desempenho?

7 . Com que rapidez os dados de aplicativos podem ser carregados, processados ​​e reportados?

8 . Se o aplicativo estiver em uma nuvem pública, os custos aumentarão mais rápido do que o esperado, e haverá outras otimizações de custo a serem consideradas?

9 . Como os aplicativos devem monitorar o contexto, como navegador, dispositivo, local e hora do dia?

10 . Que monitoramento adicional é necessário em torno de APIs, especialmente aquelas usadas por aplicativos de terceiros?

11 . Quais ferramentas de monitoramento serão necessárias para aplicativos de IoT em larga escala ou outros que fazem interface com blockchains?

12 . Existem novas versões, patches ou alertas em algum componente de aplicativo?

13 . Existem problemas de segurança ou violações no aplicativo?

Esse é um escopo de interesses altamente expandido além do que é tradicionalmente distribuído e provisionado sob o monitoramento tradicional de aplicativos. No entanto, à medida que mais empresas operam como empresas de tecnologia, as equipes de DevOps devem pensar nesses requisitos.

Aqui estão quatro opções para as equipes DevOps abordarem esse escopo de monitoramento de aplicativos. Como em todas as prioridades de transformação, as equipes de DevOps devem ser inteligentes e concentrar seus esforços de monitoramento nas maiores oportunidades de aprender sobre o uso, ao mesmo tempo em que atendem aos requisitos dos maiores riscos.

1. Agregue informações sobre a experiência do usuário
Se você está criando aplicativos Web ou móveis, é comum incorporar um rastreador de análise para capturar usuários, visitas e outras métricas de uso. Métricas mais avançadas também podem ser capturadas diretamente pelo aplicativo e armazenadas em arquivos de log, bancos de dados ou canalizados para fluxos de dados. Também pode haver dados relevantes em sistemas de registro de usuários, ferramentas de logon único (SSO) e sistemas de gerenciamento de relacionamento com o cliente (CRM).

Na minha experiência, é mais provável que as equipes de negócio e os profissionais de Marketing observem o comportamento do usuário em aplicativos voltados para o cliente . O uso e o comportamento de aplicativos internos são mais frequentemente uma reflexão tardia quando a TI implanta aplicativos corporativos ou de fluxo de trabalho interno.

Em ambos os casos, desenvolvedores, engenheiros de banco de dados e operações de TI têm interesse em capturar métricas, revisar o uso, compreender padrões e avaliar a satisfação dos usuários do aplicativo. Uma maneira de fazer isso é agregar as métricas relevantes em um data warehouse ou data lake e usar ferramentas como o Tableau, o Microsoft PowerBI ou uma ferramenta de visualização de dados de código aberto para monitorar o desempenho e descobrir insights sobre o comportamento do usuário.

2. Grandes organizações de TI devem definir métricas de desempenho de CI/CD
Grandes equipes de desenvolvimento que suportam mais desenvolvimento de aplicativos e arquiteturas de microsserviço devem estabelecer métricas de pipeline e teste de CI/CD. Para grandes organizações, essas métricas representam o rendimento e a qualidade do trabalho da equipe e devem alertar sobre bloqueios e problemas de qualidade que podem impedir seu progresso. Ferramentas como Jenkins, Jira e Git podem rastrear diferentes aspectos dos processos de desenvolvimento, teste, construção e implantação.

Algumas dessas métricas devem ser estratégicas e vinculadas a indicadores-chave de desempenho DevOps. Como CIO, estou mais interessado em métricas estratégicas, como recursos lançados por trimestre e taxas de fuga de defeitos.

Mas as equipes de desenvolvimento também devem estabelecer as métricas que fazem o desenvolvimento de software funcionar como a linha de montagem de uma fábrica. Métricas como frequência de implantação, duração de construção, taxa de falhas de criação e cobertura de teste de automação fornecem indicadores sobre a eficiência da equipe e a qualidade do trabalho.

3. Use Machine Learning para melhorar a resposta a incidentes
Depois que os aplicativos são executados em produção, uma das principais preocupações das equipes DevOps é lidar com incidentes que afetam os usuários, colocam a organização em risco ou colocam a equipe de TI no modo de combate a incêndios.

Quando há um problema, a questão-chave é se o departamento de TI possui monitores de aplicativos em funcionamento que alertem para ele e com que rapidez a TI pode resolvê-lo. Também é importante entender quem se envolve em pesquisar, diagnosticar e resolver o problema. Se os incidentes forem escalados para os desenvolvedores, esses problemas geralmente demoram mais e são mais caros para resolver.

As equipes pró-ativas da DevOps implementam mais monitores, registram mais dados e investem no tratamento de exceções no nível de código para garantir que haja indicadores e dados suficientes para detectar e diagnosticar problemas. Mas isso também pode sobrecarregar as equipes quando um único aplicativo tem vários alertas provenientes de diferentes ferramentas, indicando um ou mais problemas.

Novas operações digitais autônomas e ferramentas AIops de fornecedores como BigPanda, BMC, HPE, IBM e Splunk visam simplificar o gerenciamento das operações e melhorar o tempo de resposta a incidentes usando Machine Learning. Essas ferramentas correlacionam informações de vários monitores, ajudam a descobrir a causa raiz, prevêem preocupações futuras usando a análise preditiva e automatizam elementos da resposta a incidentes. Organizações que gerenciam experiências de usuário de missão crítica e aplicativos de grande escala conectados a várias fontes de dados, microsserviços e APIs de terceiros devem se beneficiar de ferramentas apoiadas por aprendizado de máquina.

4. Desenvolver uma visão holística do ambiente operacional
O último aspecto do monitoramento requer o desenvolvimento de uma visão holística do uso, ambiente, infraestrutura e ecossistema dos aplicativos. Pense nisso como práticas de gerenciamento de instalações aplicadas a aplicativos, mostrando todos os ativos, fatores de manutenção de ativos, como correções e alertas de segurança, padrões de uso de longo prazo e atividades anômalas. Essa visão macro fornece às equipes de gerenciamento DevOps um conjunto de indicadores e tarefas para melhor manter um portfólio de aplicativos.

Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter Newsletter por e-mail