menthorlabs / courses

MIT License
11 stars 21 forks source link

[NOVO] Subindo versões de maneira segura utilizando features flags #16

Open tumusx opened 8 months ago

tumusx commented 8 months ago

Descrição do curso

O curso tem como objetivo o compartilhamento do uso de features flags para subir alterações em produção para uma larga escala de usuários de maneira segura, onde é possível voltar as funcionalidades passadas caso a nova release contenha erros graves.

Tópicos e aulas

  1. Entendendo o que são releases

    • O que são features e hotfixes?
    • Processo de liberação de release
  2. Features flags

    • O que são features flags?
    • Criar um software ou utilizar de terceiros para fazer o gerenciamento de features flags
    • Mudando a forma de pensar da equipe sobre features flags
    • Como lidar com o pensamento de "Código lixo no projeto" da equipe?
  3. Implementando features flags

    • Demonstração utilizando Firebase Remote Config
    • Gerenciando rotas de código de acordo com o valor da feature flag
    • Boas práticas e recomendações
    • É necessário que o usuário saiba dessas alterações?
  4. Gerenciamento de erros e features flags

    • Como saber que o erro é crítico para desabilitar a nova funcionalidade?
    • Utilização de ferramentas de observabilidade
    • Não espere tickets de erro para corrigir a versão
    • Monitore comportamentos inesperados e desabilite a funcionalidade antes do usuário reclamar

Referências

Firebase Remote Config: https://firebase.google.com/docs/remote-config?hl=pt

Observabilidade: https://www.cisco.com/c/pt_br/solutions/full-stack-observability/what-is-observability.html

Crashlytics do Firebase: https://firebase.google.com/docs/crashlytics?hl=pt

AWS CloudWatch: https://aws.amazon.com/pt/cloudwatch/

BernardoSM commented 8 months ago

Opa @tumusx muito obrigado pela contribuição. Esse tema de features flag tá ficando bastante forte em conjunto com trunkbase development + morte do gitflow.

Eu sugiro que assista esse vídeo e talvez você possa ter ideia de mais assuntos para agregar ao tema ou até mesmo ter um novo insight sobre feature flags: https://youtu.be/oNmcX6Gozg0?si=96qEn7UJCxt3p-jb&t=604

mrarticuno commented 8 months ago

Opa @tumusx muito obrigado pela contribuição. Esse tema de features flag tá ficando bastante forte em conjunto com trunkbase development + morte do gitflow.

Eu sugiro que assista esse vídeo e talvez você possa ter ideia de mais assuntos para agregar ao tema ou até mesmo ter um novo insight sobre feature flags: https://youtu.be/oNmcX6Gozg0?si=96qEn7UJCxt3p-jb&t=604

Na real essa justificativa do video para considerar o Trunkbase development é impraticavel, se sua feature demora 2-4 semanas para ficar pronta provavelmente você esta quebrando suas tarefas de forma errada. Outro ponto que isso incorre é no problema de manter tudo na main, que gera uma altissima quantidade de blockers na branch e caga com o history por precisar ficar dando revert em commit pra não quebrar o CD.

Gitflow continua sendo a principal forma de gerenciar repositórios em empresas grandes como AWS, Meta, Netflix... por separar os escopos de time multidiciplinares sem impactar no CD.

Trunkbase eu só indico quando você trabalha com um time de nivel de senioridade alta que não tem que dividir o repositório com outros times/pods.