Essa aplicação é um exemplo prático do uso do conceito de Feature Flag para aplicações em larga escala.
Aplicações distribuídas e de larga escala podem ter centenas ou até milhares de instâncias em execução simultânea. O controle da ativação e desativação de feature flags precisa ser realizado de forma rápida e segura para permitir a ativação de novas funcionalidades para testes, mas também possibilitar a desativação imediata em caso de problemas.
A solução proposta é simples e eficiente. Ela consiste em um banco de dados central que mantém o status de cada feature flag, o qual é consultado a cada minuto por cada instância da aplicação. Além disso, a aplicação envia métricas para o Prometheus, permitindo que os desenvolvedores acompanhem o status de cada feature flag em todas as instâncias. Isso viabiliza um monitoramento preciso e em tempo real das funcionalidades em produção.
A aplicação está configurada para ser executada com Docker Compose. Para iniciá-la, entre no diretório raiz da aplicação e execute o seguinte comando:
docker-compose up --build
Após a inicialização dos serviços pelo Docker Compose, acesse o Grafana através da URL http://localhost:3000 em seu navegador. Utilize admin
como usuário e senha para fazer o login.
Depois de entrar no Grafana, importe o dashboard usando o arquivo dashboard.json
, que está localizado na raiz do repositório. Ao acessar o dashboard, você visualizará um dashboard similar ao exibido na imagem abaixo.
Para avaliar a eficiência da solução, experimente ativar
e desativar
a feature flag utilizando os controles disponíveis diretamente no dashboard. Em seguida, verifique o comportamento da funcionalidade Process Order
através do link correspondente, também acessível no dashboard.