Skip to content

Requisitos de Ambientes

Independente do projeto, ou ambiente de execução (AWS, Azure, ...), existem alguns requisitos mínimos que a plataforma/projeto deve atender em cada estágio.

Estágios

Os projetos devem conter no mínimo 3 estágios isolados entre si:

  • Desenvolvimento: Onde o desenvolvedor irá editar o código e realizar os primeiros testes.
  • Staging: Onde o um ou mais usuários da plataforma/ferramenta, devem realizar verificação das funcionalidades corrigidas/implementadas. E os testers devem estressar a aplicação afim de encontrar pontos que podem melhorar.
  • Produção: Ambiente onde o consumidor final fará acesso.

Caso o projeto necessite de banco de dados, ou qualquer outro microsserviço externo, eles também devem ser isolados conforme o ambiente em questão. Por exemplo, se o projeto sendo executado no ambiente de desenvolvimento possui dependência de um microsserviço A, este microsserviço sendo acessado deve também estar em ambiente de desenvolvimento.

Desenvolvimento

O ambiente de desenvolvimento deve ser a própria máquina do desenvolvedor.

Neste ambiente o projeto pode deixar exposto certos dados para facilitar o debug, tais como prints, logs, dados do usuário. Ou até mesmo um comportamento diferente, como por exemplo pular a etapa de login e etc.

Staging

O ambiente de staging deve ser o mesmo de produção, mesmo tipo de máquina e ferramenta de hospedagem.

O ambiente de staging, diferente do ambiente de produção, não deve ser indexado no google, e deve conter uma etapa de login para garantir que usuários externos a etapa de validação acesse o projeto ainda em fase de testes.

Por se tratar de um ambiente que pode ser pago, ele pode ser derrubado quando não estiver sendo utilizado, e subido novamente caso precise da validação de alguém ou testes em ambiente semelhante ao de produção.

Produção

O ambiente de produção deve ser robusto, e pode ser hospedado em qualquer lugar, desde que tenha sido alocada somente para este fim, e possua alta disponibilidade.

Neste ambiente o projeto não deve expor dados que não erros. Não deve salvar logs que não erros e no máximo warnings.

Neste ambiente o projeto deve conter um domínio próprio, ser indexado nos buscadores e possuir algum sistema para metrificar os acessos a plataforma (pode ser por implementação própria no projeto, de terceiros, implementado no projeto ou no servidor, ... ).

Caso seja um projeto web, deve conter um sitemap.

Caso seja um projeto mobile, deve ser publicado nas principais lojas de aplicativos mobile.

Por se tratar de um ambiente de acesso público, deve conter mecanismos para identificação e prevenção de ataques. Deve conter também sistema para monitoramento da saúde e uso da máquina utilizada para hospedagem.

Observações

Este documento visa ser um guia e não uma lei, ele pode não compreender todas as necessidades de um projeto, tornando a experiência do desenvolvedor desagradável ou improdutiva, nestes casos vale repensar os requisitos mínimos e considerar a edição deste documento.