Para aplicativos de produção, você precisa configurar um fluxo de trabalho de desenvolvimento claro, especialmente se tiver mais de uma pessoa trabalhando em seu aplicativo. Um fluxo de trabalho de desenvolvimento geralmente envolve a configuração e o gerenciamento de vários ambientes.
O Firebase tem vários níveis de suporte para fluxos de trabalho de desenvolvedores e ambientes constituintes. Quando você estiver familiarizado com os termos e suposições do fluxo de trabalho do desenvolvedor nesta página, confira nossas práticas recomendadas e diretrizes gerais de segurança para configurar um projeto do Firebase e seus aplicativos.
Sobre ambientes
No desenvolvimento de software, um ambiente é todo o hardware e software necessários para executar uma instância de um aplicativo ou sistema de aplicativos.
Uma série de ambientes fornece isolamento para desenvolvimento e teste de software sem impactar os usuários. Conforme mostrado no diagrama abaixo, os ambientes de alto nível são considerados pré-produção ou produção e você pode ter quantos ambientes de pré-produção forem necessários. O diagrama também descreve práticas e recursos comuns associados a cada tipo de ambiente .
O processo de progresso de um recurso ou lançamento através desses ambientes até a produção é chamado de pipeline de implantação .
Tipos de ambientes
Um ambiente é composto pela infraestrutura subjacente necessária para executar e dar suporte ao seu aplicativo, seu código e seus dados. Expanda cada um dos termos a seguir para revisar as descrições de alguns ambientes comuns, incluindo dicas sobre os tipos de dados usados em cada tipo de ambiente.
Todo desenvolvedor precisa de um ambiente de desenvolvimento — um local seguro e isolado para testar as alterações à medida que elas são criadas. Idealmente, cada desenvolvedor da sua equipe tem acesso ao seu próprio ambiente de desenvolvimento. Além disso, se o ambiente de desenvolvimento for uma instância local, um desenvolvedor poderá iterar muito mais rápido.
Os dados em um ambiente de desenvolvimento são propagados com dados que geralmente se assemelham aos dados de produção, mas nunca devem conter dados reais de usuários. Também pode conter dados que causaram bugs no passado, como strings muito longas.
Se você tiver testes automatizados, precisará de um ambiente no qual executar esses testes e precisará redefinir os dados sempre que ativar o ambiente de teste.
Se você tiver engenheiros de controle de qualidade, eles poderão precisar de um ambiente que todos usem ou de ambientes individuais para testar um novo candidato a lançamento.
Os dados em ambientes de teste e controle de qualidade são propagados com dados de qualidade que geralmente são representativos dos dados de produção, juntamente com dados que representam casos extremos e exemplos de dados que causaram bugs no passado.
Para testes realistas de como uma versão funcionará na produção, você precisa de um ambiente de teste que imite a infraestrutura de produção o mais fielmente possível. É comum ter várias instâncias de teste se você precisar testar integrações específicas isoladamente.
Aqui estão as diferenças comuns entre preparação e produção:
A preparação pode estar faltando alguns recursos ou integrações que podem causar efeitos colaterais. Por exemplo, o teste pode ser configurado para não enviar e-mail.
A preparação pode ter dados anonimizados; os dados podem ser falsos, mas devem ser realistas. Como a preparação é um local para depurar problemas com segurança, você pode conceder à equipe acesso mais amplo aos dados de preparação do que aos dados de produção. Portanto, para proteger a privacidade do usuário, você não deve usar dados reais do usuário na preparação.
Para cada aplicativo mantido, você precisa de um único ambiente de produção. Esta é a instância com a qual seus usuários interagem.
Ao contrário de outros ambientes onde você pode alterar, excluir e/ou recriar dados, os dados em seu ambiente de produção são muito importantes; perder ou alterar seus dados de produção afetará diretamente seus usuários.
No console do Firebase, recomendamos marcar o projeto do Firebase associado ao seu ambiente de produção como um tipo de ambiente de "produção" . Essa tag pode ajudar a lembrar você e seus colegas de equipe de que quaisquer alterações podem afetar seus aplicativos de produção associados e seus dados.
Próximos passos
Revise nossas práticas recomendadas gerais para configurar projetos do Firebase. Este guia responde a perguntas sobre a hierarquia do projeto do Firebase, como registrar variantes do seu aplicativo e multilocação.
Revise as diretrizes gerais de segurança para diferentes ambientes. Você deseja ter certeza de que cada ambiente e seus dados estão seguros.