Para apps de produção, é necessário configurar um fluxo de trabalho de desenvolvimento claro, principalmente se houver mais de uma pessoa trabalhando no app. Um fluxo de trabalho de desenvolvimento normalmente envolve a configuração e o gerenciamento de vários ambientes.
O Firebase tem níveis variados de suporte aos fluxos de trabalho do desenvolvedor e aos ambientes que os constituem. Quando você estiver familiarizado com os termos e suposições do fluxo de trabalho do desenvolvedor nesta página, confira nossas práticas recomendadas gerais e diretrizes gerais de segurança para configurar um projeto do Firebase e seus apps.
Sobre os ambientes
Em desenvolvimento de software, um ambiente é todo o hardware e o software necessários para executar uma instância de um aplicativo ou sistema de aplicativos.
Vários ambientes oferecem isolamento para desenvolvimento e teste de software sem afetar os usuários. Conforme é mostrado no diagrama abaixo, os ambientes em um nível alto são considerados em pré-produção ou em produção, sendo possível ter o máximo de ambientes de pré-produção que for necessário. O diagrama também descreve práticas comuns e recursos associados a cada tipo de ambiente.
O processo de adiantar um recurso ou uma versão nesses ambientes para a produção é chamado de pipeline de implantação.
Tipos de ambientes
Um ambiente é composto pela infraestrutura que precisa ser executada e compatível com o aplicativo, o código e respectivos dados. Expanda cada um dos termos a seguir para ver descrições de alguns ambientes comuns, incluindo dicas sobre os tipos de dados usados em cada tipo de ambiente.
Ambientes de desenvolvimento (dev)
Todo desenvolvedor precisa de um ambiente de desenvolvimento, um local seguro e isolado para testar as alterações à medida que são compiladas. O ideal é que todos os desenvolvedores da equipe tenham acesso ao próprio ambiente de desenvolvimento. Além disso, se o ambiente de desenvolvimento for uma instância local, um desenvolvedor poderá fazer iterações muito mais rápidas.
Em um ambiente de desenvolvimento, os dados propagados geralmente se assemelham aos de produção, mas nunca devem conter dados reais do usuário. Também é possível que haja dados, como strings muito longas, que no passado causaram bugs.
Ambientes de teste e controle de qualidade
Se tiver testes automatizados, você vai precisar de um ambiente para executá-los e de redefini-los cada vez que ativar o ambiente de teste.
Se você tiver engenheiros de controle de qualidade, talvez eles precisem de um ambiente que todos usam ou de ambientes individuais para testar um novo candidato a lançamento.
Em ambientes de teste e controle de qualidade, os dados propagados são de qualidade, representativos dos dados de produção, junto com dados que representam casos extremos e exemplos de dados que causaram bugs no passado.
Ambientes de preparo
Para testes realistas de como uma versão funcionará na produção, você precisa de um ambiente de preparo que tenha a máxima semelhança possível com a infraestrutura de produção. É comum ter várias instâncias de preparo, se você precisar testar integrações específicas de forma isolada.
Veja as diferenças comuns entre preparo e produção:
É possível que o preparo não tenha alguns recursos ou integrações que podem causar efeitos colaterais. Por exemplo, o preparo pode ser definido para não enviar e-mails.
O preparo pode ter dados anônimos. Os dados podem ser falsos, mas precisam ser realistas. Como o preparo é um lugar para depurar problemas com segurança, é possível dar à equipe mais acesso a dados de preparo do que a dados de produção. Portanto, para proteger a privacidade do usuário, não use dados reais do usuário no preparo.
Ambientes de produção (prod)
É preciso ter um ambiente de produção único para cada aplicativo que você mantém. Essa é a instância com que os usuários interagem.
Há ambientes em que os dados podem ser alterados, excluídos e/ou recriados, e isso não é possível no ambiente de produção devido à importância dos dados e ao fato de que a perda ou alteração afetam diretamente os 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 ajuda a lembrar você e seus colegas de equipe de que qualquer mudança pode afetar seus apps de produção associados e os respectivos dados.
Próximas etapas
Consulte nossas práticas recomendadas gerais para configurar projetos do Firebase. Neste guia, respondemos às perguntas sobre a hierarquia de projetos do Firebase, como registrar as variantes do seu app e a multilocação.
Veja as diretrizes gerais de segurança para diferentes ambientes. Você quer garantir segurança a cada ambiente e aos dados dele.
Consulte a lista de verificação de lançamento do Firebase.