Matriz de Qualidade — Parte 5

Conhecendo o Pilar Operações

Willian da Silva
orangejuicetech
4 min readMar 28, 2022

--

Se você ainda não viu os outros posts dessa série, clique nos links abaixo:

Matriz de Qualidade — Parte 1

Matriz de Qualidade — Parte 2 — Pilar Design

Matriz de Qualidade — Parte 3 — Pilar Testes

Matriz de Qualidade — Parte 4— Pilar Segurança

Hoje em dia colocar o software em produção, não é um grande problema para muitas empresas, mas uma das maiores frustrações para qualquer empresa é quando o usuário final descobre e muitas vezes avisa sobre os problemas, por isso hoje vamos continuar nossa série sobre a Matriz de Qualidade falando do Pilar Operações, que é baseado praticas que ajudam a trazer previsibilidade e rastreamento para suas aplicações.

Pipeline de Entrega de Software

Nos posts anteriores, falamos sobre algumas boas práticas como, executar testes unitários, executar testes regressivos, executar testes de performance e executar análise estática de código baseadas em critérios de segurança e qualidade, individualmente todas essas práticas geram valor, porem a maioria das empresas potencializam todos esses valores, executando todas essas práticas junto com a publicação em uma esteira de entrega de software.

Cofre de Senhas

Do mesmo jeito que seus dados sensíveis não podem estar fixos no seu código, eles não devem estar fixos em seu pipeline, por isso é importante que cada aplicação possua um cofre de senhas, para que o pipeline consiga consulta-los e utiliza-los de acordo com aplicação e ambiente

Estratégias de Publicação

O processo de publicação é algo complexo, depende de muitos fatores e práticas que devem ser aplicados, por isso, nem sempre é possível eliminar o Downtime durante as publicações, mas existem algumas estratégias como Blue Green e Canary Deployment que combinadas, podem diminuir e em alguns casos até mesmo eliminar o Downtime.

Pipeline de dependências

Tão importante quanto entregar as aplicações de forma padronizada e automatizada, é importante entregar suas dependências, como bancos de dados, filas, storages e Gateway, por isso tecnologias IaC como Terraform estão cada vez mais populares em nosso dia a dia.

Ambientes idênticos

Fazer com que os ambientes não produtivos sejam iguais aos produtivos é um desafio para qualquer empresa, por isso o ideal é aproveitar que tanto o software quanto as dependências estão sendo entregues de forma automatizadas, para que os ambientes não produtivos estejam cada vez mais próximos do ambiente produtivo.

Health Checks

Sempre que sua API é publicada, precisamos ter certeza que ela subiu e que ela esta pronta para uso, do mesmo jeito que quando ela esta sendo executada em produção, precisamos saber se ela esta disponível, se esta degradada ou até mesmo, indisponível, uma das maneiras de resolver esse problema, é a aderência de Health Checks, onde conseguimos receber todas essas informações em um único lugar e com baixo esforço, ja que a maioria das linguagens de desenvolvimento possuem bibliotecas prontas para gerar essas informações com baixo esforço.

Logs

Os logs são informações valiosas para o dev, por isso é essencial que eles sejam externalizados para alguma ferramenta, sem que o desenvolvedor precise acessar algum servidor para consulta-los.

Muitas empresas utilizam ferramentas de Error Catch como o Sentry que analisam logs e encontram erros que geralmente os desenvolvedores tem uma dificuldade maior para identificar.

Trace

Muitas vezes quando estamos investigando um problema, precisamos entender o end to end de uma requisição, entendendo toda a cadeia dela, seja com o inicio em um frontend ou mobile, ou até mesmo direto em uma API, identificando por onde ela passou, quanto tempo cada passo durou e até mesmo qual a instrução foi executada em sua base de dados, para isso muitas empresas tem utilizados ferramentas APM como o New Relic ou Instana.

Indicadores de disponibilidade

Uma das maneiras mais eficazes para identificar os problemas em uma velocidade cada vez maior, é ter alertas baseado em indicadores de disponibilidade como CPU, memória e taxa de erro HTTP.

Indicadores de negócio

Um dos maiores desafios para as empresas é identificar se a operação da empresa esta funcionando conforme o esperado, quando todos os indicadores de negócio estão dentro do esperado, para resolver esse problema, cada vez é mais comum devs instrumentarem métricas dentro das aplicações e serem criados dashboards com alertas direcionados.

Conclusão

O pilar Operações é estratégico, ele traz critérios que medem os processos de entrega de software e os processos auxiliam na operação de uma aplicação em produção, pois quanto mais rápido um problema é identificado, mais rápido ele é corrigido.

Esse foi o ultimo post da nossa série sobre a Matriz de Qualidade, podemos afirmar que qualidade é um assunto abrangente, e que todos somos responsáveis por qualidade, mesmo que pilares e critérios varie por contexto ou necessidade de negócio.

Esse foi o quinto e ultimo post de uma série, se você ainda não viu os demais clique nos links:

Matriz de Qualidade — Parte 1

Matriz de Qualidade — Parte 2 — Pilar Design

Matriz de Qualidade — Parte 3 — Pilar Testes

Matriz de Qualidade — Parte 4 — Pilar Segurança

Deixe uma interação em nosso post, comente o que achou da nossa série e como o pilar Operações é tratado em seu dia a dia

--

--