12/02/2020 | Autor: Claudio Romão | Categoria: Técnico | Comentários

Como pegar feedback no processo de DevOps - Parte 2

No post anterior, Como pegar feedback no processo de DevOps - parte 1, nós vimos o que podemos usar para monitorar o processo e capturar informações quando ainda estamos no início do pipeline e até mesmo através de pull requests.

Agora vamos falar das próximas duas áreas que seriam o processo de release, deploy da aplicação em ambientes e o processo de monitorar a aplicação em produção.

Release

Nessa etapa vamos verificar e coletar dados sobre nosso pacote e scripts de configuração da aplicação e do servidor que vai hospedar ela. Além de poder iniciar a execução de testes que dependam de uma infraestrutura montada e com isso saber se conseguimos atingir os objetivos que desejávamos sem ter quebrado nada que já estivesse funcionando.

Nela vamos tentar responder as seguintes questões:

  • Os scripts necessários para fazer a configuração, instalação estão no pacote? Nosso empacotamento foi feito da maneira correta?

  • Nossos scripts conseguem reconfigurar e deixar o servidor no estado esperado para receber a aplicação? Exemplo, ele pode reconfigurar o site do IIS da aplicação com as configurações necessárias? Ele verifica se todos os pré-requisitos estão instalados e configurados? Esse tipo de validação nos ajuda a identificar drifts de configuração entre servidores, ou seja, servidores de ambientes diferentes possuindo configurações diferentes.

  • Com a aplicação instalada nós podemos executar testes de integração com outros serviços e com isso verificar se tudo está funcionando de acordo com o planejado e nada foi quebrado.

  • A aplicação está segura? nessa etapa conseguimos monitorar e identificar se introduzimos algum problema de segurança executando testes que tentam fazer acessos indevidos ou injetar informações maliciosas.

  • A aplicação está fazendo o que realmente deveria? Garantindo que ela está instalada, podemos executar os testes de aceitação de usuário e saber se atingimos os objetivos definidos.

  • A aplicação suporta a carga prevista? Podemos executar testes de carga na aplicação para garantir que ela suporte a carga média de usuários e que as novas funcionalidades ou acertos não tenham degradado em nada a sua performance.

Através da análise das atividades da fase de release, conseguimos saber se nosso pacote está integro e seguro para aí sim podemos depois passar pelos testes de aceitação do usuário.

Essas perguntas podem ser dividas em vários estágios do seu pipeline. O importante é validar o que for mais rápido primeiro e deixar as validações que tomam mais tempo para o final. Com isso teremos um ciclo de feedback rápido das nossas atividades.

O time deve avaliar quais das validações tem que ser executadas todas as vezes e quais podemos executar de tempo em tempo, como por exemplo, toda noite, uma vez por semana. Isso vai depender muito da tolerância de riscos da empresa. Não fazer um ciclo completo sempre podemos permitir que sem querer algum problema chegue no ambiente produtivo.

Monitoramento da aplicação

Nossa aplicação está em produção e agora paramos com a coleta de informações? Já executamos todos os testes e nossa alteração passou por todos, já temos garantia que isso é o suficiente não é mesmo? a resposta para a pergunta é NÃO! Agora que teremos o verdadeiro feedback.

Coletando informações dos usuários utilizando nossa aplicação nós vamos conseguir responder:

  • A funcionalidade atingiu seu objetivo de negócio?

  • Os usuários aderiram a essa nova funcionalidade?

  • As taxas de requisição com erro aumentaram ou continuam no padrão?

  • A performance, tempo de resposta das páginas continua satisfatório?

  • Qual é a área do software que é mais utilizada?

  • Os recursos dos servidores que hospedam nossa aplicação estão sendo subutilizados?

Através dessas respostas conseguimos ajudar a área de negócios na priorização dos próximos items que devem ser desenvolvidos, apresentando para eles quais as áreas que são mais utilizadas e problemas de navegabilidade e performance, que sendo resolvidos podem atrair e reter mais os usuários na nossa aplicação.

Além de ajudar a equipe de negócios nós também conseguimos ajudar a equipe de infraestrutura a estimar melhor a capacidade dos servidores, pois podemos demonstrar quanto de recurso realmente é necessário para executar a aplciação.

Essas são apenas algumas validações que podemos fazer durante todo o processo de desenvolvimento que vão nos ajudar a melhorar e até sermos mais assertivos no que fazer para atender melhor nossos clientes.

Espero que tenha gostado e se tiver alguma dúvida específica me manda um e-mail ou deixe nos comentários.

Até a próxima, Claudio Romão