https://github.com/waelson/go-feature-flag
Exemplo prático da utilização da abordagem de Feature Flag em aplicações de larga escala
https://github.com/waelson/go-feature-flag
Last synced: about 1 year ago
JSON representation
Exemplo prático da utilização da abordagem de Feature Flag em aplicações de larga escala
- Host: GitHub
- URL: https://github.com/waelson/go-feature-flag
- Owner: Waelson
- Created: 2024-11-02T23:47:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-03T18:37:06.000Z (over 1 year ago)
- Last Synced: 2025-03-30T01:11:11.646Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 2.52 MB
- Stars: 31
- Watchers: 1
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Feature Flag
Essa aplicação é um exemplo prático do uso do conceito de Feature Flag para aplicações em larga escala.
### Solução
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.
### Arquitetura

### Executando
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.

### Simulação
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.