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.