![Como aprender ferramentas de software desconhecidas com ChatGPT](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706628383_Como-aprender-ferramentas-de-software-desconhecidas-com-ChatGPT-150x150.jpg)
Como aprender ferramentas de software desconhecidas com ChatGPT
30 de janeiro de 2024![Uma folha de dicas para controle de acesso ao banco de dados: PostgreSQL](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706640040_Uma-folha-de-dicas-para-controle-de-acesso-ao-banco-150x150.jpg)
Uma folha de dicas para controle de acesso ao banco de dados: PostgreSQL
30 de janeiro de 2024Os testes em produção têm sido considerados um empreendimento arriscado, muitas vezes controverso entre desenvolvedores, testadores e partes interessadas. A abordagem tradicional de testar meticulosamente o software em ambientes controlados, como desenvolvimento e preparação, antes de implantá-lo na produção, tem sido a norma.
A própria ideia de testar no ambiente de produção ao vivo ganhou má reputação devido a possíveis interrupções, bugs imprevistos e ao medo de comprometer a experiência do usuário. No entanto, no desenvolvimento de software, esta sabedoria convencional está a ser cada vez mais desafiada por uma abordagem diferente: testes em produção com a utilização estratégica de sinalizadores de funcionalidades.
A produção é sempre diferente
Testar em produção com sinalizadores não implica necessariamente abandonar outros ambientes de teste.
Em vez disso, reconhece os desafios inerentes à manutenção de ambientes de desenvolvimento, preparação e produção idênticos. O rápido crescimento e a natureza evolutiva dos ambientes de produção — alimentados pelas interações dos usuários e pelos volumes crescentes — tornam praticamente impossível e economicamente inviável espelhar esses ambientes com precisão.
Com os produtos cada vez mais interconectados, tentar replicar com precisão APIs e integrações de terceiros fora da produção é quase impossível.
O desenvolvimento baseado em troncos, com foco na integração e entrega contínuas, reconhece a necessidade de uma mudança de paradigma. Os sinalizadores de recursos surgem como a proverbial alavanca de Arquimedes nessa transformação, oferecendo uma abordagem flexível e controlada para testes em produção.
Os desenvolvedores agora podem implementar recursos gradualmente sem interromper toda a base de usuários, mitigando os riscos associados às metodologias de teste tradicionais.
Os sinalizadores de recurso permitem que os desenvolvedores habilitem um recurso em produção durante a fase de desenvolvimento, permitindo-lhes refiná-lo e aperfeiçoá-lo antes de expô-lo a públicos de teste mais amplos.
Esta abordagem progressiva garante que os problemas potenciais sejam identificados e resolvidos no início do processo de desenvolvimento. À medida que o recurso amadurece, ele pode ser habilitado seletivamente para equipes de teste, grupos de engenharia ou segmentos específicos de usuários, facilitando a validação completa em cada etapa.
O pesadelo logístico de manter ambientes idênticos é atenuado, à medida que os testes em produção se tornam parte integrante do fluxo de trabalho de desenvolvimento.
Além disso, a introdução de sinalizadores de recursos abre caminho para testes A/B na produção, permitindo a tomada de decisões baseada em dados, comparando o desempenho de diferentes variações de recursos em um ambiente do mundo real.
Capacitando o desenvolvimento com sinalizadores de recursos
Com ferramentas de sinalização de recursos como o Flagsmith, uma hierarquia estruturada de identidades (usuários), segmentos (grupos) e sinalizadores prepara o terreno para um lançamento de recursos meticulosamente orquestrado. Essa sequência deliberada permite substituir recursos em diferentes níveis. Em ordem de precedência, são:
- Substituições de identidade (usuário)
- Substituições de segmento (grupos de usuários)
- Padrões de ambiente (padrão)
Essa abordagem permite que você tenha um fluxo de liberação controlado, como:
- Um desenvolvedor envolve um recurso em um sinalizador de recurso para que ele possa ser ativado/desativado.
- O desenvolvedor então testa o recurso em produção, habilitando-o apenas para si (por meio de uma substituição de identidade).
- O desenvolvedor habilita o recurso para uma equipe interna — novamente, sem que nenhum usuário seja impactado (por meio de uma substituição de segmento).
- O recurso é gradualmente implementado para públicos cada vez maiores até atingir toda a população de usuários OU fazer alguns testes A/B para descobrir qual versão do recurso deve ser final (por meio de padrões de ambiente).
A noção antes difamada de testes em produção não se justifica mais se você tiver as ferramentas adequadas. Os sinalizadores de recursos não apenas se alinham com a natureza dinâmica dos ambientes de produção, mas também melhoram significativamente o processo de desenvolvimento.
Sua introdução permite que desenvolvedores e testadores iterem e refinem recursos com maior agilidade, distribuindo-os progressivamente para públicos mais amplos. Esta abordagem minimiza o potencial de interrupções, acrescentando estabilidade e promovendo a adaptabilidade no cenário acelerado do desenvolvimento de software.
Por que usar sinalizadores de recursos para testar em produção
Ao adotar sinalizadores de recursos, dois pontos cruciais adicionais vêm à tona:
- Os sinalizadores de recursos revelam o potencial de simplificar ambientes, potencialmente até mesmo adotando uma configuração de ambiente único. (Conforme discutido, esta é uma opção, não um requisito.) Esta opção não só representa uma medida significativa de redução de custos, mas também optimiza os recursos de desenvolvimento.
- Os testes em produção com a salvaguarda dos sinalizadores de recursos permitem a experimentação e o refinamento sem impactar os usuários finais, contribuindo, em última análise, para aumentar a estabilidade do sistema.
Você deve se lembrar de que não existe uma solução mágica que resolva todos os problemas. Nem é preciso dizer (mas vamos destacá-lo!) que a introdução de algo novo, como sinalizadores de recursos, implica que você fez sua lição de casa e aprendeu as vantagens e desvantagens, os novos processos e as melhores práticas que introduzirá com a nova tecnologia.
Mas vale a pena! Conversamos com desenvolvedores todos os dias e eles podem atestar o valor dos testes em produção usando a abordagem apresentada acima.
Testes em produção não são um assunto novo e encorajamos você a ler mais sobre este tópico. Gostaríamos de prestar homenagem àqueles que escreveram sobre isso antes de nós. Você pode ler outras perspectivas aqui mesmo no The New Stack!
- Dois testes de integração em produção deram errado
- Abraçando os testes na produção
- A Chaos Engineering passa progressivamente para a produção
- Testes em produção: você será comido vivo?
- Majors de caridade da Honeycomb: vá em frente, teste em produção
Este artigo foi coautor de Moreno Garcia, arquiteto de soluções com mais de 10 anos de experiência em arquitetura de soluções.
A postagem Repensando os testes em produção apareceu pela primeira vez no The New Stack.