Skip to content

Exemplo prático da utilização da abordagem de Feature Flag em aplicações de larga escala

Notifications You must be signed in to change notification settings

Waelson/go-feature-flag

Repository files navigation

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

Architecture

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.

Architecture

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.

About

Exemplo prático da utilização da abordagem de Feature Flag em aplicações de larga escala

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published